{"version":3,"file":"static/js/main.2a171f7b.js","mappings":"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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAK,EAE7D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAG7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE5C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC9C,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE5D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,E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OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINsyI,IAAK,CACHX,IAAK,EACL3xI,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,0FAAArX,EAAAD,EAAAc,GCvwBR,aAEA,IAAIK,EAAQL,EACRhB,EAAKG,EAAQ,SACbW,EAAYX,EAAQ,uBACpBsB,EAAWtB,EAAQ,6BAEvBkB,EAAM2mG,OAASlnG,EACfO,EAAMm/H,QAAU/+H,EAAS++H,QACzBn/H,EAAM6uJ,MAAQzuJ,EAASyuJ,MACvB7uJ,EAAMq1D,MAAQj1D,EAASi1D,MACvBr1D,EAAM6mG,OAASzmG,EAASymG,OA6BxB7mG,EAAMymJ,OA1BN,SAAgB3nJ,EAAKD,EA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AQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAO,YACxB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,YACD,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,MAAQ,MAAQ,YACzB,CAAC,MAAQ,YACT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1BwO,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,IAGErP,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEsP,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DquB,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEluB,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,KAGEtC,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEwC,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/DuiB,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE3iB,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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O6D,EACxCywB,EAAUx3B,GACZrB,GAAsB,GAExBW,EAAM,MAAQoD,EAAGpC,GACjBk3B,EAAUt4B,GAAMP,GAAY,GAAK+B,EAASpB,KAC1Ck4B,EAAUx2B,EAAQ1B,IAClBgB,GAAA,QA5CQ,IA8CNgC,GACFk1B,EAAU72B,GAELT,CAAA,UA8HAiiC,EAAW/iC,GAClBA,EAAUiE,KAAK0I,IAAI1I,KAAKiD,IAAIlH,EAAS,GAAI,KAErCE,GAAkBF,IAAA,SA1qBCA,GAAA,QACnBC,EAAM,CACR,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,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGOa,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBK,EAAII,GAAQtB,EAAIa,GAAKd,EAAK,IAAM,KACpCmB,EAAI8C,KAAK0I,IAAI1I,KAAKiD,IAAI/F,EAAG,GAAI,KAC7BP,EAAO+N,EAAO7N,IAAMK,CAAA,SAElBrB,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,IAEOI,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB0B,EAAIL,GAAQzB,EAAKI,GAAKF,EAAK,IAAM,KACrC4B,EAAIqC,KAA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K,EACdK,GAAKhB,EAAI,GAAK,EACd6B,EAAIwB,KAAKwD,IAAIzH,EAAEkuP,IACX3rP,EAAI0B,KAAKwD,IAAIzH,EAAEi1P,IAAA,IACjB3zP,EAAI2C,KAAKwD,IAAIzH,EAAEq1P,IACfzyP,EAAIqB,KAAKwD,IAAIzH,EAAEwmE,IACfljE,EAAIV,GAAKhC,EAAI,GAAKW,EACpBtB,GAAKwC,GAAK7B,EAAI,GAAKW,GAAKvB,EAAE29P,GAC1B19P,GAAKsC,GAAKX,EAAI,GAAKD,GAAK3B,EAAEypW,GAE1BxpW,GADAA,GAAKqB,GAAKM,EAAI,GAAKD,GAAK3B,EAAEwpW,IACjB/mW,GAAKlB,EAAMgB,GAAKZ,EAAML,GAAKK,EACpC1B,GAAK,MAAQD,EAAET,EACfU,GAAK,MAAQD,EAAEsB,EACfrB,GAAK,MAAQD,EAAEiuP,GAAA,IACTnuP,IAAOG,GAAK2C,GAAKrB,EAAKtB,GAAKqD,GAAKtD,EAAEu6P,GAAMt6P,GAAK,MAAQD,EAAEwxB,EAAA,MAE5DvxB,EAAI,EACTD,EAAIC,EAAI,EAAI,UAGZ,GAAKD,GAAA,MACDc,GAAKA,EAAE26P,KAAOz7P,EAAIkyV,GAAG/wV,IADVnB,CAAA,KAIjBgyV,GAAK,GACPrP,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,UAEFsP,GAAK,GACLgX,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,GAEJ/3U,EAAE,aAAc,iBAChBpxB,EAAKwtW,WAAa,kBACT,YAETxtW,EAAKytW,WAAa,SAASztW,GAAA,OAClBA,CAAA,EAETA,EAAK0tW,WAAa,SAAS1tW,EAAGC,EAAGa,GAAA,OACxBb,EAAEa,EAAI,IAEfd,EAAK2tW,WAAa,SAAS3tW,EAAGC,EAAGa,GAAA,OACxBb,EAAEa,EAAI,IAEfd,EAAK4tW,WAAa,SAAS5tW,E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,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAtD,GACAgB,GACAjB,GACA+B,GAz5BAM,GAAKhsW,EAAE,KACPisW,GAAKjsW,EAAE,MACPksW,GAAKlsW,EAAE,KACPmsW,GAAKnsW,EAAE,KACP+rW,GAAK,EACLqB,GAAKnB,GACLvV,GAAKwV,GACLiB,GAAIhB,GACJkB,GAAIrB,GACJzB,GAAK,EACLV,GAAK,EACLa,GAAK,EACLZ,GAAK,EACLJ,GAAK,EACLK,GAAK,EACLc,GAAK,EACL3B,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACLmC,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,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,IACpEtB,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,KAEFoB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF/7F,GAAK,EACLd,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,KAEFa,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,KACLriD,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,IAE1DqhD,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IACxDiB,GAAK,EAAE,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GACnE1vJ,GAAK,CACH,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,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,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,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGrD,CACE,CACE,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,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,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,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,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,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,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEpD,CACE,CAAC,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClD,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEnD,CACE,CAAC,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACjD,CAAC,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,QAIvD4uJ,GAAK,CACH,CACE,CAAC,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KACvC,CAAC,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IACtC,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACpC,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IACnC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IACrC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IACrC,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,KAClC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,KAEpC,CACE,CAAC,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KACvC,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IACtC,CAAC,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,EAAG,KAClC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,KACpC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GACpC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAEtC,CACE,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IACpC,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IACpC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IACnC,CAAC,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IACpC,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IACjC,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAEnC,CACE,CAAC,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACtC,CAAC,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACrC,CAAC,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KACtC,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,KACjC,CAAC,IAAK,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,GAAI,IACjC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KACrC,CAAC,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,EAAG,EAAG,KACjC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAEtC,CACE,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,GAAI,KACjC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IACjC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,KACpC,CAAC,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,GAAI,EAAG,KAChC,CAAC,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,KAEnC,CACE,CAAC,IAAK,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAClC,CAAC,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,EAAG,IAAK,IAChC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IACpC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IACnC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,GAAI,KAEpC,CACE,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IACrC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IACrC,CAAC,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GACpC,CAAC,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACjC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,IACjC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,KACnC,CAAC,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GACpC,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACrC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IACpC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,KAErC,CACE,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KACnC,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IACnC,CAAC,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,KAClC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAClC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GACrC,CAAC,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAClC,CAAC,GAAI,GAAI,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAClC,CAAC,GAAI,EAAG,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GACjC,CAAC,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,KAErC,CACE,CAAC,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACrC,CAAC,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,KACpC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KACrC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,KACnC,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,EAAG,KAChC,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IACnC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,KACpC,CAAC,GAAI,GAAI,EAAG,GAAI,IAAK,IAAK,EAAG,EAAG,KAChC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,MAEtC,CACE,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IACpC,CAAC,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IACnC,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACxC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,EAAG,IAClC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,KACnC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IACpC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,IAAK,IACnC,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KACpC,CAAC,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,EAAG,MAGvCmB,GAAK,CACH,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,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,IAA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AAMC,EAAmBa,QAdzCI,EAAOhB,EAjXC,EADA,EAmXRF,EAAOV,EAASU,EAAMC,EAAmBa,GAAA,OAuDpCd,CAAA,OAcJ04W,eAAe9iB,WAAa,SAAS51V,GACpCA,IACFF,EAAcE,EAAQ+4W,cACtBx3W,EAAevB,EAAQg5W,eACvB94W,EAAWF,EAAQi5W,WACnBr4W,EAAYZ,EAAQk5W,YACpBv3W,EAAuB3B,EAAQm5W,oBAAA,OAI9BT,eAAe9iB,WAAW51V,GACxB6B,KAAK62W,cAAA,MAGVz4W,EA5jFmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,IACA,KACA,KACA,KACA,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,KA8jBEa,EAAa,IAAId,EAAM04W,eAAe,CAAEK,eAAA,IAoC5C/4W,EAAM8nV,IAAIr+U,OAAOxG,KAAK,CAAC,kBAlCE,SAASjD,GAAA,IAC5BC,EAAOD,EAAK6Q,KAGZ1P,GAFInB,EAAKV,EACLU,EAAKT,EACCS,EAAK0hB,SAAW,CAAC,GAG3B5hB,GAFQE,EAAKmsV,MACNhrV,EAAQu2L,KACL,OAEdv2L,EAAQ43W,cAC2B,kBAA1B53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MAAO,OAER,CACCX,QAAS,CACR,qGACA,0CACA,iBACA,uBAEDlxC,SAAU,kBACVxlD,SAAU,kBACVE,WAAY,UACZy2F,OAAQ,SACRC,YAAa,MACbC,aAAc,OACdC,aAAc,gBACdhB,SAAU,oBACViB,kBAAmB,OACnBC,mBAAoB,KACpBC,QAAS,UACTC,OAAQ,qGACRC,eAAgB,wBAChBjB,UAAW,MACXD,QAAS,MACTF,SAAU,MACVC,UAAW,OACXoB,MAAO,KACPC,MAAO,MAER,CACCX,QAAS,CACR,qGACA,0CACA,iBACA,uBAEDlxC,SAAU,UACVxlD,SAAU,UACVE,WAAY,UACZy2F,OAAQ,SACRC,YAAa,IACbC,aAAc,OACdC,aAAc,gBACdhB,SAAU,oBACViB,kBAAmB,OACnBC,mBAAoB,KACpBC,QAAS,UACTC,OAAQ,qGACRC,eAAgB,wBAChBjB,UAAW,MACXD,QAAS,MACTF,SAAU,MACVC,UAAW,OACXoB,MAAO,KACPC,MAAO,OA6iiCR5B,YA1iiCiB,CACjBxka,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDqma,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED99b,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDigO,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED89N,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDzsb,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED49K,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDh/K,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDunK,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDwX,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDj2H,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDkpC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED67V,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDnvQ,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDovQ,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDznX,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED0nX,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDj0e,GAAI,CACH,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED1B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED+rB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED7rB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDojB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDtiB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED6hB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED0J,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDlI,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED/jB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED43B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDmC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDl6B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDE,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDqpB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDD,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDrpB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDi5B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED5W,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDxiB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDQ,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED4wB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDhE,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED7B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED7qB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDU,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDs0B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDigd,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED3vQ,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED4vQ,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDzkf,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDwD,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED/B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDiB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED3C,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDqB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED4B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDX,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDzC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED0I,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDiE,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED7K,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDkC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED3C,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDI,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED+B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDy/B,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDjiC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDF,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDZ,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDyC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDvB,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDyG,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDrI,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED4P,EAAG,CACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDy1e,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDl+d,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDm+d,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDlb,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDhlH,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDmgI,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,eAAgB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED/2O,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDmO,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED6oO,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,eAAgB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,eAAgB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,eAAgB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDtjX,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDujX,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED1jX,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED2jX,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED/wb,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDgxb,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED9uW,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED+uW,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDzvb,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED0vb,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDhmM,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDimM,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,GAAI,CACH,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDlvI,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDmvI,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,cAAe,CACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED7kY,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED8kY,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED55b,MAAO,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAED65b,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,WAAY,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,UAAW,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,SAAU,CACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,IAAK,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,OAAQ,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,aAAc,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,YAAa,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,QAAS,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEDC,KAAM,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAkv5BDrQ,UA/u5Be,CACfsQ,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,UAAW,EACT,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFn0S,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFo0S,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,kBAAmB,EACjB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,qBAAsB,EACpB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,YAAa,EACX,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF57K,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF67K,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFn9K,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFo9K,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFzkR,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF0kR,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF9qW,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF+qW,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFx4X,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFy4X,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,IAEFC,YAAa,EACX,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,oBAAqB,EACnB,KACA,KACA,KACA,KACA,IAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,sBAAuB,EACrB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,0BAA2B,EACzB,KACA,KACA,KACA,KACA,IAEFC,uBAAwB,EACtB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,oBAAqB,EACnB,KACA,KACA,KACA,KACA,IAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFr6R,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFs6R,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KAEFh/W,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IAEFi/W,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,CACP,GACA,IAEDC,QAAS,CACR,GACA,GACA,EACA,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFlkS,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFmkS,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFtwZ,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFuwZ,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFhlM,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFilM,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,yBAA0B,EACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFz3S,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEF03S,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEF98X,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEF+8X,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,KACA,KACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF96S,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF+6S,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF7gY,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF8gY,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF1+S,GAAI,EACF,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEF2+S,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEF9kY,GAAI,EACF,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEF+kY,QAAS,EACP,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,OAAQ,EACN,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,kBAAmB,EACjB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,YAAa,EACX,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,kBAAmB,EACjB,IACA,IACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,kBAAmB,EACjB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,oBAAqB,EACnB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,IACA,IACA,KACA,KACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,kBAAmB,EACjB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,YAAa,EACX,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,qBAAsB,EACpB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,qBAAsB,EACpB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,eAAgB,EACd,IACA,IACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,EACV,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,qBAAsB,EACpB,IACA,IACA,KACA,KACA,KACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,KACA,KACA,KACA,KACA,IACA,KAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,qBAAsB,EACpB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,uBAAwB,EACtB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,qBAAsB,EACpB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFC,eAAgB,EACd,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KAEFr0S,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,GACC,IAEFs0S,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEF15D,GAAI,EACF,IACA,IACA,IACA,IAEF25D,QAAS,EACP,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,EACjB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,wBAAyB,EACvB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,sBAAuB,EACrB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,EACnB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,EACnB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,YAAa,EACX,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,EACjB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFviS,GAAI,EACF,IACA,IACA,IACA,IAEFwiS,QAAS,EACP,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEF7uX,GAAI,EACF,IACA,GACD,EACA,EACA,GACC,IACA,IAEFgnF,GAAI,EACF,IACA,IACA,IACA,GACD,GACC,IACA,IAEF8nS,cAAe,EACb,IACA,IACA,IACA,GACD,GACC,IACA,IAEFrgS,GAAI,EACF,IACA,IAEFsgS,QAAS,EACP,IACA,IAEFC,cAAe,EACb,IACA,IAEFC,QAAS,EACP,IACA,IAEF5viB,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEF6viB,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,mBAAoB,EAClB,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,mBAAoB,EAClB,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,UAAW,EACT,IACA,GACD,EACA,EACA,GACC,IACA,IAEFC,UAAW,EACT,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,UAAW,EACT,IACA,IAEFC,eAAgB,EACd,IACA,IAEFC,qBAAsB,EACpB,IACA,IAEFC,eAAgB,EACd,IACA,IAEFC,UAAW,EACT,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,EACjB,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IAEFC,gBAAiB,EACf,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IAEFC,WAAY,EACV,IACA,IAEFp4Z,GAAI,EACF,IACA,IAEFq4Z,QAAS,EACP,IACA,IAEFC,GAAI,EACF,IACA,IAEFC,GAAI,EACF,IACA,GACD,EACA,GACC,IAEF7hf,GAAI,EACF,IACA,IAEF8hf,QAAS,EACP,IACA,IAEFC,WAAY,EACV,IACA,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,QAAS,EACP,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,gBAAiB,EACf,IACA,IAEFC,OAAQ,CACP,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,CACR,GACA,IACC,IACA,GACD,EACA,GACC,IAEFzygB,GAAI,EACF,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEF0ygB,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFrmX,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFugT,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEF+lE,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,YAAa,CACZ,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,YAAa,CACZ,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,eAAgB,CACf,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,YAAa,CACZ,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,GACA,IACC,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,GACD,EACA,GACC,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IAEFljb,GAAI,EACF,IACA,IACA,IACA,GACD,GACC,IAEFmjb,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,GACC,IAEFz1M,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IAEF01M,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,CACf,GACA,GACA,GACA,GACA,IAEDC,YAAa,CACZ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEDhkb,GAAI,CACH,GACA,GACA,EACA,EACA,EACA,GACC,IAEFikb,QAAS,CACR,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,CACX,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,YAAa,CACZ,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,GACA,GACA,EACA,EACA,EACA,GACC,IAEFjjW,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,GACC,IAEFkjW,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,wBAAyB,CACxB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,sBAAuB,CACtB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,uBAAwB,CACvB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,CACpB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,CACpB,GACA,GACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,yBAA0B,EACxB,IACA,GACD,EACA,EACA,EACA,GACC,IAEF54M,GAAI,EACF,IACA,IACA,IACA,IACA,GACD,EACA,GACC,GAEF64M,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,GAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,GACD,EACA,GACC,GAEF/3M,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFg4M,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,GAAI,EACF,IACA,IAEFC,QAAS,EACP,IACA,IAEFC,WAAY,EACV,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,gBAAiB,EACf,IACA,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,IAEFC,mBAAoB,EAClB,IACA,IAEFC,sBAAuB,EACrB,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IAEFC,aAAc,EACZ,IACA,IAEFC,gBAAiB,EACf,IACA,IAEF/+D,GAAI,EACF,IACA,IACA,IACA,IAEFg/D,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFp7M,GAAI,EACF,IACA,IACA,IACA,IAEFq7M,QAAS,EACP,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFj7M,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFk7M,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,wBAAyB,EACvB,IACA,IACA,IACA,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,0BAA2B,EACzB,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,sBAAuB,EACrB,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFr1G,GAAI,EACF,IACA,IACA,IACA,GACD,GACC,IAEFC,GAAI,EACF,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFq1G,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,cAAe,EACb,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEF1sH,GAAI,EACF,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEF2sH,QAAS,EACP,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,EACA,EACA,GACC,IAEFC,oBAAqB,EACnB,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IAEFC,iBAAkB,EAChB,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,EAChB,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,uBAAwB,EACtB,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,EAChB,IACA,GACD,EACA,EACA,EACA,EACA,GACC,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,YAAa,EACX,IACA,GACD,EACA,GACC,IACA,IACA,IACA,IAEFn+T,GAAI,EACF,IACA,GACD,EACA,GACC,GACD,GACC,IAEFo+T,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,UAAW,EACT,IACA,GACD,EACA,GACC,GACD,GACC,IAEFnkY,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEF2pE,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,GACC,IAEFy6T,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEF/vT,GAAI,EACF,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFgwT,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFvjN,GAAI,EACF,IACA,GACD,EACA,GACC,GACD,GACC,IAEFwjN,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,WAAY,EACV,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,SAAU,EACR,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IAEFC,GAAI,EACF,IACA,GACD,EACA,GACC,GACD,GACC,IAEFl3F,GAAI,EACF,IACA,GACD,EACA,EACA,EACA,GACC,IAEFm3F,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,UAAW,EACT,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFhshB,GAAI,CACH,GACA,GACA,GACA,IAEDishB,cAAe,CACd,GACA,GACA,GACA,IAEDC,GAAI,CACH,GACA,GACA,GACA,IACC,IAEF1qjB,GAAI,CACH,GACA,GACA,GACA,IAED2qjB,QAAS,CACR,GACA,GACA,GACA,IAEDC,WAAY,CACX,GACA,GACA,GACA,IAEDC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,kBAAmB,EACjB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,oBAAqB,EACnB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,GACA,GACA,GACA,IAEDC,mBAAoB,CACnB,GACA,GACA,GACA,IAEDC,QAAS,CACR,GACA,GACA,GACA,IACC,IAEFC,QAAS,CACR,GACA,GACA,GACA,IAEDC,aAAc,CACb,GACA,GACA,GACA,IAEDC,gBAAiB,CAChB,GACA,GACA,GACA,IAEDC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,kBAAmB,EACjB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,gBAAiB,EACf,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,oBAAqB,EACnB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IAEFC,QAAS,EACP,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,aAAc,EACZ,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,eAAgB,EACd,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,GACA,GACA,GACA,IAEDC,mBAAoB,CACnB,GACA,GACA,GACA,IAEDC,QAAS,CACR,GACA,GACA,GACA,IACC,IAEFC,QAAS,CACR,GACA,GACA,GACA,IAEDC,aAAc,CACb,GACA,GACA,GACA,IAEDC,gBAAiB,CAChB,GACA,GACA,GACA,IAEDC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,qBAAsB,EACpB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,yBAA0B,EACxB,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IACA,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,wBAAyB,EACvB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,sBAAuB,EACrB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,0BAA2B,EACzB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,oBAAqB,EACnB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IAEFC,cAAe,EACb,IACA,GACD,EACA,GACC,GACD,GACC,IAEFC,cAAe,EACb,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,EAClB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,qBAAsB,EACpB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,yBAA0B,EACxB,IACA,GACD,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,GACA,GACA,GACA,IAEDC,yBAA0B,CACzB,GACA,GACA,GACA,IAEDC,cAAe,CACd,GACA,GACA,GACA,IACC,IAEFC,cAAe,CACd,GACA,GACA,GACA,IAEDC,mBAAoB,CACnB,GACA,GACA,GACA,IAEDC,sBAAuB,CACtB,GACA,GACA,GACA,IAEDxqN,GAAI,EACF,IACA,IACA,IACA,IAEFyqN,QAAS,EACP,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,UAAW,EACT,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,IACA,IACA,GACD,GACC,IACA,IAEFC,YAAa,EACX,KACA,KACA,IACA,IACA,GACD,GACC,IACA,IAEFC,kBAAmB,EACjB,KACA,KACA,IACA,IACA,GACD,GACC,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEF7vU,GAAI,EACF,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEF8vU,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,GACD,EACA,GACC,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEF7rN,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEF8rN,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEFh8b,GAAI,EACF,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFi8b,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,EACZ,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,WAAY,EACV,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,YAAa,EACX,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,EACP,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFC,SAAU,EACR,IACA,IACA,IACA,GACD,GACC,GACD,GACC,IAEFjyU,GAAI,EACF,IACA,IACA,IACA,IAEFkyU,QAAS,EACP,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,OAAQ,EACN,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFt9b,GAAI,EACF,IACA,IACA,IACA,IACA,IAEFu9b,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IAEFC,GAAI,EACF,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IACA,IAEFC,SAAU,EACR,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IAEFC,YAAa,EACX,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IAEFC,QAAS,EACP,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,kBAAmB,EACjB,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IAEFC,cAAe,EACb,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,IACA,IACA,IAEFC,aAAc,EACZ,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IAEFC,eAAgB,EACd,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,EACnB,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IAEFC,WAAY,EACV,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,qBAAsB,EACpB,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,EAClB,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,EACtB,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,EAChB,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,EACf,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IAEFp7Z,GAAI,CACH,GACA,IACC,IACA,IAEFq7Z,QAAS,CACR,GACA,IACC,IACA,IAEFC,QAAS,CACR,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,WAAY,CACX,GACA,IACC,IACA,IAEFC,YAAa,CACZ,GACA,IACC,IACA,IAEFC,QAAS,CACR,GACA,IACC,IACA,IAEFC,SAAU,CACT,GACA,IACC,IACA,IAEFC,SAAU,CACT,GACA,IACC,IACA,IAEFC,QAAS,CACR,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,kBAAmB,CAClB,GACA,IACC,IACA,IAEFC,gBAAiB,CAChB,GACA,IACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,cAAe,CACd,GACA,IACC,IACA,IAEFC,cAAe,CACd,GACA,IACC,IACA,IAEFC,QAAS,CACR,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,kBAAmB,CAClB,GACA,IACC,IACA,IAEFC,gBAAiB,CAChB,GACA,IACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,IAEFC,aAAc,CACb,GACA,IACC,IACA,IAEFC,cAAe,CACd,GACA,IACC,IACA,IAEFC,cAAe,CACd,GACA,IACC,IACA,IAEFC,YAAa,CACZ,GACA,IACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,IAEFC,sBAAuB,CACtB,GACA,IACC,IACA,IAEFC,oBAAqB,CACpB,GACA,IACC,IACA,IAEFC,qBAAsB,CACrB,GACA,IACC,IACA,IAEFC,iBAAkB,CACjB,GACA,IACC,IACA,IAEFC,kBAAmB,CAClB,GACA,IACC,IACA,IAEFC,kBAAmB,CAClB,GACA,IACC,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFt9Z,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,KACA,IAEFu9Z,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,KACA,IAEFC,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,KACA,IAEFv5O,GAAI,CACH,EACA,GACC,IACA,GACD,GACC,IACA,IAEFw5O,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,GACD,GACC,IACA,IAEF/6U,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,IACA,IAEFg7U,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,KACA,KAEFC,aAAc,CACb,EACA,GACC,KACA,KAEFC,mBAAoB,CACnB,EACA,GACC,KACA,KAEFC,QAAS,CACR,EACA,GACC,KACA,KAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,KACA,KAEFC,aAAc,CACb,EACA,GACC,KACA,KAEFC,gBAAiB,CAChB,EACA,GACC,KACA,KAEFC,oBAAqB,CACpB,EACA,GACC,KACA,KAEFC,iBAAkB,CACjB,EACA,GACC,KACA,IACD,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,KACA,KACA,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,GACC,KACA,KACA,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,KACA,KACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,KACA,KACA,IACA,IACA,IACA,KAEFn6T,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFo6T,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,GACC,KACA,KACA,IACA,IACA,IACA,KAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,KACA,KACA,IACA,IACA,IACA,KAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFh8U,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,IAEFi8U,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFtgV,GAAI,CACH,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFugV,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,WAAY,CACX,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,OAAQ,CACP,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,EACA,GACC,IAEFC,UAAW,CACV,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEF9/O,GAAI,CACH,EACA,GACC,IACA,IAEF+/O,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,yBAA0B,CACzB,EACA,GACC,IACA,IAEFzqc,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEF0qc,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,wBAAyB,CACxB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,sBAAuB,CACtB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,uBAAwB,CACvB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IACA,IACA,IACA,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFzoV,GAAI,CACH,EACA,GACC,IACA,GACD,EACA,GACC,IAEF0oV,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,WAAY,CACX,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,OAAQ,CACP,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,OAAQ,CACP,EACA,EACA,GACA,IAED5oU,GAAI,CACH,EACA,EACA,GACA,IAED6oU,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,WAAY,CACX,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,SAAU,CACT,EACA,EACA,GACA,IAEDC,SAAU,CACT,EACA,EACA,GACA,IAEDp/T,GAAI,CACH,EACA,EACA,GACA,IAEDq/T,cAAe,CACd,EACA,EACA,GACA,IAED96T,GAAI,CACH,EACA,EACA,GACA,IAED+6T,QAAS,CACR,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDnlO,GAAI,CACH,EACA,EACA,GACA,IAEDzI,GAAI,CACH,EACA,EACA,GACA,IACC,IAEF6tO,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,cAAe,CACd,EACA,EACA,GACA,IACC,IAEFC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,GAAI,CACH,EACA,EACA,GACA,IACC,IAEFC,WAAY,CACX,EACA,EACA,GACA,IAEDvlO,GAAI,CACH,EACA,EACA,GACA,IAEDwlO,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,WAAY,CACX,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,eAAgB,CACf,EACA,EACA,GACA,IAEDC,SAAU,CACT,EACA,EACA,GACA,IAEDC,SAAU,CACT,EACA,EACA,GACA,IAEDC,OAAQ,CACP,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,YAAa,CACZ,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,YAAa,CACZ,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,mBAAoB,CACnB,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,YAAa,CACZ,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,cAAe,CACd,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,YAAa,CACZ,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,YAAa,CACZ,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,mBAAoB,CACnB,EACA,EACA,GACA,IACC,IAEFC,aAAc,CACb,EACA,EACA,GACA,IACC,IAEFC,QAAS,CACR,EACA,EACA,GACA,IACC,IAEFC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,QAAS,CACR,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,gBAAiB,CAChB,EACA,EACA,GACA,IAEDC,aAAc,CACb,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,YAAa,CACZ,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,wBAAyB,CACxB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,sBAAuB,CACtB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,wBAAyB,CACxB,EACA,EACA,GACA,IAEDC,sBAAuB,CACtB,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,yBAA0B,CACzB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,yBAA0B,CACzB,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IACC,IAEFC,mBAAoB,CACnB,EACA,EACA,GACA,IACC,IAEFC,mBAAoB,CACnB,EACA,EACA,GACA,IACC,IAEFC,yBAA0B,CACzB,EACA,EACA,GACA,IACC,IAEFC,mBAAoB,CACnB,EACA,EACA,GACA,IACC,IAEFC,cAAe,CACd,EACA,EACA,GACA,IACC,IAEFC,sBAAuB,CACtB,EACA,EACA,GACA,IAEDC,cAAe,CACd,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,wBAAyB,CACxB,EACA,EACA,GACA,IAEDC,sBAAuB,CACtB,EACA,EACA,GACA,IAEDC,mBAAoB,CACnB,EACA,EACA,GACA,IAEDC,0BAA2B,CAC1B,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,oBAAqB,CACpB,EACA,EACA,GACA,IAEDC,kBAAmB,CAClB,EACA,EACA,GACA,IAEDC,OAAQ,CACP,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,GACC,IACA,IAEF/8c,GAAI,CACH,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFg9c,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,WAAY,CACX,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,IACA,IACA,GACD,GACC,IAEF9yV,GAAI,CACH,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEF+yV,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,WAAY,CACX,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,OAAQ,CACP,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,GACD,GACC,IAEF/9c,GAAI,CACH,EACA,GACC,IACA,GACD,GACC,IAEFg+c,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,IAEFC,aAAc,CACb,EACA,GACC,IACA,GACD,GACC,IAEFC,WAAY,CACX,EACA,GACC,IACA,GACD,GACC,IAEFC,YAAa,CACZ,EACA,GACC,IACA,GACD,GACC,IAEFC,QAAS,CACR,EACA,GACC,IACA,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,GACC,IAEFC,SAAU,CACT,EACA,GACC,IACA,GACD,GACC,IAEFC,GAAI,CACH,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,WAAY,CACX,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,eAAgB,CACf,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,sBAAuB,CACtB,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,wBAAyB,CACxB,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,GACC,IACA,IAEFC,GAAI,CACH,EACA,EACA,EACA,GACC,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,OAAQ,CACP,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,KAEFl7V,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IAEFm7V,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,eAAgB,CACf,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,OAAQ,CACP,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,wBAAyB,CACxB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFp4U,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFq4U,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEF14U,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEF24U,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEF/4U,GAAI,CACH,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFg5U,QAAS,CACR,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFz9U,GAAI,CACH,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEF09U,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFn9c,GAAI,CACH,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFo9c,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEF35O,GAAI,CACH,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEF45O,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,GACC,GACD,GACC,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,wBAAyB,CACxB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,qBAAsB,CACrB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,eAAgB,CACf,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,EACA,GACC,IAEFlmgB,GAAI,CACH,EACA,EACA,EACA,GACC,GACD,GACC,IAEFmmgB,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,wBAAyB,CACxB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,uBAAwB,CACvB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,GACC,GACD,GACC,IAEFC,OAAQ,CACP,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,eAAgB,CACf,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,GACC,IACA,IACA,IACA,IAEF7/U,GAAI,CACH,EACA,EACA,EACA,EACA,GACC,IACA,IAEF8/U,QAAS,CACR,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,GACC,IACA,IAEF3oe,GAAI,CACH,EACA,EACA,EACA,EACA,GACC,IAEF4oe,QAAS,CACR,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,GACC,IAEFC,YAAa,CACZ,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,GACC,IAEFxvV,GAAI,CACH,EACA,EACA,EACA,EACA,GACC,IACA,IACA,IAEFyvV,YAAa,CACZ,EACA,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,uBAAwB,CACvB,EACA,EACA,EACA,EACA,GACC,IACA,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,qBAAsB,CACrB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,EACA,EACA,GACC,IAEF1sV,GAAI,CACH,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEF2sV,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,wBAAyB,CACxB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,YAAa,CACZ,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,iBAAkB,CACjB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,uBAAwB,CACvB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,EACA,EACA,GACC,IACA,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,OAAQ,CACP,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,YAAa,CACZ,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFhuV,GAAI,CACH,EACA,EACA,EACA,EACA,EACA,GACC,IAEFiuV,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,kBAAmB,CAClB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,wBAAyB,CACxB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,gBAAiB,CAChB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,sBAAuB,CACtB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,eAAgB,CACf,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,0BAA2B,CAC1B,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,oBAAqB,CACpB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,GACC,IAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,IAEFpqP,GAAI,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFqqP,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,WAAY,CACX,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,SAAU,CACT,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,OAAQ,CACP,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,QAAS,CACR,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,kBAAmB,CAClB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,gBAAiB,CAChB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,YAAa,CACZ,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,aAAc,CACb,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,cAAe,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,wBAAyB,CACxB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,sBAAuB,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,mBAAoB,CACnB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,oBAAqB,CACpB,EACA,EACA,EACA,EACA,EACA,EACA,GACC,GAEFC,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","sources":["../node_modules/abs-svg-path/index.js","../node_modules/apexcharts/dist/apexcharts.common.js","../node_modules/base64-js/index.js","../node_modules/bootstrap-daterangepicker/daterangepicker.js","../node_modules/brotli/dec/bit_reader.js","../node_modules/brotli/dec/context.js","../node_modules/brotli/dec/decode.js","../node_modules/brotli/dec/dictionary-browser.js","../node_modules/brotli/dec/dictionary.bin.js","../node_modules/brotli/dec/dictionary.js","../node_modules/brotli/dec/huffman.js","../node_modules/brotli/dec/prefix.js","../node_modules/brotli/dec/streams.js","../node_modules/brotli/dec/transform.js","../node_modules/brotli/decompress.js","../node_modules/clone/clone.js","../node_modules/color-name/index.js","../node_modules/color-string/index.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/crypto-js/core.js","../node_modules/crypto-js/md5.js","../node_modules/dfa/src/StateMachine.js","../node_modules/events/events.js","../node_modules/exceljs/dist/node_modules/browser-pack/_prelude.js","../node_modules/exceljs/dist/lib/csv/csv.js","../node_modules/exceljs/dist/lib/doc/anchor.js","../node_modules/exceljs/dist/lib/doc/cell.js","../node_modules/exceljs/dist/lib/doc/column.js","../node_modules/exceljs/dist/lib/doc/data-validations.js","../node_modules/exceljs/dist/lib/doc/defined-names.js","../node_modules/exceljs/dist/lib/doc/enums.js","../node_modules/exceljs/dist/lib/doc/image.js","../node_modules/exceljs/dist/lib/doc/note.js","../node_modules/exceljs/dist/lib/doc/range.js","../node_modules/exceljs/dist/lib/doc/row.js","../node_modules/exceljs/dist/lib/doc/table.js","../node_modules/exceljs/dist/lib/doc/workbook.js","../node_modules/exceljs/dist/lib/doc/worksheet.js","../node_modules/exceljs/dist/lib/exceljs.browser.js","../node_modules/exceljs/dist/lib/utils/browser-buffer-decode.js","../node_modules/exceljs/dist/lib/utils/browser-buffer-encode.js","../node_modules/exceljs/dist/lib/utils/cell-matrix.js","../node_modules/exceljs/dist/lib/utils/col-cache.js","../node_modules/exceljs/dist/lib/utils/copy-style.js","../node_modules/exceljs/dist/lib/utils/encryptor.js","../node_modules/exceljs/dist/lib/utils/parse-sax.js","../node_modules/exceljs/dist/lib/utils/shared-formula.js","../node_modules/exceljs/dist/lib/utils/stream-buf.js","../node_modules/exceljs/dist/lib/utils/string-buf.js","../node_modules/exceljs/dist/lib/utils/under-dash.js","../node_modules/exceljs/dist/lib/utils/utils.js","../node_modules/exceljs/dist/lib/utils/xml-stream.js","../node_modules/exceljs/dist/lib/utils/zip-stream.js","../node_modules/exceljs/dist/lib/xlsx/defaultnumformats.js","../node_modules/exceljs/dist/lib/xlsx/rel-type.js","../node_modules/exceljs/dist/lib/xlsx/xform/base-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/defined-name-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/sheet-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/workbook-calc-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/workbook-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/workbook-view-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/book/workbook-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/comment-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/comments-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/style/vml-position-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/style/vml-protection-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/vml-anchor-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/vml-client-data-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/vml-notes-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/vml-shape-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/comment/vml-textbox-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/composite-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/app-heading-pairs-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/app-titles-of-parts-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/app-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/content-types-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/core-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/relationship-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/core/relationships-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/base-cell-anchor-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/blip-fill-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/blip-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/c-nv-pr-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/cell-position-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/drawing-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/ext-lst-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/hlink-click-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/nv-pic-pr-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/one-cell-anchor-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/pic-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/sp-pr.js","../node_modules/exceljs/dist/lib/xlsx/xform/drawing/two-cell-anchor-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/list-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/auto-filter-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cell-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/cf-rule-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/cfvo-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/color-scale-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/databar-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/formula-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/cf/icon-set-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/col-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/data-validations-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/dimension-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/drawing-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/ext-lst-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/header-footer-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/hyperlink-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/merge-cell-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/merges.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/outline-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/page-breaks-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/page-margins-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/page-setup-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/page-setup-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/picture-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/print-options-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/row-breaks-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/row-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/sheet-format-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/sheet-properties-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/sheet-protection-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/sheet-view-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/table-part-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/sheet/worksheet-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/simple/boolean-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/simple/date-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/simple/integer-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/simple/string-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/static-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/strings/phonetic-text-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/strings/rich-text-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/strings/shared-string-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/strings/shared-strings-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/strings/text-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/alignment-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/border-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/color-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/dxf-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/fill-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/font-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/numfmt-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/protection-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/style-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/styles-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/style/underline-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/auto-filter-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/custom-filter-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/filter-column-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/filter-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/table-column-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/table-style-info-xform.js","../node_modules/exceljs/dist/lib/xlsx/xform/table/table-xform.js","../node_modules/exceljs/dist/lib/xlsx/xlsx.js","../node_modules/exceljs/dist/lib/xlsx/xml/theme1.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/CsvFormatterStream.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/FormatterOptions.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/formatter/FieldFormatter.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/formatter/RowFormatter.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/formatter/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/format/build/src/types.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/CsvParserStream.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/ParserOptions.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/Parser.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/RowParser.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/Scanner.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/Token.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/column/ColumnFormatter.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/column/ColumnParser.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/column/NonQuotedColumnParser.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/column/QuotedColumnParser.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/column/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/parser/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/transforms/HeaderTransformer.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/transforms/RowTransformerValidator.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/transforms/index.js","../node_modules/exceljs/dist/node_modules/@fast-csv/parse/build/src/types.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/api.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/exceljs/dist/node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/exceljs/dist/node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../node_modules/exceljs/dist/node_modules/base64-js/index.js","../node_modules/exceljs/dist/node_modules/bn.js/lib/bn.js","../node_modules/exceljs/dist/node_modules/brorand/index.js","../node_modules/exceljs/dist/node_modules/browserify-aes/aes.js","../node_modules/exceljs/dist/node_modules/browserify-aes/authCipher.js","../node_modules/exceljs/dist/node_modules/browserify-aes/browser.js","../node_modules/exceljs/dist/node_modules/browserify-aes/decrypter.js","../node_modules/exceljs/dist/node_modules/browserify-aes/encrypter.js","../node_modules/exceljs/dist/node_modules/browserify-aes/ghash.js","../node_modules/exceljs/dist/node_modules/browserify-aes/incr32.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/cbc.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/cfb.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/cfb1.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/cfb8.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/ctr.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/ecb.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/index.js","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/list.json","../node_modules/exceljs/dist/node_modules/browserify-aes/modes/ofb.js","../node_modules/exceljs/dist/node_modules/browserify-aes/streamCipher.js","../node_modules/exceljs/dist/node_modules/browserify-cipher/browser.js","../node_modules/exceljs/dist/node_modules/browserify-des/index.js","../node_modules/exceljs/dist/node_modules/browserify-des/modes.js","../node_modules/exceljs/dist/node_modules/browserify-rsa/index.js","../node_modules/exceljs/dist/node_modules/browserify-sign/algos.js","../node_modules/exceljs/dist/node_modules/browserify-sign/browser/algorithms.json","../node_modules/exceljs/dist/node_modules/browserify-sign/browser/curves.json","../node_modules/exceljs/dist/node_modules/browserify-sign/browser/index.js","../node_modules/exceljs/dist/node_modules/browserify-sign/browser/sign.js","../node_modules/exceljs/dist/node_modules/browserify-sign/browser/verify.js","../node_modules/exceljs/dist/node_modules/browserify/node_modules/safe-buffer/index.js","../node_modules/exceljs/dist/node_modules/browserify/node_modules/string_decoder/lib/string_decoder.js","../node_modules/exceljs/dist/node_modules/buffer-xor/index.js","../node_modules/exceljs/dist/node_modules/buffer/index.js","../node_modules/exceljs/dist/node_modules/cipher-base/index.js","../node_modules/exceljs/dist/node_modules/core-js/internals/a-callable.js","../node_modules/exceljs/dist/node_modules/core-js/internals/a-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/a-possible-prototype.js","../node_modules/exceljs/dist/node_modules/core-js/internals/add-to-unscopables.js","../node_modules/exceljs/dist/node_modules/core-js/internals/an-instance.js","../node_modules/exceljs/dist/node_modules/core-js/internals/an-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-includes.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-iteration.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-slice-simple.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-slice.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-species-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/array-species-create.js","../node_modules/exceljs/dist/node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/exceljs/dist/node_modules/core-js/internals/classof-raw.js","../node_modules/exceljs/dist/node_modules/core-js/internals/classof.js","../node_modules/exceljs/dist/node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/exceljs/dist/node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/exceljs/dist/node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/exceljs/dist/node_modules/core-js/internals/create-iter-result-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/exceljs/dist/node_modules/core-js/internals/create-property-descriptor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/create-property.js","../node_modules/exceljs/dist/node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/define-built-in.js","../node_modules/exceljs/dist/node_modules/core-js/internals/define-global-property.js","../node_modules/exceljs/dist/node_modules/core-js/internals/descriptors.js","../node_modules/exceljs/dist/node_modules/core-js/internals/document-all.js","../node_modules/exceljs/dist/node_modules/core-js/internals/document-create-element.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-browser.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-deno.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-ios.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-node.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-user-agent.js","../node_modules/exceljs/dist/node_modules/core-js/internals/engine-v8-version.js","../node_modules/exceljs/dist/node_modules/core-js/internals/enum-bug-keys.js","../node_modules/exceljs/dist/node_modules/core-js/internals/export.js","../node_modules/exceljs/dist/node_modules/core-js/internals/fails.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-apply.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-bind-context.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-bind-native.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-call.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-name.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/exceljs/dist/node_modules/core-js/internals/function-uncurry-this.js","../node_modules/exceljs/dist/node_modules/core-js/internals/get-built-in.js","../node_modules/exceljs/dist/node_modules/core-js/internals/get-iterator-method.js","../node_modules/exceljs/dist/node_modules/core-js/internals/get-iterator.js","../node_modules/exceljs/dist/node_modules/core-js/internals/get-json-replacer-function.js","../node_modules/exceljs/dist/node_modules/core-js/internals/get-method.js","../node_modules/exceljs/dist/node_modules/core-js/internals/global.js","../node_modules/exceljs/dist/node_modules/core-js/internals/has-own-property.js","../node_modules/exceljs/dist/node_modules/core-js/internals/hidden-keys.js","../node_modules/exceljs/dist/node_modules/core-js/internals/host-report-errors.js","../node_modules/exceljs/dist/node_modules/core-js/internals/html.js","../node_modules/exceljs/dist/node_modules/core-js/internals/ie8-dom-define.js","../node_modules/exceljs/dist/node_modules/core-js/internals/indexed-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/inspect-source.js","../node_modules/exceljs/dist/node_modules/core-js/internals/internal-state.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-array.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-callable.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-forced.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-pure.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-regexp.js","../node_modules/exceljs/dist/node_modules/core-js/internals/is-symbol.js","../node_modules/exceljs/dist/node_modules/core-js/internals/iterate.js","../node_modules/exceljs/dist/node_modules/core-js/internals/iterator-close.js","../node_modules/exceljs/dist/node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/iterator-define.js","../node_modules/exceljs/dist/node_modules/core-js/internals/iterators-core.js","../node_modules/exceljs/dist/node_modules/core-js/internals/length-of-array-like.js","../node_modules/exceljs/dist/node_modules/core-js/internals/make-built-in.js","../node_modules/exceljs/dist/node_modules/core-js/internals/math-trunc.js","../node_modules/exceljs/dist/node_modules/core-js/internals/microtask.js","../node_modules/exceljs/dist/node_modules/core-js/internals/new-promise-capability.js","../node_modules/exceljs/dist/node_modules/core-js/internals/not-a-regexp.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-assign.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-create.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-define-properties.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-define-property.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-keys-internal.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-keys.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/exceljs/dist/node_modules/core-js/internals/object-to-array.js","../node_modules/exceljs/dist/node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/exceljs/dist/node_modules/core-js/internals/own-keys.js","../node_modules/exceljs/dist/node_modules/core-js/internals/path.js","../node_modules/exceljs/dist/node_modules/core-js/internals/perform.js","../node_modules/exceljs/dist/node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/exceljs/dist/node_modules/core-js/internals/promise-native-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/promise-resolve.js","../node_modules/exceljs/dist/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/exceljs/dist/node_modules/core-js/internals/queue.js","../node_modules/exceljs/dist/node_modules/core-js/internals/require-object-coercible.js","../node_modules/exceljs/dist/node_modules/core-js/internals/set-species.js","../node_modules/exceljs/dist/node_modules/core-js/internals/set-to-string-tag.js","../node_modules/exceljs/dist/node_modules/core-js/internals/shared-key.js","../node_modules/exceljs/dist/node_modules/core-js/internals/shared-store.js","../node_modules/exceljs/dist/node_modules/core-js/internals/shared.js","../node_modules/exceljs/dist/node_modules/core-js/internals/species-constructor.js","../node_modules/exceljs/dist/node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/exceljs/dist/node_modules/core-js/internals/symbol-define-to-primitive.js","../node_modules/exceljs/dist/node_modules/core-js/internals/symbol-registry-detection.js","../node_modules/exceljs/dist/node_modules/core-js/internals/task.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-absolute-index.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-indexed-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-length.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-object.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-primitive.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-property-key.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-string-tag-support.js","../node_modules/exceljs/dist/node_modules/core-js/internals/to-string.js","../node_modules/exceljs/dist/node_modules/core-js/internals/try-to-string.js","../node_modules/exceljs/dist/node_modules/core-js/internals/uid.js","../node_modules/exceljs/dist/node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/exceljs/dist/node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/exceljs/dist/node_modules/core-js/internals/validate-arguments-length.js","../node_modules/exceljs/dist/node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/exceljs/dist/node_modules/core-js/internals/well-known-symbol-define.js","../node_modules/exceljs/dist/node_modules/core-js/internals/well-known-symbol-wrapped.js","../node_modules/exceljs/dist/node_modules/core-js/internals/well-known-symbol.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.array.find-index.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.array.find.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.array.includes.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.array.iterator.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.json.stringify.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.number.is-nan.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.object.assign.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.object.get-own-property-symbols.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.object.keys.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.object.values.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.all.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.catch.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.constructor.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.finally.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.race.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.reject.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.promise.resolve.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.string.from-code-point.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.string.includes.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.symbol.async-iterator.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.symbol.constructor.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.symbol.for.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.symbol.js","../node_modules/exceljs/dist/node_modules/core-js/modules/es.symbol.key-for.js","../node_modules/exceljs/dist/node_modules/core-util-is/lib/util.js","../node_modules/exceljs/dist/node_modules/create-ecdh/browser.js","../node_modules/exceljs/dist/node_modules/create-hash/browser.js","../node_modules/exceljs/dist/node_modules/create-hash/md5.js","../node_modules/exceljs/dist/node_modules/create-hmac/browser.js","../node_modules/exceljs/dist/node_modules/create-hmac/legacy.js","../node_modules/exceljs/dist/node_modules/crypto-browserify/index.js","../node_modules/exceljs/dist/node_modules/dayjs/dayjs.min.js","../node_modules/exceljs/dist/node_modules/dayjs/plugin/customParseFormat.js","../node_modules/exceljs/dist/node_modules/dayjs/plugin/utc.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des/cbc.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des/cipher.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des/des.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des/ede.js","../node_modules/exceljs/dist/node_modules/des.js/lib/des/utils.js","../node_modules/exceljs/dist/node_modules/diffie-hellman/browser.js","../node_modules/exceljs/dist/node_modules/diffie-hellman/lib/dh.js","../node_modules/exceljs/dist/node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/exceljs/dist/node_modules/diffie-hellman/lib/primes.json","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/curves.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/exceljs/dist/node_modules/elliptic/lib/elliptic/utils.js","../node_modules/exceljs/dist/node_modules/elliptic/package.json","../node_modules/exceljs/dist/node_modules/events/events.js","../node_modules/exceljs/dist/node_modules/evp_bytestokey/index.js","../node_modules/exceljs/dist/node_modules/fast-csv/build/src/index.js","../node_modules/exceljs/dist/node_modules/hash-base/index.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/common.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/hmac.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/ripemd.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/1.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/224.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/256.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/384.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/512.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/sha/common.js","../node_modules/exceljs/dist/node_modules/hash.js/lib/hash/utils.js","../node_modules/exceljs/dist/node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/exceljs/dist/node_modules/ieee754/index.js","../node_modules/exceljs/dist/node_modules/inherits/inherits_browser.js","../node_modules/exceljs/dist/node_modules/jszip/dist/jszip.min.js","../node_modules/exceljs/dist/node_modules/lodash.escaperegexp/index.js","../node_modules/exceljs/dist/node_modules/lodash.groupby/index.js","../node_modules/exceljs/dist/node_modules/lodash.isboolean/index.js","../node_modules/exceljs/dist/node_modules/lodash.isequal/index.js","../node_modules/exceljs/dist/node_modules/lodash.isfunction/index.js","../node_modules/exceljs/dist/node_modules/lodash.isnil/index.js","../node_modules/exceljs/dist/node_modules/lodash.isundefined/index.js","../node_modules/exceljs/dist/node_modules/lodash.uniq/index.js","../node_modules/exceljs/dist/node_modules/md5.js/index.js","../node_modules/exceljs/dist/node_modules/miller-rabin/lib/mr.js","../node_modules/exceljs/dist/node_modules/minimalistic-assert/index.js","../node_modules/exceljs/dist/node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/exceljs/dist/node_modules/parse-asn1/aesid.json","../node_modules/exceljs/dist/node_modules/parse-asn1/asn1.js","../node_modules/exceljs/dist/node_modules/parse-asn1/certificate.js","../node_modules/exceljs/dist/node_modules/parse-asn1/fixProc.js","../node_modules/exceljs/dist/node_modules/parse-asn1/index.js","../node_modules/exceljs/dist/node_modules/pbkdf2/browser.js","../node_modules/exceljs/dist/node_modules/pbkdf2/lib/async.js","../node_modules/exceljs/dist/node_modules/pbkdf2/lib/default-encoding.js","../node_modules/exceljs/dist/node_modules/pbkdf2/lib/precondition.js","../node_modules/exceljs/dist/node_modules/pbkdf2/lib/sync-browser.js","../node_modules/exceljs/dist/node_modules/pbkdf2/lib/to-buffer.js","../node_modules/exceljs/dist/node_modules/process-nextick-args/index.js","../node_modules/exceljs/dist/node_modules/process/browser.js","../node_modules/exceljs/dist/node_modules/public-encrypt/browser.js","../node_modules/exceljs/dist/node_modules/public-encrypt/mgf.js","../node_modules/exceljs/dist/node_modules/public-encrypt/privateDecrypt.js","../node_modules/exceljs/dist/node_modules/public-encrypt/publicEncrypt.js","../node_modules/exceljs/dist/node_modules/public-encrypt/withPublic.js","../node_modules/exceljs/dist/node_modules/public-encrypt/xor.js","../node_modules/exceljs/dist/node_modules/randombytes/browser.js","../node_modules/exceljs/dist/node_modules/randomfill/browser.js","../node_modules/exceljs/dist/node_modules/readable-stream/errors-browser.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/exceljs/dist/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/exceljs/dist/node_modules/readable-stream/readable-browser.js","../node_modules/exceljs/dist/node_modules/regenerator-runtime/runtime.js","../node_modules/exceljs/dist/node_modules/ripemd160/index.js","../node_modules/exceljs/dist/node_modules/safe-buffer/index.js","../node_modules/exceljs/dist/node_modules/safer-buffer/safer.js","../node_modules/exceljs/dist/node_modules/saxes/saxes.js","../node_modules/exceljs/dist/node_modules/sha.js/hash.js","../node_modules/exceljs/dist/node_modules/sha.js/index.js","../node_modules/exceljs/dist/node_modules/sha.js/sha.js","../node_modules/exceljs/dist/node_modules/sha.js/sha1.js","../node_modules/exceljs/dist/node_modules/sha.js/sha224.js","../node_modules/exceljs/dist/node_modules/sha.js/sha256.js","../node_modules/exceljs/dist/node_modules/sha.js/sha384.js","../node_modules/exceljs/dist/node_modules/sha.js/sha512.js","../node_modules/exceljs/dist/node_modules/stream-browserify/index.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/isarray/index.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/transform.js","../node_modules/exceljs/dist/node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","../node_modules/exceljs/dist/node_modules/timers-browserify/main.js","../node_modules/exceljs/dist/node_modules/util-deprecate/browser.js","../node_modules/exceljs/dist/node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/exceljs/dist/node_modules/util/support/isBufferBrowser.js","../node_modules/exceljs/dist/node_modules/util/util.js","../node_modules/exceljs/dist/node_modules/uuid/dist/index.js","../node_modules/exceljs/dist/node_modules/uuid/dist/md5-browser.js","../node_modules/exceljs/dist/node_modules/uuid/dist/nil.js","../node_modules/exceljs/dist/node_modules/uuid/dist/parse.js","../node_modules/exceljs/dist/node_modules/uuid/dist/regex.js","../node_modules/exceljs/dist/node_modules/uuid/dist/rng-browser.js","../node_modules/exceljs/dist/node_modules/uuid/dist/sha1-browser.js","../node_modules/exceljs/dist/node_modules/uuid/dist/stringify.js","../node_modules/exceljs/dist/node_modules/uuid/dist/v1.js","../node_modules/exceljs/dist/node_modules/uuid/dist/v3.js","../node_modules/exceljs/dist/node_modules/uuid/dist/v35.js","../node_modules/exceljs/dist/node_modules/uuid/dist/v4.js","../node_modules/exceljs/dist/node_modules/uuid/dist/v5.js","../node_modules/exceljs/dist/node_modules/uuid/dist/validate.js","../node_modules/exceljs/dist/node_modules/uuid/dist/version.js","../node_modules/exceljs/dist/node_modules/xmlchars/xml/1.0/ed5.js","../node_modules/exceljs/dist/node_modules/xmlchars/xml/1.1/ed2.js","../node_modules/exceljs/dist/node_modules/xmlchars/xmlns/1.0/ed3.js","../node_modules/fast-deep-equal/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hsl-to-hex/index.js","../node_modules/hsl-to-rgb-for-reals/converter.js","../node_modules/hyphen/hyphen.js","../node_modules/hyphen/patterns/en-us.js","../node_modules/inherits/inherits_browser.js","../node_modules/is-url/index.js","../node_modules/jquery/dist/jquery.js","../node_modules/media-engine/src/index.js","../node_modules/media-engine/src/operators.js","../node_modules/media-engine/src/parser.js","../node_modules/media-engine/src/queries.js","../node_modules/moment/moment.js","../node_modules/object-assign/index.js","../node_modules/pako/lib/utils/common.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/parse-svg-path/index.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/queue/index.js","../node_modules/react-apexcharts/dist/react-apexcharts.min.js","../node_modules/react-data-table-component/src/DataTable/types.ts","../node_modules/react-data-table-component/src/DataTable/util.ts","../node_modules/react-data-table-component/src/DataTable/tableReducer.ts","../node_modules/react-data-table-component/src/DataTable/Table.tsx","../node_modules/react-data-table-component/src/DataTable/TableHead.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeadRow.tsx","../node_modules/react-data-table-component/src/DataTable/media.ts","../node_modules/react-data-table-component/src/DataTable/Cell.ts","../node_modules/react-data-table-component/src/DataTable/TableCell.tsx","../node_modules/react-data-table-component/src/DataTable/Checkbox.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellCheckbox.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderButton.tsx","../node_modules/react-data-table-component/src/DataTable/TableCellExpander.tsx","../node_modules/react-data-table-component/src/DataTable/ExpanderRow.tsx","../node_modules/react-data-table-component/src/DataTable/constants.ts","../node_modules/react-data-table-component/src/DataTable/TableRow.tsx","../node_modules/react-data-table-component/src/icons/NativeSortIcon.tsx","../node_modules/react-data-table-component/src/DataTable/TableCol.tsx","../node_modules/react-data-table-component/src/DataTable/TableColCheckbox.tsx","../node_modules/react-data-table-component/src/hooks/useRTL.ts","../node_modules/react-data-table-component/src/DataTable/ContextMenu.tsx","../node_modules/react-data-table-component/src/DataTable/TableHeader.tsx","../node_modules/react-data-table-component/src/DataTable/TableSubheader.tsx","../node_modules/react-data-table-component/src/DataTable/TableBody.tsx","../node_modules/react-data-table-component/src/DataTable/ResponsiveWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/ProgressWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableWrapper.tsx","../node_modules/react-data-table-component/src/DataTable/TableColExpander.tsx","../node_modules/react-data-table-component/src/DataTable/NoDataWrapper.tsx","../node_modules/react-data-table-component/src/icons/Dropdown.tsx","../node_modules/react-data-table-component/src/DataTable/Select.tsx","../node_modules/react-data-table-component/src/DataTable/defaultProps.tsx","../node_modules/react-data-table-component/src/icons/ExpanderCollapsedIcon.tsx","../node_modules/react-data-table-component/src/icons/ExpanderExpandedIcon.tsx","../node_modules/react-data-table-component/src/icons/FirstPage.tsx","../node_modules/react-data-table-component/src/icons/LastPage.tsx","../node_modules/react-data-table-component/src/icons/Right.tsx","../node_modules/react-data-table-component/src/icons/Left.tsx","../node_modules/react-data-table-component/src/DataTable/Pagination.tsx","../node_modules/react-data-table-component/src/hooks/useWindowSize.ts","../node_modules/react-data-table-component/src/hooks/useDidUpdateEffect.ts","../node_modules/react-data-table-component/node_modules/deepmerge/dist/cjs.js","../node_modules/react-data-table-component/src/DataTable/themes.ts","../node_modules/react-data-table-component/src/hooks/useColumns.ts","../node_modules/react-data-table-component/src/DataTable/DataTable.tsx","../node_modules/react-data-table-component/src/DataTable/styles.ts","../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-dom/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-dom/node_modules/scheduler/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/shallowequal/index.js","../node_modules/simple-swizzle/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/constructors/createGlobalStyle.ts","../node_modules/styled-components/src/constructors/keyframes.ts","../node_modules/styled-components/src/hoc/withTheme.tsx","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/secretInternals.ts","../node_modules/styled-components/src/base.ts","../node_modules/tiny-inflate/index.js","../node_modules/unicode-trie/index.js","../node_modules/unicode-trie/swap.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/tslib/tslib.es6.mjs","../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/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../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","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../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/ri/index.mjs","../node_modules/clsx/dist/clsx.mjs","context/UserInformationContext.jsx","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","pages/Login/index.jsx","../node_modules/react-icons/ai/index.mjs","../node_modules/react-icons/fa/index.mjs","../node_modules/react-icons/md/index.mjs","components/Header/UserProfile.jsx","../node_modules/react-icons/io5/index.mjs","components/Common/DropDown.jsx","components/Header/index.jsx","../node_modules/react-icons/bi/index.mjs","../node_modules/react-icons/tb/index.mjs","../node_modules/react-icons/rx/index.mjs","../node_modules/react-icons/hi/index.mjs","../node_modules/react-icons/cg/index.mjs","../node_modules/react-icons/lu/index.mjs","components/SideBar/SideBarData.jsx","../node_modules/react-icons/fa6/index.mjs","components/SideBar/index.jsx","components/PrivateRoute/index.jsx","components/Loader/index.jsx","components/Common/InputField.jsx","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/react-select.esm.js","utils/monthList.js","components/Common/Verify2fa.jsx","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.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/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.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/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/utils.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/Modal.js","../node_modules/@restart/hooks/esm/useMounted.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/dom-helpers/esm/hasClass.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/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.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/@restart/hooks/esm/useCallbackRef.js","components/Profile/BonusDeductionGamesModal.jsx","components/Common/MultiSelectDropDown.jsx","components/Profile/RoyaltiesGameTypes.jsx","../node_modules/react-icons/io/index.mjs","components/Profile/BrandSettings.jsx","components/Profile/ProfileInformation.jsx","components/Profile/TestPlayers.jsx","components/Profile/CasinoTokenSetting.jsx","pages/Home/index.jsx","../node_modules/react-bootstrap-daterangepicker/src/index.tsx","../node_modules/react-icons/bs/index.mjs","../node_modules/react-icons/gi/index.mjs","../node_modules/react-icons/lia/index.mjs","../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/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/fileloading.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","../node_modules/react-icons/fi/index.mjs","components/Common/GenericPdfdownloader.jsx","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","pages/Invoices/index.jsx","../node_modules/react-hook-form/src/useForm.ts","components/MainDashboard/CasinoChart.jsx","utils/index.js","components/MainDashboard/Revenue.jsx","../node_modules/react-icons/fc/index.mjs","components/MainDashboard/ReportsFilter.jsx","components/MainDashboard/GgrByGame.jsx","pages/MainDashboard/index.jsx","components/Charts/CasinoGameReports/AllGamesChart.js","components/Charts/CasinoGameReports/NumberOfBetsPerDayChart.js","components/Charts/CasinoGameReports/GameTypeBetsChart.js","components/Common/CurrenciesDropdown.jsx","components/Charts/CasinoGameReports/CasinoGGR.js","pages/CasinoGameReports/index.jsx","pages/CasinoGameRounds/PlayerTable/index.jsx","pages/CasinoGameRounds/index.jsx","pages/PlayerReports/PlayerChart/index.jsx","pages/PlayerReports/PlayerTable/index.jsx","pages/PlayerReports/index.jsx","pages/Casino/index.jsx","components/Charts/Finance/GamesBetsPerHour.js","components/Charts/Finance/GameTypeBetsPerHour.js","components/Charts/Finance/GamesBetsTransactionsChart.js","components/Charts/Finance/AllCasinoGGR.js","components/Finance/AllCasinoGGRTable.js","components/Finance/AllBrandsGGRTable.js","components/Charts/Finance/AllBrandsGGR.js","components/Finance/AllBrandsGGRPerMonthTable.js","pages/Finance/index.jsx","components/FiancialReports/GameReports/DetailedGameReports.js","components/FiancialReports/GameReports/index.js","components/FiancialReports/GameTypeReports/MonthlyGameTypeSummaries.js","components/FiancialReports/GameTypeReports/index.js","pages/FinancialReports/index.jsx","../node_modules/@react-pdf/primitives/src/index.js","../node_modules/restructure/src/DecodeStream.js","../node_modules/restructure/src/EncodeStream.js","../node_modules/restructure/src/Base.js","../node_modules/restructure/src/Number.js","../node_modules/restructure/src/utils.js","../node_modules/restructure/src/Array.js","../node_modules/restructure/src/LazyArray.js","../node_modules/restructure/src/Bitfield.js","../node_modules/restructure/src/Buffer.js","../node_modules/restructure/src/Optional.js","../node_modules/restructure/src/Reserved.js","../node_modules/restructure/src/String.js","../node_modules/restructure/src/Struct.js","../node_modules/restructure/src/VersionedStruct.js","../node_modules/restructure/src/Pointer.js","../node_modules/@swc/helpers/esm/_define_property.js","../node_modules/unicode-properties/dist/data.json","../node_modules/unicode-properties/dist/index.js","../node_modules/fontkit/dist/src/base.js","../node_modules/fontkit/dist/src/decorators.js","../node_modules/fontkit/dist/src/tables/cmap.js","../node_modules/fontkit/dist/src/tables/head.js","../node_modules/fontkit/dist/src/tables/hhea.js","../node_modules/fontkit/dist/src/tables/hmtx.js","../node_modules/fontkit/dist/src/tables/maxp.js","../node_modules/fontkit/dist/src/encodings.js","../node_modules/fontkit/dist/src/tables/name.js","../node_modules/fontkit/dist/src/tables/OS2.js","../node_modules/fontkit/dist/src/tables/post.js","../node_modules/fontkit/dist/src/tables/cvt.js","../node_modules/fontkit/dist/src/tables/fpgm.js","../node_modules/fontkit/dist/src/tables/loca.js","../node_modules/fontkit/dist/src/tables/prep.js","../node_modules/fontkit/dist/src/tables/glyf.js","../node_modules/fontkit/dist/src/cff/CFFIndex.js","../node_modules/fontkit/dist/src/cff/CFFOperand.js","../node_modules/fontkit/dist/src/cff/CFFDict.js","../node_modules/fontkit/dist/src/cff/CFFPointer.js","../node_modules/fontkit/dist/src/cff/CFFPrivateDict.js","../node_modules/fontkit/dist/src/cff/CFFStandardStrings.js","../node_modules/fontkit/dist/src/cff/CFFEncodings.js","../node_modules/fontkit/dist/src/cff/CFFCharsets.js","../node_modules/fontkit/dist/src/tables/opentype.js","../node_modules/fontkit/dist/src/tables/variations.js","../node_modules/fontkit/dist/src/cff/CFFTop.js","../node_modules/fontkit/dist/src/cff/CFFFont.js","../node_modules/fontkit/dist/src/tables/VORG.js","../node_modules/fontkit/dist/src/tables/EBDT.js","../node_modules/fontkit/dist/src/tables/EBLC.js","../node_modules/fontkit/dist/src/tables/sbix.js","../node_modules/fontkit/dist/src/tables/COLR.js","../node_modules/fontkit/dist/src/tables/CPAL.js","../node_modules/fontkit/dist/src/tables/BASE.js","../node_modules/fontkit/dist/src/tables/GDEF.js","../node_modules/fontkit/dist/src/tables/GPOS.js","../node_modules/fontkit/dist/src/tables/GSUB.js","../node_modules/fontkit/dist/src/tables/JSTF.js","../node_modules/fontkit/dist/src/tables/HVAR.js","../node_modules/fontkit/dist/src/tables/DSIG.js","../node_modules/fontkit/dist/src/tables/gasp.js","../node_modules/fontkit/dist/src/tables/hdmx.js","../node_modules/fontkit/dist/src/tables/kern.js","../node_modules/fontkit/dist/src/tables/LTSH.js","../node_modules/fontkit/dist/src/tables/PCLT.js","../node_modules/fontkit/dist/src/tables/VDMX.js","../node_modules/fontkit/dist/src/tables/vhea.js","../node_modules/fontkit/dist/src/tables/vmtx.js","../node_modules/fontkit/dist/src/tables/avar.js","../node_modules/fontkit/dist/src/tables/aat.js","../node_modules/fontkit/dist/src/tables/bsln.js","../node_modules/fontkit/dist/src/tables/feat.js","../node_modules/fontkit/dist/src/tables/fvar.js","../node_modules/fontkit/dist/src/tables/gvar.js","../node_modules/fontkit/dist/src/tables/just.js","../node_modules/fontkit/dist/src/tables/morx.js","../node_modules/fontkit/dist/src/tables/opbd.js","../node_modules/fontkit/dist/src/tables/index.js","../node_modules/fontkit/dist/src/tables/directory.js","../node_modules/fontkit/dist/src/utils.js","../node_modules/fontkit/dist/src/CmapProcessor.js","../node_modules/fontkit/dist/src/layout/KernProcessor.js","../node_modules/fontkit/dist/src/layout/UnicodeLayoutEngine.js","../node_modules/fontkit/dist/src/glyph/BBox.js","../node_modules/fontkit/dist/src/layout/Script.js","../node_modules/fontkit/dist/src/layout/GlyphRun.js","../node_modules/fontkit/dist/src/layout/GlyphPosition.js","../node_modules/fontkit/dist/src/aat/AATFeatureMap.js","../node_modules/fontkit/dist/src/aat/AATLookupTable.js","../node_modules/fontkit/dist/src/aat/AATStateMachine.js","../node_modules/fontkit/dist/src/aat/AATMorxProcessor.js","../node_modules/fontkit/dist/src/aat/AATLayoutEngine.js","../node_modules/fontkit/dist/src/opentype/ShapingPlan.js","../node_modules/fontkit/dist/src/opentype/shapers/DefaultShaper.js","../node_modules/fontkit/dist/src/opentype/shapers/ArabicShaper.js","../node_modules/fontkit/dist/src/opentype/GlyphIterator.js","../node_modules/fontkit/dist/src/opentype/OTProcessor.js","../node_modules/fontkit/dist/src/opentype/GlyphInfo.js","../node_modules/fontkit/dist/src/opentype/shapers/HangulShaper.js","../node_modules/fontkit/dist/src/opentype/shapers/indic.json","../node_modules/fontkit/dist/src/opentype/shapers/use.json","../node_modules/fontkit/dist/src/opentype/shapers/indic-data.js","../node_modules/fontkit/dist/src/opentype/shapers/IndicShaper.js","../node_modules/fontkit/dist/src/opentype/shapers/UniversalShaper.js","../node_modules/fontkit/dist/src/opentype/shapers/index.js","../node_modules/fontkit/dist/src/opentype/GSUBProcessor.js","../node_modules/fontkit/dist/src/opentype/GPOSProcessor.js","../node_modules/fontkit/dist/src/opentype/OTLayoutEngine.js","../node_modules/fontkit/dist/src/layout/LayoutEngine.js","../node_modules/fontkit/dist/src/glyph/Path.js","../node_modules/fontkit/dist/src/glyph/StandardNames.js","../node_modules/fontkit/dist/src/glyph/Glyph.js","../node_modules/fontkit/dist/src/glyph/TTFGlyph.js","../node_modules/fontkit/dist/src/glyph/CFFGlyph.js","../node_modules/fontkit/dist/src/glyph/SBIXGlyph.js","../node_modules/fontkit/dist/src/glyph/COLRGlyph.js","../node_modules/fontkit/dist/src/glyph/GlyphVariationProcessor.js","../node_modules/fontkit/dist/src/subset/Subset.js","../node_modules/fontkit/dist/src/glyph/TTFGlyphEncoder.js","../node_modules/fontkit/dist/src/subset/TTFSubset.js","../node_modules/fontkit/dist/src/subset/CFFSubset.js","../node_modules/fontkit/dist/src/TTFFont.js","../node_modules/fontkit/dist/src/tables/WOFFDirectory.js","../node_modules/fontkit/dist/src/glyph/WOFF2Glyph.js","../node_modules/fontkit/dist/src/tables/WOFF2Directory.js","../node_modules/fontkit/dist/src/WOFF2Font.js","../node_modules/fontkit/dist/src/TrueTypeCollection.js","../node_modules/fontkit/dist/src/DFont.js","../node_modules/fontkit/dist/src/index.js","../node_modules/fontkit/dist/src/WOFFFont.js","../node_modules/@react-pdf/font/lib/index.browser.js","../node_modules/@react-pdf/fns/lib/index.js","../node_modules/svg-arc-to-cubic-bezier/modules/index.js","../node_modules/normalize-svg-path/index.mjs","../node_modules/@react-pdf/render/lib/index.js","../node_modules/jay-peg/src/markers/dac.js","../node_modules/jay-peg/src/markers/utils.js","../node_modules/jay-peg/src/markers/dht.js","../node_modules/jay-peg/src/markers/dqt.js","../node_modules/jay-peg/src/markers/dri.js","../node_modules/jay-peg/src/markers/eoi.js","../node_modules/jay-peg/src/markers/exif.js","../node_modules/jay-peg/src/markers/jfif.js","../node_modules/jay-peg/src/markers/sos.js","../node_modules/jay-peg/src/markers/sof.js","../node_modules/jay-peg/src/markers/soi.js","../node_modules/jay-peg/src/index.js","../node_modules/@react-pdf/png-js/lib/png-js.browser.js","../node_modules/@react-pdf/pdfkit/lib/pdfkit.browser.js","../node_modules/@react-pdf/stylesheet/lib/index.js","../node_modules/bidi-js/dist/bidi.mjs","../node_modules/@react-pdf/textkit/lib/textkit.js","../node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js","../node_modules/yoga-layout/src/generated/YGEnums.ts","../node_modules/yoga-layout/src/wrapAssembly.ts","../node_modules/@react-pdf/image/lib/index.browser.js","../node_modules/@react-pdf/layout/lib/index.js","../node_modules/yoga-layout/src/load.ts","../node_modules/emoji-regex/index.mjs","../node_modules/node_modules/react-reconciler/cjs/react-reconciler.production.min.js","../node_modules/@react-pdf/renderer/src/utils/propsEqual.js","../node_modules/@react-pdf/renderer/src/renderer.js","../node_modules/@react-pdf/renderer/src/index.js","../node_modules/@react-pdf/renderer/src/dom/usePDF.js","../node_modules/@react-pdf/renderer/src/dom/PDFViewer.js","../node_modules/@react-pdf/renderer/src/dom/index.js","pages/react-pdf-html/index.jsx","components/Charts/CasinoGameReports/AllGamesGGR.js","components/Charts/Finance/AllGameTypeGGR.js","components/GameReports/SlotGamesGGR.js","components/GameReports/GameThemeChart.js","components/GameReports/GameTypeGGRChart.js","components/GameReports/GameBrandsGGRChart.js","components/GameReports/BrandsGGRbyGameChart.jsx","pages/GameReports/index.jsx","pages/Player/PlayerTable/index.jsx","pages/Player/index.jsx","pages/FinancialStatements/index.jsx","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","pages/UserPermission/index.jsx","pages/2faSettings/index.jsx","pages/TransactionsPerCasino/TrasactionPerCasinoTable/index.jsx","pages/TransactionsPerCasino/index.jsx","components/PrivateRoute/PrivateRouteData.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["\nmodule.exports = absolutize\n\n/**\n * redefine `path` with absolute coordinates\n *\n * @param {Array} path\n * @return {Array}\n */\n\nfunction absolutize(path){\n\tvar startX = 0\n\tvar startY = 0\n\tvar x = 0\n\tvar y = 0\n\n\treturn path.map(function(seg){\n\t\tseg = seg.slice()\n\t\tvar type = seg[0]\n\t\tvar command = type.toUpperCase()\n\n\t\t// is relative\n\t\tif (type != command) {\n\t\t\tseg[0] = command\n\t\t\tswitch (type) {\n\t\t\t\tcase 'a':\n\t\t\t\t\tseg[6] += x\n\t\t\t\t\tseg[7] += y\n\t\t\t\t\tbreak\n\t\t\t\tcase 'v':\n\t\t\t\t\tseg[1] += y\n\t\t\t\t\tbreak\n\t\t\t\tcase 'h':\n\t\t\t\t\tseg[1] += x\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tfor (var i = 1; i < seg.length;) {\n\t\t\t\t\t\tseg[i++] += x\n\t\t\t\t\t\tseg[i++] += y\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// update cursor state\n\t\tswitch (command) {\n\t\t\tcase 'Z':\n\t\t\t\tx = startX\n\t\t\t\ty = startY\n\t\t\t\tbreak\n\t\t\tcase 'H':\n\t\t\t\tx = seg[1]\n\t\t\t\tbreak\n\t\t\tcase 'V':\n\t\t\t\ty = seg[1]\n\t\t\t\tbreak\n\t\t\tcase 'M':\n\t\t\t\tx = startX = seg[1]\n\t\t\t\ty = startY = seg[2]\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tx = seg[seg.length - 2]\n\t\t\t\ty = seg[seg.length - 1]\n\t\t}\n\n\t\treturn seg\n\t})\n}\n","/*!\n * ApexCharts v3.54.1\n * (c) 2018-2024 ApexCharts\n * Released under the MIT License.\n */\n\"use strict\";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=Array(e);i=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:s}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,o=!0,n=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return o=t.done,t},e:function(t){n=!0,r=t},f:function(){try{o||null==i.return||i.return()}finally{if(n)throw r}}}}function o(t){var i=c();return function(){var a,s=l(t);if(i){var r=l(this).constructor;a=Reflect.construct(s,arguments,r)}else a=s.apply(this,arguments);return function(t,i){if(i&&(\"object\"==typeof i||\"function\"==typeof i))return i;if(void 0!==i)throw new TypeError(\"Derived constructors may only return object or undefined\");return e(t)}(this,a)}}function n(t,e,i){return(e=x(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function h(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&u(t,e)}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}function d(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function g(t){for(var e=1;e>16,o=i>>8&255,n=255&i;return\"#\"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:\"shadeColor\",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:\"bind\",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:\"isObject\",value:function(t){return t&&\"object\"===b(t)&&!Array.isArray(t)&&null!=t}},{key:\"is\",value:function(t,e){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}},{key:\"listToArray\",value:function(t){var e,i=[];for(e=0;e1&&void 0!==arguments[1]?arguments[1]:2;return Number.isInteger(t)?t:parseFloat(t.toPrecision(e))}},{key:\"randomId\",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:\"noExponents\",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i=\"\",a=t<0?\"-\":\"\",s=e[0].replace(\".\",\"\"),r=Number(e[1])+1;if(r<0){for(i=a+\"0.\";r++;)i+=\"0\";return i+s.replace(/^-/,\"\")}for(r-=s.length;r--;)i+=\"0\";return s+i}},{key:\"getDimensions\",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:\"getBoundingClientRect\",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:\"getLargestStringFromArr\",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:\"hexToRgba\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"#999999\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;\"#\"!==t.substring(0,1)&&(t=\"#999999\");var i=t.replace(\"#\",\"\");i=i.match(new RegExp(\"(.{\"+i.length/3+\"})\",\"g\"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:\"x\",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\\=?;:'\",.<>{}[\\]\\\\/]/gi,e)}},{key:\"negToZero\",value:function(t){return t<0?0:t}},{key:\"moveIndexInArray\",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:\"extractNumber\",value:function(t){return parseFloat(t.replace(/[^\\d.]*/g,\"\"))}},{key:\"findAncestor\",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:\"setELstyles\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:\"preciseAddition\",value:function(t,e){var i=(String(t).split(\".\")[1]||\"\").length,a=(String(e).split(\".\")[1]||\"\").length,s=Math.pow(10,Math.max(i,a));return(Math.round(t*s)+Math.round(e*s))/s}},{key:\"isNumber\",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:\"isFloat\",value:function(t){return Number(t)===t&&t%1!=0}},{key:\"isSafari\",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:\"isFirefox\",value:function(){return navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}},{key:\"isMsEdge\",value:function(){var t=window.navigator.userAgent,e=t.indexOf(\"Edge/\");return e>0&&parseInt(t.substring(e+5,t.indexOf(\".\",e)),10)}},{key:\"getGCD\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));for(t=Math.round(Math.abs(t)*a),e=Math.round(Math.abs(e)*a);e;){var s=e;e=t%e,t=s}return t/a}},{key:\"getPrimeFactors\",value:function(t){for(var e=[],i=2;t>=2;)t%i==0?(e.push(i),t/=i):i++;return e}},{key:\"mod\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));return(t=Math.round(Math.abs(t)*a))%(e=Math.round(Math.abs(e)*a))/a}}]),t}(),y=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return s(t,[{key:\"setEasingFunctions\",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case\"linear\":t=\"-\";break;case\"easein\":t=\"<\";break;case\"easeout\":t=\">\";break;case\"easeinout\":default:t=\"<>\";break;case\"swing\":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case\"bounce\":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case\"elastic\":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:\"animateLine\",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:\"animateMarker\",value:function(t,e,i,a){t.attr({opacity:0}).animate(e,i).attr({opacity:1}).afterAll((function(){a()}))}},{key:\"animateRect\",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:\"animatePathsGradually\",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&\"bar\"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,\"line\"!==h.config.chart.type||h.globals.comboCharts?s:\"stroke\",r,o,n,l*c)}},{key:\"showDelayedElements\",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove(\"apexcharts-element-hidden\"),e.classList.add(\"apexcharts-hidden-element-shown\")}))}},{key:\"animationCompleted\",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),\"function\"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:\"morphSVG\",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr(\"pathFrom\")),r||(r=t.attr(\"pathTo\"));var c=function(t){return\"radar\"===h.config.chart.type&&(o=1),\"M 0 \".concat(h.globals.gridHeight)};(!s||s.indexOf(\"undefined\")>-1||s.indexOf(\"NaN\")>-1)&&(s=c()),(!r||r.indexOf(\"undefined\")>-1||r.indexOf(\"NaN\")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){m.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):\"none\"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),w=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"getDefaultFilter\",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size(\"120%\",\"180%\",\"-5%\",\"-40%\"),\"none\"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addNormalFilter\",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains(\"apexcharts-marker\")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addLightenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"addDarkenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"applyFilter\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case\"none\":this.addNormalFilter(t,e);break;case\"lighten\":this.addLightenFilter(t,e,{intensity:a});break;case\"darken\":this.addDarkenFilter(t,e,{intensity:a})}}},{key:\"addShadow\",value:function(t,e,i){var a,s=this.w,r=i.blur,o=i.top,n=i.left,l=i.color,h=i.opacity;if((null===(a=s.config.chart.dropShadow.enabledOnSeries)||void 0===a?void 0:a.length)>0&&-1===s.config.chart.dropShadow.enabledOnSeries.indexOf(e))return t;var c=t.flood(Array.isArray(l)?l[e]:l,h).composite(t.sourceAlpha,\"in\").offset(n,o).gaussianBlur(r).merge(t.source);return t.blend(t.source,c)}},{key:\"dropShadow\",value:function(t,e){var i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=e.top,o=e.left,n=e.blur,l=e.color,h=e.opacity,c=e.noUserSpaceOnUse,d=this.w;if(t.unfilter(!0),m.isMsEdge()&&\"radialBar\"===d.config.chart.type)return t;if((null===(i=d.config.chart.dropShadow.enabledOnSeries)||void 0===i?void 0:i.length)>0&&-1===(null===(a=d.config.chart.dropShadow.enabledOnSeries)||void 0===a?void 0:a.indexOf(s)))return t;return l=Array.isArray(l)?l[s]:l,t.filter((function(t){var e=null;e=m.isSafari()||m.isFirefox()||m.isMsEdge()?t.flood(l,h).composite(t.sourceAlpha,\"in\").offset(o,r).gaussianBlur(n):t.flood(l,h).composite(t.sourceAlpha,\"in\").offset(o,r).gaussianBlur(n).merge(t.source),t.blend(t.source,e)})),c||t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node),t}},{key:\"setSelectionFilter\",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute(\"selected\",!0);var s=a.config.states.active.filter;\"none\"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:\"_scaleFilterSize\",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"})}}]),t}(),k=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"roundPathCorners\",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf(\"NaN\")>-1&&(t=\"\");var o=t.split(/[,\\s]/).reduce((function(t,e){var i=e.match(\"([a-zA-Z])(.+)\");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;\"Z\"==o[o.length-1][0]&&o[0].length>2&&(h=[\"L\",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c2&&\"L\"==g[0]&&u.length>2&&\"L\"==u[0]){var f,p,x=r(d),b=r(g),v=r(u);f=i(b,x,e),p=i(b,v,e),s(g,f),g.origPoint=b,n.push(g);var m=a(f,b,.5),y=a(b,p,.5),w=[\"C\",m.x,m.y,y.x,y.y,p.x,p.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push([\"Z\"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(\" \")+\" \"}),\"\")}},{key:\"drawLine\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"#a8a8a8\",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:\"butt\";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,\"stroke-dasharray\":r,\"stroke-width\":o,\"stroke-linecap\":n})}},{key:\"drawRect\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"#fefefe\",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,\"stroke-width\":null!==n?n:0,stroke:null!==l?l:\"none\",\"stroke-dasharray\":h}),c.node.setAttribute(\"fill\",r),c}},{key:\"drawPolygon\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#e1e1e1\",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"none\";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,\"stroke-width\":i})}},{key:\"drawCircle\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:\"drawPath\",value:function(t){var e=t.d,i=void 0===e?\"\":e,a=t.stroke,s=void 0===a?\"#a8a8a8\":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf(\"undefined\")>-1||i.indexOf(\"NaN\")>-1)&&(i=\"M 0 \".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,\"fill-opacity\":h,stroke:s,\"stroke-opacity\":d,\"stroke-linecap\":f,\"stroke-width\":o,\"stroke-dasharray\":x,class:g})}},{key:\"group\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:\"move\",value:function(t,e){var i=[\"M\",t,e].join(\" \");return i}},{key:\"line\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[\" L\",t,e].join(\" \"):\"H\"===i?a=[\" H\",t].join(\" \"):\"V\"===i&&(a=[\" V\",e].join(\" \")),a}},{key:\"curve\",value:function(t,e,i,a,s,r){var o=[\"C\",t,e,i,a,s,r].join(\" \");return o}},{key:\"quadraticCurve\",value:function(t,e,i,a){return[\"Q\",t,e,i,a].join(\" \")}},{key:\"arc\",value:function(t,e,i,a,s,r,o){var n=\"A\";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n=\"a\");var l=[n,t,e,i,a,s,r,o].join(\" \");return l}},{key:\"renderPaths\",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,r=t.pathTo,o=t.stroke,n=t.strokeWidth,l=t.strokeLinecap,h=t.fill,c=t.animationDelay,d=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,p=t.chartType,x=t.shouldClipToGrid,b=void 0===x||x,v=t.bindEventsOnPaths,m=void 0===v||v,k=t.drawShadow,A=void 0===k||k,S=this.w,C=new w(this.ctx),L=new y(this.ctx),P=this.w.config.chart.animations.enabled,M=P&&this.w.config.chart.animations.dynamicAnimation.enabled,I=!!(P&&!S.globals.resized||M&&S.globals.dataChanged&&S.globals.shouldAnimate);I?e=s:(e=r,S.globals.animationEnded=!0);var T=S.config.stroke.dashArray,z=0;z=Array.isArray(T)?T[a]:S.config.stroke.dashArray;var X=this.drawPath({d:e,stroke:o,strokeWidth:n,fill:h,fillOpacity:1,classes:f,strokeLinecap:l,strokeDashArray:z});if(X.attr(\"index\",a),b&&(\"bar\"===p&&!S.globals.isHorizontal||S.globals.comboCharts?X.attr({\"clip-path\":\"url(#gridRectBarMask\".concat(S.globals.cuid,\")\")}):X.attr({\"clip-path\":\"url(#gridRectMask\".concat(S.globals.cuid,\")\")})),\"none\"!==S.config.states.normal.filter.type)C.getDefaultFilter(X,a);else if(S.config.chart.dropShadow.enabled&&A){var E=S.config.chart.dropShadow;C.dropShadow(X,E,a)}m&&(X.node.addEventListener(\"mouseenter\",this.pathMouseEnter.bind(this,X)),X.node.addEventListener(\"mouseleave\",this.pathMouseLeave.bind(this,X)),X.node.addEventListener(\"mousedown\",this.pathMouseDown.bind(this,X))),X.attr({pathTo:r,pathFrom:s});var Y={el:X,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:h,strokeWidth:n,delay:c};return!P||S.globals.resized||S.globals.dataChanged?!S.globals.resized&&S.globals.dataChanged||L.showDelayedElements():L.animatePathsGradually(g(g({},Y),{},{speed:d})),S.globals.dataChanged&&M&&I&&L.animatePathsGradually(g(g({},Y),{},{speed:u})),X}},{key:\"drawPattern\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"#a8a8a8\",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){\"horizontalLines\"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):\"verticalLines\"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):\"slantedLines\"===t?r.line(0,0,e,i).stroke({color:a,width:s}):\"squares\"===t?r.rect(e,i).fill(\"none\").stroke({color:a,width:s}):\"circles\"===t&&r.circle(e).fill(\"none\").stroke({color:a,width:s})}))}},{key:\"drawGradient\",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf(\"#\")&&(e=m.hexToRgba(e,a)),i.length<9&&0===i.indexOf(\"#\")&&(i=m.hexToRgba(i,s));var d=0,g=1,u=1,f=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);var p=!(\"donut\"!==c.config.chart.type&&\"pie\"!==c.config.chart.type&&\"polarArea\"!==c.config.chart.type&&\"bubble\"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(p?\"radial\":\"linear\",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==f&&t.at(f,e,a)})):c.globals.dom.Paper.gradient(p?\"radial\":\"linear\",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),p){var x=c.globals.gridWidth/2,b=c.globals.gridHeight/2;\"bubble\"!==c.config.chart.type?r.attr({gradientUnits:\"userSpaceOnUse\",cx:x,cy:b,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else\"vertical\"===t?r.from(0,0).to(0,1):\"diagonal\"===t?r.from(0,0).to(1,1):\"horizontal\"===t?r.from(0,1).to(1,1):\"diagonal2\"===t&&r.from(1,0).to(0,1);return r}},{key:\"getTextBasedOnMaxWidth\",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(\".apexcharts-series path\").members,h=i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute(\"selected\",\"false\"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute(\"selected\",\"true\"),o=\"true\",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(\"true\"===o){var d=i.config.states.active.filter;if(\"none\"!==d)a.applyFilter(t,s,d.type,d.value);else if(\"none\"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if(\"none\"!==i.config.states.active.filter.type)if(\"none\"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}\"function\"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent(\"dataPointSelection\",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:\"rotateAroundCenter\",value:function(t){var e={};return t&&\"function\"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:\"getTextRects\",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:\"start\",fontSize:e,fontFamily:i,foreColor:\"#fff\",opacity:0});a&&o.attr(\"transform\",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:\"placeTextWithEllipsis\",value:function(t,e,i){if(\"function\"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+\"...\");t.textContent=\".\"}}}],[{key:\"setAttrs\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),A=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"getStackedSeriesTotals\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:\"getStackedSeriesTotalsByGroups\",value:function(){var t=this,e=this.w,i=[];return e.globals.seriesGroups.forEach((function(a){var s=[];e.config.series.forEach((function(t,i){a.indexOf(e.globals.seriesNames[i])>-1&&s.push(i)}));var r=e.globals.series.map((function(t,e){return-1===s.indexOf(e)?e:-1})).filter((function(t){return-1!==t}));i.push(t.getStackedSeriesTotals(r))})),i}},{key:\"setSeriesYAxisMappings\",value:function(){var t=this.w.globals,e=this.w.config,i=[],a=[],s=[],r=t.series.length>e.yaxis.length||e.yaxis.some((function(t){return Array.isArray(t.seriesName)}));e.series.forEach((function(t,e){s.push(e),a.push(null)})),e.yaxis.forEach((function(t,e){i[e]=[]}));var o=[];e.yaxis.forEach((function(t,a){var n=!1;if(t.seriesName){var l=[];Array.isArray(t.seriesName)?l=t.seriesName:l.push(t.seriesName),l.forEach((function(t){e.series.forEach((function(e,o){if(e.name===t){var l=o;a===o||r?!r||s.indexOf(o)>-1?i[a].push([a,o]):console.warn(\"Series '\"+e.name+\"' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes.\"):(i[o].push([o,a]),l=a),n=!0,-1!==(l=s.indexOf(l))&&s.splice(l,1)}}))}))}n||o.push(a)})),i=i.map((function(t,e){var i=[];return t.forEach((function(t){a[t[1]]=t[0],i.push(t[1])})),i}));for(var n=e.yaxis.length-1,l=0;l0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:\"seriesHaveSameValues\",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:\"getCategoryLabels\",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:\"getLargestSeries\",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:\"getLargestMarkerSize\",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(t.config.markers.hover.size>0?e=t.config.markers.hover.size:e+=t.config.markers.hover.sizeOffset),t.globals.markers.largestSize=e,e}},{key:\"getSeriesTotals\",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0){var u=function(t,e){var i=s.config.yaxis[s.globals.seriesYAxisReverseMap[e]],r=t<0?-1:1;return t=Math.abs(t),i.logarithmic&&(t=a.getBaseLog(i.logBase,t)),-r*t/o[e]};if(r.isMultipleYAxis){l=[];for(var f=0;f0&&e.forEach((function(e){var o=[],n=[];t.i.forEach((function(i,a){s.config.series[i].group===e&&(o.push(t.series[a]),n.push(i))})),o.length>0&&r.push(a.draw(o,i,n))})),r}}],[{key:\"checkComboSeries\",value:function(t,e){var i=!1,a=0,s=0;return void 0===e&&(e=\"line\"),t.length&&void 0!==t[0].type&&t.forEach((function(t){\"bar\"!==t.type&&\"column\"!==t.type&&\"candlestick\"!==t.type&&\"boxPlot\"!==t.type||a++,void 0!==t.type&&t.type!==e&&s++})),s>0&&(i=!0),{comboBarCount:a,comboCharts:i}}},{key:\"extendArrayProps\",value:function(t,e,i){var a,s,r,o,n,l;(null!==(a=e)&&void 0!==a&&a.yaxis&&(e=t.extendYAxis(e,i)),null!==(s=e)&&void 0!==s&&s.annotations)&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),null!==(r=e)&&void 0!==r&&null!==(o=r.annotations)&&void 0!==o&&o.xaxis&&(e=t.extendXAxisAnnotations(e)),null!==(n=e)&&void 0!==n&&null!==(l=n.annotations)&&void 0!==l&&l.points&&(e=t.extendPointAnnotations(e)));return e}}]),t}(),S=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e}return s(t,[{key:\"setOrientations\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if(\"vertical\"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a,\"']\"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute(\"x\",parseFloat(s.getAttribute(\"x\"))-r.height+4);var o=\"top\"===t.label.position?r.width:-r.width;s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))+o);var n=this.annoCtx.graphics.rotateAroundCenter(s),l=n.x,h=n.y;s.setAttribute(\"transform\",\"rotate(-90 \".concat(l,\" \").concat(h,\")\"))}}}},{key:\"addBackgroundToAnno\",value:function(t,e){var i=this.w;if(!t||!e.label.text||!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding,o=r.left,n=r.right,l=r.top,h=r.bottom;if(\"vertical\"===e.label.orientation){var c=[o,n,l,h];l=c[0],h=c[1],o=c[2],n=c[3]}var d=s.left-a.left-o,g=s.top-a.top-l,u=this.annoCtx.graphics.drawRect(d-i.globals.barPadForNumericAxis,g,s.width+o+n,s.height+l+h,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&u.node.classList.add(e.id),u}},{key:\"annotationsBackground\",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(a,\"']\"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener(\"mouseenter\",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener(\"mouseleave\",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener(\"click\",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.forEach((function(t,e){return i(t,e,\"xaxis\")})),e.config.annotations.yaxis.forEach((function(t,e){return i(t,e,\"yaxis\")})),e.config.annotations.points.forEach((function(t,e){return i(t,e,\"point\")}))}},{key:\"getY1Y2\",value:function(t,e){var i,a=this.w,s=\"y1\"===t?e.y:e.y2,r=!1;if(this.annoCtx.invertAxis){var o=a.config.xaxis.convertedCatToNumeric?a.globals.categoryLabels:a.globals.labels,n=o.indexOf(s),l=a.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\".concat(n+1,\")\"));i=l?parseFloat(l.getAttribute(\"y\")):(a.globals.gridHeight/o.length-1)*(n+1)-a.globals.barHeight,void 0!==e.seriesIndex&&a.globals.barHeight&&(i-=a.globals.barHeight/2*(a.globals.series.length-1)-a.globals.barHeight*e.seriesIndex)}else{var h,c=a.globals.seriesYAxisMap[e.yAxisIndex][0],d=a.config.yaxis[e.yAxisIndex].logarithmic?new A(this.annoCtx.ctx).getLogVal(a.config.yaxis[e.yAxisIndex].logBase,s,c)/a.globals.yLogRatio[c]:(s-a.globals.minYArr[c])/(a.globals.yRange[c]/a.globals.gridHeight);i=a.globals.gridHeight-Math.min(Math.max(d,0),a.globals.gridHeight),r=d>a.globals.gridHeight||d<0,!e.marker||void 0!==e.y&&null!==e.y||(i=0),null!==(h=a.config.yaxis[e.yAxisIndex])&&void 0!==h&&h.reversed&&(i=d)}return\"string\"==typeof s&&s.includes(\"px\")&&(i=parseFloat(s)),{yP:i,clipped:r}}},{key:\"getX1X2\",value:function(t,e){var i=this.w,a=\"x1\"===t?e.x:e.x2,s=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,r=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,o=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,n=!1,l=this.annoCtx.inversedReversedAxis?(r-a)/(o/i.globals.gridWidth):(a-s)/(o/i.globals.gridWidth);return\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||i.config.chart.sparkline.enabled||(l=this.getStringX(a)),\"string\"==typeof a&&a.includes(\"px\")&&(l=parseFloat(a)),null==a&&e.marker&&(l=i.globals.gridWidth),void 0!==e.seriesIndex&&i.globals.barWidth&&!this.annoCtx.invertAxis&&(l-=i.globals.barWidth/2*(i.globals.series.length-1)-i.globals.barWidth*e.seriesIndex),l>i.globals.gridWidth?(l=i.globals.gridWidth,n=!0):l<0&&(l=0,n=!0),{x:l,clipped:n}}},{key:\"getStringX\",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.map((function(t){return Array.isArray(t)?t.join(\" \"):t})).indexOf(t),s=e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\".concat(a+1,\")\"));return s&&(i=parseFloat(s.getAttribute(\"x\"))),i}}]),t}(),C=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new S(this.annoCtx)}return s(t,[{key:\"addXaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2(\"x1\",t),o=r.x,n=r.clipped,l=!0,h=t.label.text,c=t.strokeDashArray;if(m.isNumber(o)){if(null===t.x2||void 0===t.x2){if(!n){var d=this.annoCtx.graphics.drawLine(o+t.offsetX,0+t.offsetY,o+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,c,t.borderWidth);e.appendChild(d.node),t.id&&d.node.classList.add(t.id)}}else{var g=this.helpers.getX1X2(\"x2\",t);if(a=g.x,l=g.clipped,!n||!l){if(a12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\\\])HH+/g,\"$1\"+l(g))).replace(/(^|[^\\\\])H/g,\"$1\"+g)).replace(/(^|[^\\\\])hh+/g,\"$1\"+l(u))).replace(/(^|[^\\\\])h/g,\"$1\"+u);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\\\])mm+/g,\"$1\"+l(f))).replace(/(^|[^\\\\])m/g,\"$1\"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\\\])ss+/g,\"$1\"+l(x))).replace(/(^|[^\\\\])s/g,\"$1\"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\\\])fff+/g,\"$1\"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\\\])ff/g,\"$1\"+l(b)),b=Math.round(b/10);var v=g<12?\"AM\":\"PM\";e=(e=(e=e.replace(/(^|[^\\\\])f/g,\"$1\"+b)).replace(/(^|[^\\\\])TT+/g,\"$1\"+v)).replace(/(^|[^\\\\])T/g,\"$1\"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\\\])tt+/g,\"$1\"+m)).replace(/(^|[^\\\\])t/g,\"$1\"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?\"Z\":y>0?\"+\":\"-\";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+\":\"+l(k)}e=e.replace(/(^|[^\\\\])K/g,\"$1\"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],\"g\"),o[A])).replace(new RegExp(n[0],\"g\"),n[A])).replace(new RegExp(s[0],\"g\"),s[c])).replace(new RegExp(r[0],\"g\"),r[c])).replace(/\\\\(.)/g,\"$1\")}},{key:\"getTimeUnitsfromTimestamp\",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,\"yyyy MM dd HH mm ss fff\").split(\" \"),n=this.formatDate(r,\"yyyy MM dd HH mm ss fff\").split(\" \");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:\"isLeapYear\",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:\"calculcateLastDaysOfMonth\",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:\"determineDaysOfYear\",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:\"determineRemainingDaysOfYear\",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:\"determineDaysOfMonths\",value:function(t,e){var i=30;switch(t=m.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),P=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat=\"dd MMM\"}return s(t,[{key:\"xLabelFormat\",value:function(t,e,i,a){var s=this.w;if(\"datetime\"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new L(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:\"defaultGeneralFormatter\",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:\"defaultYFormatter\",value:function(t,e,i){var a=this.w;if(m.isNumber(t))if(0!==a.globals.yValueDecimal)t=t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal);else{var s=t.toFixed(0);t=t==s?s:t.toFixed(1)}return t}},{key:\"setLabelFormatters\",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(m.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&\"numeric\"===e.config.xaxis.type){if(m.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},\"function\"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,\"function\"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:\"heatmapLabelFormatters\",value:function(){var t=this.w;if(\"heatmap\"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),M=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"getLabel\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"12px\",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?\"\":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new P(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new L(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new L(this.ctx).formatDate,w:n})));var p,x;e.length>0?(p=e[a].unit,x=null,e.forEach((function(t){\"month\"===t.unit?x=\"year\":\"day\"===t.unit?x=\"month\":\"hour\"===t.unit?x=\"day\":\"minute\"===t.unit&&(x=\"hour\")})),g=x===p,i=e[a].position,h=e[a].value):\"datetime\"===n.config.xaxis.type&&void 0===d&&(h=\"\"),void 0===h&&(h=\"\"),h=Array.isArray(h)?h:h.toString();var b=new k(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,\"rotate(\".concat(n.config.xaxis.labels.rotate,\" 0 0)\"),!1):b.getTextRects(h,parseInt(r,10));var m=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(\"NaN\"===String(h)||s.indexOf(h)>=0&&m)&&(h=\"\"),{x:i,text:h,textRect:v,isBold:g}}},{key:\"checkLabelBasedOnTickamount\",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return\"dataPoints\"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=\"\"),e}},{key:\"checkForOverflowingLabels\",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=\"\"),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=\"\"),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.xa.length||a.some((function(t){return Array.isArray(t.seriesName)}))?t:i.seriesYAxisReverseMap[t]}},{key:\"isYAxisHidden\",value:function(t){var e=this.w,i=e.config.yaxis[t];if(!i.show||this.yAxisAllSeriesCollapsed(t))return!0;if(!i.showForNullSeries){var a=e.globals.seriesYAxisMap[t],s=new A(this.ctx);return a.every((function(t){return s.isSeriesNull(t)}))}return!1}},{key:\"getYAxisForeColor\",value:function(t,e){var i=this.w;return Array.isArray(t)&&i.globals.yAxisScale[e]&&this.ctx.theme.pushExtraColors(t,i.globals.yAxisScale[e].result.length,!1),t}},{key:\"drawYAxisTicks\",value:function(t,e,i,a,s,r,o){var n=this.w,l=new k(this.ctx),h=n.globals.translateY+n.config.yaxis[s].labels.offsetY;if(n.globals.isBarHorizontal?h=0:\"heatmap\"===n.config.chart.type&&(h+=r/2),a.show&&e>0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=l.drawLine(t+i.offsetX-a.width+a.offsetX,h+a.offsetY,t+i.offsetX+a.offsetX,h+a.offsetY,a.color);o.add(d),h+=r}}}}]),t}(),I=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new S(this.annoCtx),this.axesUtils=new M(this.annoCtx)}return s(t,[{key:\"addYaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,o=this.helpers.getY1Y2(\"y1\",t),n=o.yP,l=o.clipped,h=!0,c=!1,d=t.label.text;if(null===t.y2||void 0===t.y2){if(!l){c=!0;var g=this.annoCtx.graphics.drawLine(0+t.offsetX,n+t.offsetY,this._getYAxisAnnotationWidth(t),n+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(g.node),t.id&&g.node.classList.add(t.id)}}else{if(a=(o=this.helpers.getY1Y2(\"y2\",t)).yP,h=o.clipped,a>n){var u=n;n=a,a=u}if(!l||!h){c=!0;var f=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),n-a,0,t.fillColor,t.opacity,1,t.borderColor,r);f.node.classList.add(\"apexcharts-annotation-rect\"),f.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(f.node),t.id&&f.node.classList.add(t.id)}}if(c){var p=\"right\"===t.label.position?s.globals.gridWidth:\"center\"===t.label.position?s.globals.gridWidth/2:0,x=this.annoCtx.graphics.drawText({x:p+t.label.offsetX,y:(null!=a?a:n)+t.label.offsetY-3,text:d,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});x.attr({rel:i}),e.appendChild(x.node)}}},{key:\"_getYAxisAnnotationWidth\",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf(\"%\")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:\"drawYAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-yaxis-annotations\"});return e.config.annotations.yaxis.forEach((function(e,a){e.yAxisIndex=t.axesUtils.translateYAxisIndex(e.yAxisIndex),t.axesUtils.isYAxisHidden(e.yAxisIndex)&&t.axesUtils.yAxisAllSeriesCollapsed(e.yAxisIndex)||t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),T=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new S(this.annoCtx)}return s(t,[{key:\"addPointAnnotation\",value:function(t,e,i){if(!(this.w.globals.collapsedSeriesIndices.indexOf(t.seriesIndex)>-1)){var a=this.helpers.getX1X2(\"x1\",t),s=a.x,r=a.clipped,o=(a=this.helpers.getY1Y2(\"y1\",t)).yP,n=a.clipped;if(m.isNumber(s)&&!n&&!r){var l={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:\"apexcharts-point-annotation-marker \".concat(t.marker.cssClass,\" \").concat(t.id?t.id:\"\")},h=this.annoCtx.graphics.drawMarker(s+t.marker.offsetX,o+t.marker.offsetY,l);e.appendChild(h.node);var c=t.label.text?t.label.text:\"\",d=this.annoCtx.graphics.drawText({x:s+t.label.offsetX,y:o+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:c,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-point-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});if(d.attr({rel:i}),e.appendChild(d.node),t.customSVG.SVG){var g=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations-custom-svg \"+t.customSVG.cssClass});g.attr({transform:\"translate(\".concat(s+t.customSVG.offsetX,\", \").concat(o+t.customSVG.offsetY,\")\")}),g.node.innerHTML=t.customSVG.SVG,e.appendChild(g.node)}if(t.image.path){var u=t.image.width?t.image.width:20,f=t.image.height?t.image.height:20;h=this.annoCtx.addImage({x:s+t.image.offsetX-u/2,y:o+t.image.offsetY-f/2,width:u,height:f,path:t.image.path,appendTo:\".apexcharts-point-annotations\"})}t.mouseEnter&&h.node.addEventListener(\"mouseenter\",t.mouseEnter.bind(this,t)),t.mouseLeave&&h.node.addEventListener(\"mouseleave\",t.mouseLeave.bind(this,t)),t.click&&h.node.addEventListener(\"click\",t.click.bind(this,t))}}}},{key:\"drawPointAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations\"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var z={name:\"en\",options:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],toolbar:{exportToSVG:\"Download SVG\",exportToPNG:\"Download PNG\",exportToCSV:\"Download CSV\",menu:\"Menu\",selection:\"Selection\",selectionZoom:\"Selection Zoom\",zoomIn:\"Zoom In\",zoomOut:\"Zoom Out\",pan:\"Panning\",reset:\"Reset Zoom\"}}},X=function(){function t(){i(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,stepSize:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,showDuplicates:!1,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:\"11px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},formatter:void 0},axisBorder:{show:!1,color:\"#e0e0e0\",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:\"#e0e0e0\",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:\"11px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:\"front\",stroke:{color:\"#b6b6b6\",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:void 0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:\"#fff\",strokeWidth:2,strokeColor:\"#333\",shape:\"circle\",offsetX:0,offsetY:0,cssClass:\"\"},label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:\"100%\",yAxisIndex:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"end\",position:\"right\",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",orientation:\"vertical\",position:\"top\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:\"\",textAnchor:\"start\",foreColor:void 0,fontSize:\"13px\",fontFamily:void 0,fontWeight:400,appendTo:\".apexcharts-annotations\",backgroundColor:\"transparent\",borderColor:\"#c2c2c2\",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return s(t,[{key:\"init\",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:\"easeinout\",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:\"\",locales:[z],defaultLocale:\"en\",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:\"#000\",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:\"#373d3f\",fontFamily:\"Helvetica, Arial, sans-serif\",height:\"auto\",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,nonce:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:\"x\",fill:{color:\"#24292e\",opacity:.1},stroke:{width:1,color:\"#24292e\",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackOnlyBar:!0,stackType:\"normal\",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:\",\",headerCategory:\"category\",headerValue:\"value\",categoryFormatter:void 0,valueFormatter:void 0},png:{filename:void 0},svg:{filename:void 0},scale:void 0,width:void 0},autoSelected:\"zoom\"},type:\"line\",width:\"100%\",zoom:{enabled:!0,type:\"x\",autoScaleYaxis:!1,allowMouseWheelZoom:!0,zoomedArea:{fill:{color:\"#90CAF9\",opacity:.4},stroke:{color:\"#0D47A1\",opacity:.4,width:1}}}},plotOptions:{line:{isSlopeChart:!1},area:{fillTo:\"origin\"},bar:{horizontal:!1,columnWidth:\"70%\",barHeight:\"70%\",distributed:!1,borderRadius:0,borderRadiusApplication:\"around\",borderRadiusWhenStacked:\"last\",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:\"top\",maxItems:100,hideOverflowingLabels:!0,orientation:\"horizontal\",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:\"#373d3f\",fontSize:\"12px\",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:\"#00B746\",downward:\"#EF403C\"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:\"#00E396\",lower:\"#008FFB\"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,borderRadius:4,dataLabels:{format:\"scale\"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:\"50%\",background:\"transparent\",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:\"front\",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:\"#f2f2f2\",strokeWidth:\"97%\",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:\"14px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+\"%\"}},total:{show:!1,label:\"Total\",fontSize:\"16px\",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+\"%\"}}},barLabels:{enabled:!1,offsetX:0,offsetY:0,useSeriesColors:!0,fontFamily:void 0,fontWeight:600,fontSize:\"16px\",formatter:function(t){return t},onClick:void 0}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:\"65%\",background:\"transparent\",labels:{show:!1,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:\"20px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:\"Total\",fontSize:\"16px\",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:\"#e8e8e8\"},spokes:{strokeWidth:1,connectorColors:\"#e8e8e8\"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:\"#e8e8e8\",connectorColors:\"#e8e8e8\",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:\"\"},textAnchor:\"middle\",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:\"12px\",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:\"#fff\",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:\"#fff\",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:\"squares\",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:\"#e0e0e0\",strokeDashArray:0,position:\"back\",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:\"bottom\",horizontalAlign:\"center\",inverseOrder:!1,fontSize:\"12px\",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{size:7,fillColors:void 0,strokeWidth:1,shape:void 0,offsetX:0,offsetY:0,customHTML:void 0,onClick:void 0},itemMargin:{horizontal:5,vertical:4},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:\"#fff\",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:\"circle\",offsetX:0,offsetY:0,showNullDataPoints:!0,onClick:void 0,onDblClick:void 0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:\"center\",verticalAlign:\"middle\",offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"14px\",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:\"none\",value:0}},hover:{filter:{type:\"lighten\",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:\"darken\",value:.5}}},title:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:\"14px\",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:\"12px\",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:\"smooth\",lineCap:\"butt\",width:2,colors:void 0,dashArray:0,fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,hideEmptySeries:!1,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:\"light\",cssClass:\"\",style:{fontSize:\"12px\",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:\"dd MMM\",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+\": \":\"\"}}},z:{formatter:void 0,title:\"Size: \"},marker:{show:!0,fillColors:void 0},items:{display:\"flex\"},fixed:{enabled:!1,position:\"topRight\",offsetX:0,offsetY:0}},xaxis:{type:\"category\",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:\"yyyy\",month:\"MMM 'yy\",day:\"dd MMM\",hour:\"HH:mm\",minute:\"HH:mm:ss\",second:\"HH:mm:ss\"}},group:{groups:[],style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"}},axisBorder:{show:!0,color:\"#e0e0e0\",width:\"100%\",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:\"#e0e0e0\",height:6,offsetX:0,offsetY:0},stepSize:void 0,tickAmount:void 0,tickPlacement:\"on\",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:\"bottom\",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"12px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},crosshairs:{show:!0,width:1,position:\"back\",opacity:.9,stroke:{color:\"#b6b6b6\",width:1,dashArray:3},fill:{type:\"solid\",color:\"#B1B9C4\",gradient:{colorFrom:\"#D8E3F0\",colorTo:\"#BED1E6\",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:\"12px\",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:\"\",palette:\"palette1\",monochrome:{enabled:!1,color:\"#008FFB\",shadeTo:\"light\",shadeIntensity:.65}}}}}]),t}(),E=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.graphics=new k(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new S(this),this.xAxisAnnotations=new C(this),this.yAxisAnnotations=new I(this),this.pointsAnnotations=new T(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return s(t,[{key:\"drawAxesAnnotations\",value:function(){var t=this.w;if(t.globals.axisCharts&&t.globals.dataPoints){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||\"scatter\"!==t.config.chart.type&&\"bubble\"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add(\"apexcharts-element-hidden\"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:\"drawImageAnnos\",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:\"drawTextAnnos\",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:\"addXaxisAnnotation\",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:\"addYaxisAnnotation\",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:\"addPointAnnotation\",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:\"addText\",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?\".apexcharts-svg\":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||\"start\",fontSize:n||\"12px\",fontWeight:h||\"regular\",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),M=L.globals.dom.baseEl.querySelector(b);M&&M.appendChild(P.node);var I=P.bbox();if(s){var T=this.graphics.drawRect(I.x-m,I.y-C,I.width+m+w,I.height+A+C,f,d||\"transparent\",1,g,p,u);M.insertBefore(T.node,P.node)}}},{key:\"addImage\",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?\".apexcharts-svg\":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);return p&&p.appendChild(f.node),f}},{key:\"addXaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"xaxis\",contextMethod:i.addXaxisAnnotation}),i}},{key:\"addYaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"yaxis\",contextMethod:i.addYaxisAnnotation}),i}},{key:\"addPointAnnotationExternal\",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"point\",contextMethod:i.addPointAnnotation}),i}},{key:\"addAnnotationExternal\",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations\")),h=l.childNodes.length+1,c=new X,d=Object.assign({},\"xaxis\"===s?c.xAxisAnnotation:\"yaxis\"===s?c.yAxisAnnotation:c.pointAnnotation),g=m.extend(d,e);switch(s){case\"xaxis\":this.addXaxisAnnotation(g,l,h);break;case\"yaxis\":this.addYaxisAnnotation(g,l,h);break;case\"point\":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(h,\"']\")),f=this.helpers.addBackgroundToAnno(u,g);return f&&l.insertBefore(f.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:m.randomId(),method:r,label:\"addAnnotation\",params:e}),a}},{key:\"clearAnnotations\",value:function(t){for(var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\"),a=e.globals.memory.methodsToExec.length-1;a>=0;a--)\"addText\"!==e.globals.memory.methodsToExec[a].label&&\"addAnnotation\"!==e.globals.memory.methodsToExec[a].label||e.globals.memory.methodsToExec.splice(a,1);i=m.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:\"removeAnnotation\",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),Y=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:\"\",u=l.globals.ttKeyFormatter,f=l.config.tooltip.y.title.formatter,p={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};(\"function\"==typeof f&&(g=f(g,p)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||\"datetime\"===l.config.xaxis.type&&(d=new P(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new L(a).formatDate,w:l}));\"function\"==typeof u&&(d=u(d,p)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x=\"\",b=\"\",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if(\"datetime\"===l.config.xaxis.type){var m=new L(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},R=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='\\n '.concat(s,'\\n - \\n ').concat(r,\"\\n \");return'
'+(i||\"\")+'
'+a+\": \"+(t.w.globals.comboCharts?\"rangeArea\"===t.w.config.series[o].type||\"rangeBar\"===t.w.config.series[o].type?c:\"\".concat(h,\"\"):c)+\"
\"},F=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:\"hideYAxis\",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text=\"\",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:\"line\",value:function(){return{chart:{animations:{easing:\"swing\"}},dataLabels:{enabled:!1},stroke:{width:5,curve:\"straight\"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:\"sparkline\",value:function(t){this.hideYAxis();return m.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:\"slope\",value:function(){return this.hideYAxis(),{chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!0,formatter:function(t,e){var i=e.w.config.series[e.seriesIndex].name;return null!==t?i+\": \"+t:\"\"},background:{enabled:!1},offsetX:-5},grid:{xaxis:{lines:{show:!0}},yaxis:{lines:{show:!1}}},xaxis:{position:\"top\",labels:{style:{fontSize:14,fontWeight:900}},tooltip:{enabled:!1},crosshairs:{show:!1}},markers:{size:8,hover:{sizeOffset:1}},legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!0},stroke:{width:5,curve:\"straight\"}}}},{key:\"bar\",value:function(){return{chart:{stacked:!1,animations:{easing:\"swing\"}},plotOptions:{bar:{dataLabels:{position:\"center\"}}},dataLabels:{style:{colors:[\"#fff\"]},background:{enabled:!1}},stroke:{width:0,lineCap:\"round\"},fill:{opacity:.85},legend:{markers:{shape:\"square\"}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:\"between\",crosshairs:{width:\"barWidth\",position:\"back\",fill:{type:\"gradient\"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:\"funnel\",value:function(){return this.hideYAxis(),g(g({},this.bar()),{},{chart:{animations:{easing:\"linear\",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:\"around\",borderRadius:0,dataLabels:{position:\"center\"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:\"candlestick\",value:function(){var t=this;return{stroke:{width:1,colors:[\"#333\"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Open\",\"High\",\"\",\"Low\",\"Close\"],\"candlestick\")}},states:{active:{filter:{type:\"none\"}}},xaxis:{crosshairs:{width:1}}}}},{key:\"boxPlot\",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:[\"#24292e\"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Minimum\",\"Q1\",\"Median\",\"Q3\",\"Maximum\"],\"boxPlot\")}},markers:{size:7,strokeWidth:1,strokeColors:\"#111\"},xaxis:{crosshairs:{width:1}}}}},{key:\"rangeBar\",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:\"square\"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:\"center\"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?\"rangeBar\"===s.config.series[i].type||\"rangeArea\"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:[\"#fff\"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=Y(g(g({},t),{},{isTimeline:!0})),i=e.color,a=e.seriesName,s=e.ylabel,r=e.startVal,o=e.endVal;return R(g(g({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t):function(t){var e=Y(t),i=e.color,a=e.seriesName,s=e.ylabel,r=e.start,o=e.end;return R(g(g({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t)}},xaxis:{tickPlacement:\"between\",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:\"dumbbell\",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:\"area\",value:function(){return{stroke:{width:4,fill:{type:\"solid\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:\"gradient\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:\"rangeArea\",value:function(){return{stroke:{curve:\"straight\",width:0},fill:{type:\"solid\",opacity:.6},markers:{size:0},states:{hover:{filter:{type:\"none\"}},active:{filter:{type:\"none\"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var e=Y(t),i=e.color,a=e.seriesName,s=e.ylabel,r=e.start,o=e.end;return R(g(g({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t)}}}}},{key:\"brush\",value:function(t){return m.extend(t,{chart:{toolbar:{autoSelected:\"selection\",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:\"stacked100\",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),\"bar\"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return\"number\"==typeof t&&t?t.toFixed(0)+\"%\":t}),t}},{key:\"stackedBars\",value:function(){var t=this.bar();return g(g({},t),{},{plotOptions:g(g({},t.plotOptions),{},{bar:g(g({},t.plotOptions.bar),{},{borderRadiusApplication:\"end\",borderRadiusWhenStacked:\"last\"})})})}},{key:\"convertCatToNumeric\",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:\"convertCatToNumericXaxis\",value:function(t,e,i){t.xaxis.type=\"numeric\",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return m.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return m.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||\"dataPoints\",t}},{key:\"bubble\",value:function(){return{dataLabels:{style:{colors:[\"#fff\"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:\"solid\",gradient:{shade:\"light\",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:\"scatter\",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:\"heatmap\",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:[\"#fff\"]}},stroke:{colors:[\"#fff\"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:\"top\",markers:{shape:\"square\"}},grid:{padding:{right:20}}}}},{key:\"treemap\",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:[\"#fff\"]}},stroke:{show:!0,width:2,colors:[\"#fff\"]},legend:{show:!1},fill:{opacity:1,gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:\"pie\",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",stops:[0,100]}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:\"donut\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:\"polarArea\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:\"radar\",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:\"11px\"}},stroke:{width:2},markers:{size:5,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},xaxis:{labels:{formatter:function(t){return t},style:{colors:[\"#a8a8a8\"],fontSize:\"11px\"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:\"radialBar\",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:\"dark\",shadeIntensity:.4,inverseColors:!1,type:\"diagonal2\",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:\"right\"},tooltip:{enabled:!1,fillSeriesColor:!0},grid:{padding:{left:0,right:0,top:0,bottom:0}}}}},{key:\"_getBoxTooltip\",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
\\n '.concat(t.config.series[e].name?t.config.series[e].name:\"series-\"+(e+1),\": \").concat(t.globals.series[e][i],\"\\n
\"):'
')+\"
\".concat(a[0],': ')+r+\"
\"+\"
\".concat(a[1],': ')+o+\"
\"+(n?\"
\".concat(a[2],': ')+n+\"
\":\"\")+\"
\".concat(a[3],': ')+l+\"
\"+\"
\".concat(a[4],': ')+h+\"
\"}}]),t}(),D=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:\"init\",value:function(t){var e=t.responsiveOverride,i=this.opts,a=new X,s=new F(i);this.chartType=i.chart.type,i=this.extendYAxis(i),i=this.extendAnnotations(i);var r=a.init(),o={};if(i&&\"object\"===b(i)){var n,l,h,c,d,g,u,f,p,x,v={};v=-1!==[\"line\",\"area\",\"bar\",\"candlestick\",\"boxPlot\",\"rangeBar\",\"rangeArea\",\"bubble\",\"scatter\",\"heatmap\",\"treemap\",\"pie\",\"polarArea\",\"donut\",\"radar\",\"radialBar\"].indexOf(i.chart.type)?s[i.chart.type]():s.line(),null!==(n=i.plotOptions)&&void 0!==n&&null!==(l=n.bar)&&void 0!==l&&l.isFunnel&&(v=s.funnel()),i.chart.stacked&&\"bar\"===i.chart.type&&(v=s.stackedBars()),null!==(h=i.chart.brush)&&void 0!==h&&h.enabled&&(v=s.brush(v)),null!==(c=i.plotOptions)&&void 0!==c&&null!==(d=c.line)&&void 0!==d&&d.isSlopeChart&&(v=s.slope()),i.chart.stacked&&\"100%\"===i.chart.stackType&&(i=s.stacked100(i)),null!==(g=i.plotOptions)&&void 0!==g&&null!==(u=g.bar)&&void 0!==u&&u.isDumbbell&&(i=s.dumbbell(i)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(i),i.xaxis=i.xaxis||window.Apex.xaxis||{},e||(i.xaxis.convertedCatToNumeric=!1),(null!==(f=(i=this.checkForCatToNumericXAxis(this.chartType,v,i)).chart.sparkline)&&void 0!==f&&f.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(x=p.sparkline)&&void 0!==x&&x.enabled)&&(v=s.sparkline(v)),o=m.extend(r,v)}var y=m.extend(o,window.Apex);return r=m.extend(y,i),r=this.handleUserInputErrors(r)}},{key:\"checkForCatToNumericXAxis\",value:function(t,e,i){var a,s,r=new F(i),o=(\"bar\"===t||\"boxPlot\"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n=\"pie\"===t||\"polarArea\"===t||\"donut\"===t||\"radar\"===t||\"radialBar\"===t||\"heatmap\"===t,l=\"datetime\"!==i.xaxis.type&&\"numeric\"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||\"between\"===h||(i=r.convertCatToNumeric(i)),i}},{key:\"extendYAxis\",value:function(t,e){var i=new X;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=m.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[m.extend(i.yAxis,t.yaxis)]:t.yaxis=m.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name=\"series-\".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=m.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes\"),t}},{key:\"extendAnnotations\",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:\"extendYAxisAnnotations\",value:function(t){var e=new X;return t.annotations.yaxis=m.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:\"extendXAxisAnnotations\",value:function(t){var e=new X;return t.annotations.xaxis=m.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:\"extendPointAnnotations\",value:function(t){var e=new X;return t.annotations.points=m.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:\"checkForDarkTheme\",value:function(t){t.theme&&\"dark\"===t.theme.mode&&(t.tooltip||(t.tooltip={}),\"light\"!==t.tooltip.theme&&(t.tooltip.theme=\"dark\"),t.chart.foreColor||(t.chart.foreColor=\"#f6f7f8\"),t.theme.palette||(t.theme.palette=\"palette4\"))}},{key:\"handleUserInputErrors\",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");if(\"bar\"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return\"bar\"!==e.chart.type&&\"rangeBar\"!==e.chart.type||e.tooltip.shared&&\"barWidth\"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width=\"tickWidth\"),\"candlestick\"!==e.chart.type&&\"boxPlot\"!==e.chart.type||e.yaxis[0].reversed&&(console.warn(\"Reversed y-axis in \".concat(e.chart.type,\" chart is not supported.\")),e.yaxis[0].reversed=!1),e}}]),t}(),H=function(){function t(){i(this,t)}return s(t,[{key:\"initGlobalVars\",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.barGroups=[],t.lineGroups=[],t.areaGroups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.lastWheelExecution=0,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0,t.multiAxisTickAmount=0}},{key:\"globalVars\",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:\"ontouchstart\"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],invalidLogScale:!1,ignoreYAxisIndexes:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:\"zoom\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:\"pan\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:\"selection\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:\"http://www.w3.org/2000/svg\",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,isSlopeChart:t.plotOptions.line.isSlopeChart,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null,niceScaleAllowedMagMsd:[[1,1,2,5,5,5,10,10,10,10,10],[1,1,2,5,5,5,10,10,10,10,10]],niceScaleDefaultTicks:[1,2,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,12,12,12,12,12,12,12,12,24],seriesYAxisMap:[],seriesYAxisReverseMap:[]}}},{key:\"init\",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=m.extend({},t),e.initialSeries=m.clone(t.series),e.lastXAxis=m.clone(e.initialConfig.xaxis),e.lastYAxis=m.clone(e.initialConfig.yaxis),e}}]),t}(),O=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:\"init\",value:function(){var t=new D(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new H).init(t)}}}]),t}(),N=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0,this.patternIDs=[]}return s(t,[{key:\"clippedImgArea\",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,\"pattern\");k.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:\"userSpaceOnUse\",width:n+\"px\",height:l+\"px\"});var c=document.createElementNS(e.globals.SVGNS,\"image\");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,\"href\",o),k.setAttrs(c,{x:0,y:0,preserveAspectRatio:\"none\",width:n+\"px\",height:l+\"px\"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:\"getSeriesIndex\",value:function(t){var e=this.w,i=e.config.chart.type;return(\"bar\"===i||\"rangeBar\"===i)&&e.config.plotOptions.bar.distributed||\"heatmap\"===i||\"treemap\"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:\"fillPath\",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),\"function\"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color),o||(o=\"#fff\",console.warn(\"undefined color - ApexCharts\"));var h=o;if(-1===o.indexOf(\"rgb\")?o.length<9&&(h=m.hexToRgba(o,l)):o.indexOf(\"rgba\")>-1&&(l=m.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),\"pattern\"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),\"gradient\"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),\"image\"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:\"\",g=\"pattern\".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d);-1===this.patternIDs.indexOf(g)&&(this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(u=m.getOpacityFromRGBA(d));var f=void 0===r.gradient.opacityTo?i:Array.isArray(r.gradient.opacityTo)?r.gradient.opacityTo[s]:r.gradient.opacityTo;if(void 0===r.gradient.gradientToColors||0===r.gradient.gradientToColors.length)o=\"dark\"===r.gradient.shade?h.shadeColor(-1*parseFloat(r.gradient.shadeIntensity),e.indexOf(\"rgb\")>-1?m.rgb2hex(e):e):h.shadeColor(parseFloat(r.gradient.shadeIntensity),e.indexOf(\"rgb\")>-1?m.rgb2hex(e):e);else if(r.gradient.gradientToColors[n.seriesNumber]){var p=r.gradient.gradientToColors[n.seriesNumber];o=p,p.indexOf(\"rgba\")>-1&&(f=m.getOpacityFromRGBA(p))}else o=e;if(r.gradient.gradientFrom&&(d=r.gradient.gradientFrom),r.gradient.gradientTo&&(o=r.gradient.gradientTo),r.gradient.inverseColors){var x=d;d=o,o=x}return d.indexOf(\"rgb\")>-1&&(d=m.rgb2hex(d)),o.indexOf(\"rgb\")>-1&&(o=m.rgb2hex(o)),l.drawGradient(c,d,o,u,f,n.size,r.gradient.stops,r.gradient.colorStops,s)}}]),t}(),W=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"setGlobalMarkerSize\",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new k(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?\"\":\"apexcharts-series-markers\"})).attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(o.globals.cuid,\")\")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0)||r||d){m.isNumber(l.y[g])?f+=\" w\".concat(m.randomId()):f=\"apexcharts-nullpoint\";var p=this.getMarkerConfig({cssClass:f,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(p.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(p.pointStrokeColor=o.config.series[n].data[u].strokeColor)),void 0!==a&&(p.pSize=a),(l.x[g]<-o.globals.markers.largestSize||l.x[g]>o.globals.gridWidth+o.globals.markers.largestSize||l.y[g]<-o.globals.markers.largestSize||l.y[g]>o.globals.gridHeight+o.globals.markers.largestSize)&&(p.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],p)).attr(\"rel\",u),s.attr(\"j\",u),s.attr(\"index\",e),s.node.setAttribute(\"default-marker-size\",p.pSize),new w(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:\"getMarkerConfig\",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.radius,o=void 0===r?null:r,n=t.size,l=void 0===n?null:n,h=t.strokeWidth,c=void 0===h?null:h,d=this.w,g=this.getMarkerStyle(i),u=null===l?d.globals.markers.size[i]:l,f=d.config.markers;return null!==s&&f.discrete.length&&f.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(g.pointStrokeColor=t.strokeColor,g.pointFillColor=t.fillColor,u=t.size,g.pointShape=t.shape)})),{pSize:null===o?u:o,pRadius:null!==o?o:f.radius,pointStrokeWidth:null!==c?c:Array.isArray(f.strokeWidth)?f.strokeWidth[i]:f.strokeWidth,pointStrokeColor:g.pointStrokeColor,pointFillColor:g.pointFillColor,shape:g.pointShape||(Array.isArray(f.shape)?f.shape[i]:f.shape),class:e,pointStrokeOpacity:Array.isArray(f.strokeOpacity)?f.strokeOpacity[i]:f.strokeOpacity,pointStrokeDashArray:Array.isArray(f.strokeDashArray)?f.strokeDashArray[i]:f.strokeDashArray,pointFillOpacity:Array.isArray(f.fillOpacity)?f.fillOpacity[i]:f.fillOpacity,seriesIndex:i}}},{key:\"addEvents\",value:function(t){var e=this.w,i=new k(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener(\"click\",e.config.markers.onClick),t.node.addEventListener(\"dblclick\",e.config.markers.onDblClick),t.node.addEventListener(\"touchstart\",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:\"getMarkerStyle\",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),B=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled}return s(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new k(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:\"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)});if(h.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(a.globals.cuid,\")\")),Array.isArray(o.x))for(var c=0;cf.maxBubbleRadius&&(u=f.maxBubbleRadius)}var p=o.x[c],x=o.y[c];if(u=u||0,null!==x&&void 0!==a.globals.series[r][d]||(g=!1),g){var b=this.drawPoint(p,x,u,r,d,e);h.add(b)}l.add(h)}}},{key:\"drawPoint\",value:function(t,e,i,a,s,r){var o=this.w,n=a,l=new y(this.ctx),h=new w(this.ctx),c=new N(this.ctx),d=new W(this.ctx),g=new k(this.ctx),u=d.getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:n,dataPointIndex:s,radius:\"bubble\"===o.config.chart.type||o.globals.comboCharts&&o.config.series[a]&&\"bubble\"===o.config.series[a].type?i:null}),f=c.fillPath({seriesNumber:a,dataPointIndex:s,color:u.pointFillColor,patternUnits:\"objectBoundingBox\",value:o.globals.series[a][r]}),p=g.drawMarker(t,e,u);if(o.config.series[n].data[s]&&o.config.series[n].data[s].fillColor&&(f=o.config.series[n].data[s].fillColor),p.attr({fill:f}),o.config.chart.dropShadow.enabled){var x=o.config.chart.dropShadow;h.dropShadow(p,x,a)}if(!this.initialAnim||o.globals.dataChanged||o.globals.resized)o.globals.animationEnded=!0;else{var b=o.config.chart.animations.speed;l.animateMarker(p,b,o.globals.easing,(function(){window.setTimeout((function(){l.animationCompleted(p)}),100)}))}return p.attr({rel:s,j:s,index:a,\"default-marker-size\":u.pSize}),h.setSelectionFilter(p,a,s),d.addEvents(p),p.node.classList.add(\"apexcharts-marker\"),p}},{key:\"centerTextInBubble\",value:function(t){var e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}]),t}(),G=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"dataLabelsCorrection\",value:function(t,e,i,a,s,r,o){var n=this.w,l=!1,h=new k(this.ctx).getTextRects(i,o),c=h.width,d=h.height;e<0&&(e=0),e>n.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width||e>f.y+f.height||e+de.globals.gridWidth+b.textRects.width+30)&&(n=\"\");var v=e.globals.dataLabels.style.colors[r];((\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(v=e.globals.dataLabels.style.colors[o]),\"function\"==typeof v&&(v=v({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(v=g);var m=d.offsetX,y=d.offsetY;if(\"bar\"!==e.config.chart.type&&\"rangeBar\"!==e.config.chart.type||(m=0,y=0),e.globals.isSlopeChart&&(0!==o&&(m=-2*d.offsetX+5),0!==o&&o!==e.config.series[r].data.length-1&&(m=0)),b.drawnextLabel){if((x=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+m,y:s+y,foreColor:v,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||\"normal\"})).attr({class:p||\"apexcharts-datalabel\",cx:a,cy:s}),d.dropShadow.enabled){var A=d.dropShadow;new w(this.ctx).dropShadow(x,A)}c.add(x),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}return x}},{key:\"addBackgroundToDataLabel\",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new k(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,\"transparent\"!==i.config.chart.background&&i.config.chart.background?i.config.chart.background:\"#fff\",a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new w(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:\"dataLabelsBackground\",value:function(){var t=this.w;if(\"bubble\"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"),i=0;i0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=m.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:\"emptyCollapsedSeries\",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:\"highlightSeries\",value:function(t){var e=this.w,i=this.getSeriesByName(t),a=parseInt(null==i?void 0:i.getAttribute(\"data:realIndex\"),10),s=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis\"),r=null,o=null,n=null;if(e.globals.axisCharts||\"radialBar\"===e.config.chart.type)if(e.globals.axisCharts){r=e.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(a,\"']\")),o=e.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(a,\"']\"));var l=e.globals.seriesYAxisReverseMap[a];n=e.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(l,\"']\"))}else r=e.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(a+1,\"']\"));else r=e.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(a+1,\"'] path\"));for(var h=0;h=t.from&&(r0&&void 0!==arguments[0]?arguments[0]:\"asc\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r=\"asc\"===t?0:s.length-1;\"asc\"===t?r=0;\"asc\"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:\"getBarSeriesIndices\",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return\"bar\"===t.type||\"column\"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:\"getPreviousPaths\",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute(\"data:realIndex\")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] rect\")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e(\"x\")),y:parseFloat(e(\"y\")),width:parseFloat(e(\"width\")),height:parseFloat(e(\"height\"))};a.push({rect:s,color:i[t].getAttribute(\"color\")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),_=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new A(this.ctx)}return s(t,[{key:\"isMultiFormat\",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:\"isFormatXY\",value:function(){var t=this.w.config.series.slice(),e=new V(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:\"isFormat2DArray\",value:function(){var t=this.w.config.series.slice(),e=new V(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:\"handleFormat2DArray\",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=\"boxPlot\"===i.chart.type||\"boxPlot\"===i.series[e].type,r=0;r=5?this.twoDSeries.push(m.parseNumber(t[e].data[r][4])):this.twoDSeries.push(m.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),\"datetime\"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new L(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar=\"rangeBar\"===a.chart.type&&s.isBarHorizontal,s.hasXaxisGroups=\"category\"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasXaxisGroups&&(s.groups=a.xaxis.group.groups),t.forEach((function(t,e){void 0!==t.name?s.seriesNames.push(t.name):s.seriesNames.push(\"series-\"+parseInt(e+1,10))})),this.coreUtils.setSeriesYAxisMappings();var n=[],l=p(new Set(a.series.map((function(t){return t.group}))));a.series.forEach((function(t,e){var i=l.indexOf(t.group);n[i]||(n[i]=[]),n[i].push(s.seriesNames[e])})),s.seriesGroups=n;for(var h=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var d=t[c].data.map((function(t){return m.parseNumber(t)}));s.series.push(d)}s.seriesZ.push(this.threeDSeries),void 0!==t[c].color?s.seriesColors.push(t[c].color):s.seriesColors.push(void 0)}return this.w}},{key:\"parseDataNonAxisCharts\",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new F(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:\"_generateExternalLabels\",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&s==i.length&&e.push(a)})),t.globals.ignoreYAxisIndexes=e.map((function(t){return t}))}}]),t}(),U=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"scaleSvgNode\",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,\"width\")),a=parseFloat(t.getAttributeNS(null,\"height\"));t.setAttributeNS(null,\"width\",i*e),t.setAttributeNS(null,\"height\",a*e),t.setAttributeNS(null,\"viewBox\",\"0 0 \"+i+\" \"+a)}},{key:\"getSvgString\",value:function(){var t=this;return new Promise((function(e){var i=t.w,a=i.config.chart.toolbar.export.width,s=i.config.chart.toolbar.export.scale||a/i.globals.svgWidth;s||(s=1);var r=t.w.globals.dom.Paper.svg(),o=t.w.globals.dom.Paper.node.cloneNode(!0);1!==s&&t.scaleSvgNode(o,s),t.convertImagesToBase64(o).then((function(){r=(new XMLSerializer).serializeToString(o),e(r.replace(/ /g,\" \"))}))}))}},{key:\"convertImagesToBase64\",value:function(t){var e=this,i=t.getElementsByTagName(\"image\"),a=Array.from(i).map((function(t){var i=t.getAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\");return i&&!i.startsWith(\"data:\")?e.getBase64FromUrl(i).then((function(e){t.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",e)})).catch((function(t){console.error(\"Error converting image to base64:\",t)})):Promise.resolve()}));return Promise.all(a)}},{key:\"getBase64FromUrl\",value:function(t){return new Promise((function(e,i){var a=new Image;a.crossOrigin=\"Anonymous\",a.onload=function(){var t=document.createElement(\"canvas\");t.width=a.width,t.height=a.height,t.getContext(\"2d\").drawImage(a,0,0),e(t.toDataURL())},a.onerror=i,a.src=t}))}},{key:\"cleanup\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),i=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");Array.prototype.forEach.call(a,(function(t){t.setAttribute(\"width\",0)})),e&&e[0]&&(e[0].setAttribute(\"x\",-500),e[0].setAttribute(\"x1\",-500),e[0].setAttribute(\"x2\",-500)),i&&i[0]&&(i[0].setAttribute(\"y\",-100),i[0].setAttribute(\"y1\",-100),i[0].setAttribute(\"y2\",-100))}},{key:\"svgUrl\",value:function(){var t=this;return new Promise((function(e){t.cleanup(),t.getSvgString().then((function(t){var i=new Blob([t],{type:\"image/svg+xml;charset=utf-8\"});e(URL.createObjectURL(i))}))}))}},{key:\"dataURI\",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement(\"canvas\");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o=\"transparent\"!==a.config.chart.background&&a.config.chart.background?a.config.chart.background:\"#fff\",n=r.getContext(\"2d\");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s),e.getSvgString().then((function(t){var e=\"data:image/svg+xml,\"+encodeURIComponent(t),a=new Image;a.crossOrigin=\"anonymous\",a.onload=function(){if(n.drawImage(a,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL(\"image/png\");i({imgURI:e})}},a.src=e}))}))}},{key:\"exportToSVG\",value:function(){var t=this;this.svgUrl().then((function(e){t.triggerDownload(e,t.w.config.chart.toolbar.export.svg.filename,\".svg\")}))}},{key:\"exportToPng\",value:function(){var t=this,e=this.w.config.chart.toolbar.export.scale,i=this.w.config.chart.toolbar.export.width,a=e?{scale:e}:i?{width:i}:void 0;this.dataURI(a).then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+\".png\"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,\".png\")}))}},{key:\"exportToCSV\",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?\",\":s,o=t.lineDelimiter,n=void 0===o?\"\\n\":o,l=this.w;i||(i=l.config.series);var h,c,d=[],g=[],u=\"\",f=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),x=function(t){return\"function\"==typeof l.config.chart.toolbar.export.csv.categoryFormatter?l.config.chart.toolbar.export.csv.categoryFormatter(t):\"datetime\"===l.config.xaxis.type&&String(t).length>=10?new Date(t).toDateString():m.isNumber(t)?t:t.split(r).join(\"\")},b=function(t){return\"function\"==typeof l.config.chart.toolbar.export.csv.valueFormatter?l.config.chart.toolbar.export.csv.valueFormatter(t):t},v=Math.max.apply(Math,p(i.map((function(t){return t.data?t.data.length:0})))),y=new _(this.ctx),w=new M(this.ctx),k=function(t){var i=\"\";if(l.globals.axisCharts){if(\"category\"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new V(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=w.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;\"datetime\"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return null===i?\"nullvalue\":(Array.isArray(i)&&(i=i.join(\" \")),m.isNumber(i)?i:i.split(r).join(\"\"))},A=function(t,e){if(d.length&&0===e&&g.push(d.join(r)),t.data){t.data=t.data.length&&t.data||p(Array(v)).map((function(){return\"\"}));for(var a=0;a0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],\"top\"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf(\"%\")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return s(t,[{key:\"drawXaxis\",value:function(){var t=this.w,e=new k(this.ctx),i=e.group({class:\"apexcharts-xaxis\",transform:\"translate(\".concat(t.config.xaxis.offsetX,\", \").concat(t.config.xaxis.offsetY,\")\")}),a=e.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(t.globals.translateXAxisX,\", \").concat(t.globals.translateXAxisY,\")\")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m=\"category\"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/Math.min(y,v-1),b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&\"top\"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&\"dataPoints\"!==d.config.xaxis.tickAmount&&\"datetime\"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-(\"top\"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:\"middle\",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?\"apexcharts-xaxis-label \":\"apexcharts-xaxis-group-label \")+x});if(i.add(k),k.on(\"click\",(function(t){if(\"function\"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,\"title\");A.textContent=Array.isArray(y.text)?y.text.join(\" \"):y.text,k.node.appendChild(A),\"\"!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,\"top\"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new k(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add(\"apexcharts-xaxis-tick\")}}}},{key:\"getXAxisTicksPositions\",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=a.globals.timescaleLabels.slice())}return s(t,[{key:\"drawGridArea\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new k(this.ctx);t||(t=i.group({class:\"apexcharts-grid\"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,\"transparent\"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,\"transparent\");return t.add(s),t.add(a),t}},{key:\"drawGrid\",value:function(){if(this.w.globals.axisCharts){var t=this.renderGrid();return this.drawGridArea(t.el),t}return null}},{key:\"createGridMask\",value:function(){var t=this.w,e=t.globals,i=new k(this.ctx),a=Array.isArray(t.config.stroke.width)?Math.max.apply(Math,p(t.config.stroke.width)):t.config.stroke.width,s=function(t){var i=document.createElementNS(e.SVGNS,\"clipPath\");return i.setAttribute(\"id\",t),i};e.dom.elGridRectMask=s(\"gridRectMask\".concat(e.cuid)),e.dom.elGridRectBarMask=s(\"gridRectBarMask\".concat(e.cuid)),e.dom.elGridRectMarkerMask=s(\"gridRectMarkerMask\".concat(e.cuid)),e.dom.elForecastMask=s(\"forecastMask\".concat(e.cuid)),e.dom.elNonForecastMask=s(\"nonForecastMask\".concat(e.cuid));var r=0,o=0;([\"bar\",\"rangeBar\",\"candlestick\",\"boxPlot\"].includes(t.config.chart.type)||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(r=Math.max(t.config.grid.padding.left,e.barPadForNumericAxis),o=Math.max(t.config.grid.padding.right,e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(0,0,e.gridWidth,e.gridHeight,0,\"#fff\"),e.dom.elGridRectBar=i.drawRect(-a/2-r-2,-a/2-2,e.gridWidth+a+o+r+4,e.gridHeight+a+4,0,\"#fff\");var n=t.globals.markers.largestSize;e.dom.elGridRectMarker=i.drawRect(-n,-n,e.gridWidth+2*n,e.gridHeight+2*n,0,\"#fff\"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectBarMask.appendChild(e.dom.elGridRectBar.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var l=e.dom.baseEl.querySelector(\"defs\");l.appendChild(e.dom.elGridRectMask),l.appendChild(e.dom.elGridRectBarMask),l.appendChild(e.dom.elGridRectMarkerMask),l.appendChild(e.dom.elForecastMask),l.appendChild(e.dom.elNonForecastMask)}},{key:\"_drawGridLines\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||\"radar\"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&\"between\"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d0&&\"datetime\"!==t.config.xaxis.type&&(s=e.yAxisScale[a].result.length-1);this._drawXYLines({xCount:s,tickAmount:r})}else s=r,r=e.xTickAmount,this._drawInvertedXYLines({xCount:s,tickAmount:r});return this.drawGridBands(s,r),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:e.gridWidth/s}}},{key:\"drawGridBands\",value:function(t,e){var i,a,s=this,r=this.w;if((null===(i=r.config.grid.row.colors)||void 0===i?void 0:i.length)>0&&function(t,i,a,o,n,l){for(var h=0,c=0;h=r.config.grid[t].colors.length&&(c=0),s._drawGridBandRect({c:c,x1:a,y1:o,x2:n,y2:l,type:t}),o+=r.globals.gridHeight/e}(\"row\",e,0,0,r.globals.gridWidth,r.globals.gridHeight/e),(null===(a=r.config.grid.column.colors)||void 0===a?void 0:a.length)>0){var o=r.globals.isBarHorizontal||\"on\"!==r.config.xaxis.tickPlacement||\"category\"!==r.config.xaxis.type&&!r.config.xaxis.convertedCatToNumeric?t:t-1;r.globals.isXNumeric&&(o=r.globals.xAxisScale.result.length-1);for(var n=r.globals.padHorizontal,l=r.globals.padHorizontal+r.globals.gridWidth/o,h=r.globals.gridHeight,c=0,d=0;c=r.config.grid.column.colors.length&&(d=0),\"datetime\"===r.config.xaxis.type)n=this.xaxisLabels[c].position,l=((null===(g=this.xaxisLabels[c+1])||void 0===g?void 0:g.position)||r.globals.gridWidth)-this.xaxisLabels[c].position;this._drawGridBandRect({c:d,x1:n,y1:0,x2:l,y2:h,type:\"column\"}),n+=r.globals.gridWidth/o}}}}]),t}(),$=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.coreUtils=new A(this.ctx)}return s(t,[{key:\"niceScale\",value:function(t,e){var i,a,s,r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=1e-11,l=this.w,h=l.globals;h.isBarHorizontal?(i=l.config.xaxis,a=Math.max((h.svgWidth-100)/25,2)):(i=l.config.yaxis[o],a=Math.max((h.svgHeight-100)/15,2)),m.isNumber(a)||(a=10),s=void 0!==i.min&&null!==i.min,r=void 0!==i.max&&null!==i.min;var c=void 0!==i.stepSize&&null!==i.stepSize,d=void 0!==i.tickAmount&&null!==i.tickAmount,g=d?i.tickAmount:h.niceScaleDefaultTicks[Math.min(Math.round(a/2),h.niceScaleDefaultTicks.length-1)];if(h.isMultipleYAxis&&!d&&h.multiAxisTickAmount>0&&(g=h.multiAxisTickAmount,d=!0),g=\"dataPoints\"===g?h.dataPoints-1:Math.abs(Math.round(g)),(t===Number.MIN_VALUE&&0===e||!m.isNumber(t)&&!m.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)&&(t=m.isNumber(i.min)?i.min:0,e=m.isNumber(i.max)?i.max:t+g,h.allSeriesCollapsed=!1),t>e){console.warn(\"axis.min cannot be greater than axis.max: swapping min and max\");var u=e;e=t,t=u}else t===e&&(t=0===t?0:t-1,e=0===e?2:e+1);var f=[];g<1&&(g=1);var p=g,x=Math.abs(e-t);!s&&t>0&&t/x<.15&&(t=0,s=!0),!r&&e<0&&-e/x<.15&&(e=0,r=!0);var b=(x=Math.abs(e-t))/p,v=b,y=Math.floor(Math.log10(v)),w=Math.pow(10,y),k=Math.ceil(v/w);if(b=v=(k=h.niceScaleAllowedMagMsd[0===h.yValueDecimal?0:1][k])*w,h.isBarHorizontal&&i.stepSize&&\"datetime\"!==i.type?(b=i.stepSize,c=!0):c&&(b=i.stepSize),c&&i.forceNiceScale){var A=Math.floor(Math.log10(b));b*=Math.pow(10,y-A)}if(s&&r){var S=x/p;if(d)if(c)if(0!=m.mod(x,b)){var C=m.getGCD(b,S);b=S/C<10?C:S}else 0==m.mod(b,S)?b=S:(S=b,d=!1);else b=S;else if(c)0==m.mod(x,b)?S=b:b=S;else if(0==m.mod(x,b))S=b;else{S=x/(p=Math.ceil(x/b));var L=m.getGCD(x,b);x/La&&(t=e-b*g,t+=b*Math.floor((P-t)/b))}else if(s)if(d)e=t+b*p;else{var M=e;e=b*Math.ceil(e/b),Math.abs(e-t)/m.getGCD(x,b)>a&&(e=t+b*g,e+=b*Math.ceil((M-e)/b))}}else if(h.isMultipleYAxis&&d){var I=b*Math.floor(t/b),T=I+b*p;T0&&t16&&m.getPrimeFactors(p).length<2&&p++,!d&&i.forceNiceScale&&0===h.yValueDecimal&&p>x&&(p=x,b=Math.round(x/p)),p>a&&(!d&&!c||i.forceNiceScale)){var z=m.getPrimeFactors(p),X=z.length-1,E=p;t:for(var Y=0;YW);return{result:f,niceMin:f[0],niceMax:f[f.length-1]}}},{key:\"linearScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,r=Math.abs(e-t),o=[];if(t===e)return{result:o=[t],niceMin:o[0],niceMax:o[o.length-1]};\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,r))&&(i=this.w.globals.dataPoints-1),s||(s=r/i),s=Math.round(10*(s+Number.EPSILON))/10,i===Number.MAX_VALUE&&(i=5,s=1);for(var n=t;i>=0;)o.push(n),n=m.preciseAddition(n,s),i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:\"logarithmicScaleNice\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5?(a.allSeriesCollapsed=!1,a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase)):i!==-Number.MAX_VALUE&&m.isNumber(i)&&e!==Number.MAX_VALUE&&m.isNumber(e)?(a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.niceScale(e,i,t)):a.yAxisScale[t]=this.niceScale(Number.MIN_VALUE,0,t)}},{key:\"setXScale\",value:function(t,e){var i=this.w,a=i.globals,s=Math.abs(e-t);if(e!==-Number.MAX_VALUE&&m.isNumber(e)){var r=a.xTickAmount+1;s<10&&s>1&&(r=s),a.xAxisScale=this.linearScale(t,e,r,0,i.config.xaxis.stepSize)}else a.xAxisScale=this.linearScale(0,10,10);return a.xAxisScale}},{key:\"scaleMultipleYAxes\",value:function(){var t=this,e=this.w.config,i=this.w.globals;this.coreUtils.setSeriesYAxisMappings();var a=i.seriesYAxisMap,s=i.minYArr,r=i.maxYArr;i.allSeriesCollapsed=!0,i.barGroups=[],a.forEach((function(a,o){var n=[];a.forEach((function(t){var i=e.series[t].group;n.indexOf(i)<0&&n.push(i)})),a.length>0?function(){var l,h,c=Number.MAX_VALUE,d=-Number.MAX_VALUE,g=c,u=d;if(e.chart.stacked)!function(){var t=new Array(i.dataPoints).fill(0),s=[],r=[],f=[];n.forEach((function(){s.push(t.map((function(){return Number.MIN_VALUE}))),r.push(t.map((function(){return Number.MIN_VALUE}))),f.push(t.map((function(){return Number.MIN_VALUE})))}));for(var p=function(t){!l&&e.series[a[t]].type&&(l=e.series[a[t]].type);var c=a[t];h=e.series[c].group?e.series[c].group:\"axis-\".concat(o),!(i.collapsedSeriesIndices.indexOf(c)<0&&i.ancillaryCollapsedSeriesIndices.indexOf(c)<0)||(i.allSeriesCollapsed=!1,n.forEach((function(t,a){if(e.series[c].group===t)for(var o=0;o=0?r[a][o]+=n:f[a][o]+=n,s[a][o]+=n,g=Math.min(g,n),u=Math.max(u,n)}}))),\"bar\"!==l&&\"column\"!==l||i.barGroups.push(h)},x=0;x1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;\"candlestick\"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):\"boxPlot\"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);var d=!1;if(r.seriesX.length>=a){var g,u=null===(g=r.brushSource)||void 0===g?void 0:g.w.config.chart.brush;(s.chart.zoom.enabled&&s.chart.zoom.autoScaleYaxis||null!=u&&u.enabled&&null!=u&&u.autoScaleYaxis)&&(d=!0)}for(var f=t;fx&&r.seriesX[f][b]>s.xaxis.max;b--);}for(var v=x;v<=b&&vh[f][v]&&h[f][v]<0&&(n=h[f][v])}else r.hasNullValues=!0}\"bar\"!==p&&\"column\"!==p||(n<0&&o<0&&(o=0,i=Math.max(i,0)),n===Number.MIN_VALUE&&(n=0,e=Math.min(e,0)))}return\"rangeBar\"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),\"bar\"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:\"setYRange\",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i,a=Number.MAX_VALUE;if(t.isMultipleYAxis){a=Number.MAX_VALUE;for(var s=0;st.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1);else if(\"dataPoints\"===e.xaxis.tickAmount){if(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric){var s=t.maxX-t.minX;s<30&&(a=s-1)}}else a=e.xaxis.tickAmount;if(t.xTickAmount=a,void 0!==e.xaxis.max&&\"number\"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&\"number\"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var r=[],o=t.minX-1;o0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1,0,e.xaxis.stepSize),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:\"setZRange\",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:\"_setStackedMinMax\",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.globals.seriesNames.map((function(t){return t}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,a){return i.indexOf(e.seriesNames[a])>-1?a:null})).filter((function(t){return null!==t})).forEach((function(r){for(var o=0;o0?a[i][o]+=parseFloat(e.series[r][o])+1e-4:s[i][o]+=parseFloat(e.series[r][o]))}}))})),Object.entries(a).forEach((function(t){var i=f(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),Q=function(){function t(e,a){i(this,t),this.ctx=e,this.elgrid=a,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=\"bottom\"===s.config.xaxis.position?s.globals.gridHeight:0,this.drawnLabels=[],this.axesUtils=new M(e)}return s(t,[{key:\"drawYaxis\",value:function(t){var e=this.w,i=new k(this.ctx),a=e.config.yaxis[t].labels.style,s=a.fontSize,r=a.fontFamily,o=a.fontWeight,n=i.group({class:\"apexcharts-yaxis\",rel:t,transform:\"translate(\".concat(e.globals.translateYAxisX[t],\", 0)\")});if(this.axesUtils.isYAxisHidden(t))return n;var l=i.group({class:\"apexcharts-yaxis-texts-g\"});n.add(l);var h=e.globals.yAxisScale[t].result.length-1,c=e.globals.gridHeight/h,d=e.globals.yLabelFormatters[t],g=this.axesUtils.checkForReversedLabels(t,e.globals.yAxisScale[t].result.slice());if(e.config.yaxis[t].labels.show){var u=e.globals.translateY+e.config.yaxis[t].labels.offsetY;e.globals.isBarHorizontal?u=0:\"heatmap\"===e.config.chart.type&&(u-=c/2),u+=parseInt(s,10)/3;for(var f=h;f>=0;f--){var p=d(g[f],f,e),x=e.config.yaxis[t].labels.padding;e.config.yaxis[t].opposite&&0!==e.config.yaxis.length&&(x*=-1);var b=this.getTextAnchor(e.config.yaxis[t].labels.align,e.config.yaxis[t].opposite),v=this.axesUtils.getYAxisForeColor(a.colors,t),y=Array.isArray(v)?v[f]:v,w=m.listToArray(e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-label tspan\"))).map((function(t){return t.textContent})),A=i.drawText({x:x,y:u,text:w.includes(p)&&!e.config.yaxis[t].labels.showDuplicates?\"\":p,textAnchor:b,fontSize:s,fontFamily:r,fontWeight:o,maxWidth:e.config.yaxis[t].labels.maxWidth,foreColor:y,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \".concat(a.cssClass)});l.add(A),this.addTooltip(A,p),0!==e.config.yaxis[t].labels.rotate&&this.rotateLabel(i,A,firstLabel,e.config.yaxis[t].labels.rotate),u+=c}}return this.addYAxisTitle(i,n,t),this.addAxisBorder(i,n,t,h,c),n}},{key:\"getTextAnchor\",value:function(t,e){return\"left\"===t?\"start\":\"center\"===t?\"middle\":\"right\"===t?\"end\":e?\"start\":\"end\"}},{key:\"addTooltip\",value:function(t,e){var i=document.createElementNS(this.w.globals.SVGNS,\"title\");i.textContent=Array.isArray(e)?e.join(\" \"):e,t.node.appendChild(i)}},{key:\"rotateLabel\",value:function(t,e,i,a){var s=t.rotateAroundCenter(i.node),r=t.rotateAroundCenter(e.node);e.node.setAttribute(\"transform\",\"rotate(\".concat(a,\" \").concat(s.x,\" \").concat(r.y,\")\"))}},{key:\"addYAxisTitle\",value:function(t,e,i){var a=this.w;if(void 0!==a.config.yaxis[i].title.text){var s=t.group({class:\"apexcharts-yaxis-title\"}),r=a.config.yaxis[i].opposite?a.globals.translateYAxisX[i]:0,o=t.drawText({x:r,y:a.globals.gridHeight/2+a.globals.translateY+a.config.yaxis[i].title.offsetY,text:a.config.yaxis[i].title.text,textAnchor:\"end\",foreColor:a.config.yaxis[i].title.style.color,fontSize:a.config.yaxis[i].title.style.fontSize,fontWeight:a.config.yaxis[i].title.style.fontWeight,fontFamily:a.config.yaxis[i].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \".concat(a.config.yaxis[i].title.style.cssClass)});s.add(o),e.add(s)}}},{key:\"addAxisBorder\",value:function(t,e,i,a,s){var r=this.w,o=r.config.yaxis[i].axisBorder,n=31+o.offsetX;if(r.config.yaxis[i].opposite&&(n=-31-o.offsetX),o.show){var l=t.drawLine(n,r.globals.translateY+o.offsetY-2,n,r.globals.gridHeight+r.globals.translateY+o.offsetY+2,o.color,0,o.width);e.add(l)}r.config.yaxis[i].axisTicks.show&&this.axesUtils.drawYAxisTicks(n,a,o,r.config.yaxis[i].axisTicks,i,s,e)}},{key:\"drawYaxisInversed\",value:function(t){var e=this.w,i=new k(this.ctx),a=i.group({class:\"apexcharts-xaxis apexcharts-yaxis-inversed\"}),s=i.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(e.globals.translateXAxisX,\", \").concat(e.globals.translateXAxisY,\")\")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=this.axesUtils.checkForReversedLabels(t,e.globals.yAxisScale[t].result.slice()),c=e.globals.timescaleLabels;if(c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),e.config.xaxis.labels.show)for(var d=c.length?0:r;c.length?d=0;c.length?d++:d--){var g=l(h[d],d,e),u=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,u,d,this.drawnLabels,this.xaxisFontSize);u=f.x,g=f.text,this.drawnLabels.push(f.text),0===d&&e.globals.skipFirstTimelinelabel&&(g=\"\"),d===h.length-1&&e.globals.skipLastTimelinelabel&&(g=\"\")}var p=i.drawText({x:u,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-(\"top\"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:g,textAnchor:\"middle\",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \".concat(e.config.xaxis.labels.style.cssClass)});s.add(p),p.tspan(g),this.addTooltip(p,g),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:\"inversedYAxisBorder\",value:function(t){var e=this.w,i=new k(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;\"bar\"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:\"inversedYAxisTitleText\",value:function(t){var e=this.w,i=new k(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:\"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:\"middle\",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \".concat(e.config.xaxis.title.style.cssClass)});a.add(s),t.add(a)}}},{key:\"yAxisTitleRotate\",value:function(t,e){var i=this.w,a=new k(this.ctx),s=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-texts-g\")),r=s?s.getBoundingClientRect():{width:0,height:0},o=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-title text\")),n=o?o.getBoundingClientRect():{width:0,height:0};if(o){var l=this.xPaddingForYAxisTitle(t,r,n,e);o.setAttribute(\"x\",l.xPos-(e?10:0));var h=a.rotateAroundCenter(o);o.setAttribute(\"transform\",\"rotate(\".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate,\" \").concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"xPaddingForYAxisTitle\",value:function(t,e,i,a){var s=this.w,r=0,o=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:r,padd:0}:(a?r=e.width+s.config.yaxis[t].title.offsetX+i.width/2+o/2:(r=-1*e.width+s.config.yaxis[t].title.offsetX+o/2+i.width/2,s.globals.isBarHorizontal&&(o=25,r=-1*e.width-s.config.yaxis[t].title.offsetX-o)),{xPos:r,padd:o})}},{key:\"setYAxisXPosition\",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.forEach((function(n,l){var h=i.globals.ignoreYAxisIndexes.includes(l)||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o+=c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r+=c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:\"setYAxisTextAlignments\",value:function(){var t=this.w;m.listToArray(t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\")).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-texts-g\")),r=m.listToArray(t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-label\"))),o=s.getBoundingClientRect();r.forEach((function(t){t.setAttribute(\"text-anchor\",a.labels.align)})),\"left\"!==a.labels.align||a.opposite?\"center\"===a.labels.align?s.setAttribute(\"transform\",\"translate(\".concat(o.width/2*(a.opposite?1:-1),\", 0)\")):\"right\"===a.labels.align&&a.opposite&&s.setAttribute(\"transform\",\"translate(\".concat(o.width,\", 0)\")):s.setAttribute(\"transform\",\"translate(-\".concat(o.width,\", 0)\"))}}))}}]),t}(),K=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.documentEvent=m.bind(this.documentEvent,this)}return s(t,[{key:\"addEventListener\",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:\"removeEventListener\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:\"fireEvent\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");var a=m.extend(z,i);this.w.globals.locale=a.options}}]),t}(),et=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"drawAxis\",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new q(this.ctx,e),l=new Q(this.ctx,e);r.axisCharts&&\"radar\"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),\"back\"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),it=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"drawXCrosshairs\",value:function(){var t=this.w,e=new k(this.ctx),i=new w(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,x=s.opacity,b=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){\"gradient\"===r&&(b=e.drawGradient(\"vertical\",o,n,l,h,null,c,null));var v=e.drawRect();1===t.config.xaxis.crosshairs.width&&(v=e.drawLine());var y=t.globals.gridHeight;(!m.isNumber(y)||y<0)&&(y=0);var A=t.config.xaxis.crosshairs.width;(!m.isNumber(A)||A<0)&&(A=0),v.attr({class:\"apexcharts-xcrosshairs\",x:0,y:0,y2:y,width:A,height:y,fill:b,filter:\"none\",\"fill-opacity\":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,\"stroke-width\":t.config.xaxis.crosshairs.stroke.width,\"stroke-dasharray\":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(v=i.dropShadow(v,{left:g,top:u,blur:f,color:p,opacity:x})),t.globals.dom.elGraphical.add(v)}}},{key:\"drawYCrosshairs\",value:function(){var t=this.w,e=new k(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:\"apexcharts-ycrosshairs\"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:\"apexcharts-ycrosshairs-hidden\"}),t.globals.dom.elGraphical.add(r)}}]),t}(),at=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"checkResponsiveConfig\",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new D({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=m.clone(i.globals.initialConfig);n.series=m.clone(i.config.series);var l=A.extendArrayProps(r,n,i);t=m.extend(l,t),t=m.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var h=0;h0&&\"function\"==typeof t[0]?(this.isColorFn=!0,i.config.series.map((function(a,s){var r=t[s]||t[0];return\"function\"==typeof r?r({value:i.globals.axisCharts?i.globals.series[s][0]||0:i.globals.series[s],seriesIndex:s,dataPointIndex:s,w:e.w}):r}))):t:this.predefined()}},{key:\"applySeriesColors\",value:function(t,e){t.forEach((function(t,i){t&&(e[i]=t)}))}},{key:\"getMonochromeColors\",value:function(t,e,i){var a=t.color,s=t.shadeIntensity,r=t.shadeTo,o=this.isBarDistributed||this.isHeatmapDistributed?e[0].length*e.length:e.length,n=1/(o/s),l=0;return Array.from({length:o},(function(){var t=\"dark\"===r?i.shadeColor(-1*l,a):i.shadeColor(l,a);return l+=n,t}))}},{key:\"applyColorTypes\",value:function(t,e){var i=this,a=this.w;t.forEach((function(t){a.globals[t].colors=void 0===a.config[t].colors?i.isColorFn?a.config.colors:e:a.config[t].colors.slice(),i.pushExtraColors(a.globals[t].colors)}))}},{key:\"applyDataLabelsColors\",value:function(t){var e=this.w;e.globals.dataLabels.style.colors=void 0===e.config.dataLabels.style.colors?t:e.config.dataLabels.style.colors.slice(),this.pushExtraColors(e.globals.dataLabels.style.colors,50)}},{key:\"applyRadarPolygonsColors\",value:function(){var t=this.w;t.globals.radarPolygons.fill.colors=void 0===t.config.plotOptions.radar.polygons.fill.colors?[\"dark\"===t.config.theme.mode?\"#424242\":\"none\"]:t.config.plotOptions.radar.polygons.fill.colors.slice(),this.pushExtraColors(t.globals.radarPolygons.fill.colors,20)}},{key:\"applyMarkersColors\",value:function(t){var e=this.w;e.globals.markers.colors=void 0===e.config.markers.colors?t:e.config.markers.colors.slice(),this.pushExtraColors(e.globals.markers.colors)}},{key:\"pushExtraColors\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||\"heatmap\"===a.config.chart.type&&a.config.plotOptions.heatmap&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:\"getDatalabelsRect\",value:function(){var t=this,e=this.w,i=[];e.config.series.forEach((function(s,r){s.data.forEach((function(s,o){var n;n=e.globals.series[r][o],a=e.config.dataLabels.formatter(n,{ctx:t.dCtx.ctx,seriesIndex:r,dataPointIndex:o,w:e}),i.push(a)}))}));var a=m.getLargestStringFromArr(i),s=new k(this.dCtx.ctx),r=e.config.dataLabels.style,o=s.getTextRects(a,parseInt(r.fontSize),r.fontFamily);return{width:1.05*o.width,height:o.height}}},{key:\"getLargestStringFromMultiArr\",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,p(a));i=e[a.indexOf(s)]}return i}}]),t}(),nt=function(){function t(e){i(this,t),this.w=e.w,this.dCtx=e}return s(t,[{key:\"getxAxisLabelsCoords\",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=\"left\"!==e.config.legend.position&&\"right\"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=m.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new P(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new L(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new L(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||\"\"===String(r).trim())&&(o=r=\"1\");var h=new k(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,\"rotate(\".concat(e.config.xaxis.labels.rotate,\" 0 0)\"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:\"getxAxisGroupLabelsCoords\",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=m.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new k(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:\"getxAxisTitleCoords\",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new k(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:\"getxAxisTimeScaleLabelsCoords\",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"),0):t.length>e.length?t:e}),0);return 1.05*(t=new k(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:\"additionalPaddingXLabels\",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c=\"right\"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||\"bar\"!==s.chart.type&&\"candlestick\"!==s.chart.type&&\"rangeBar\"!==s.chart.type&&\"boxPlot\"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else\"datetime\"===r?e.dCtx.gridPad.right(null===(a=String(c(e,n)))||void 0===a?void 0:a.length)?t:e}),d),u=g=c(g,n);if(void 0!==g&&0!==g.length||(g=l.niceMax),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=m.getLargestStringFromArr(f),g=c(g,{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new k(t.dCtx.ctx),x=\"rotate(\".concat(r.labels.rotate,\" 0 0)\"),b=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,x,!1),v=b;g!==u&&(v=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,x,!1)),i.push({width:(h>v.width||h>b.width?h:v.width>b.width?v.width:b.width)+a,height:v.height>b.height?v.height:b.height})}else i.push({width:0,height:0})})),i}},{key:\"getyAxisTitleCoords\",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new k(t.dCtx.ctx),r=\"rotate(\".concat(e.title.rotate,\" 0 0)\"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:\"getTotalYAxisWidth\",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new M(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),ht=function(){function t(e){i(this,t),this.w=e.w,this.dCtx=e}return s(t,[{key:\"gridPadForColumnsInNumericAxis\",value:function(t){var e=this.w,i=e.config,a=e.globals;if(a.noData||a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.series.length)return 0;var s=function(t){return[\"bar\",\"rangeBar\",\"candlestick\",\"boxPlot\"].includes(t)},r=i.chart.type,o=0,n=s(r)?i.series.length:1;a.comboBarCount>0&&(n=a.comboBarCount),a.collapsedSeries.forEach((function(t){s(t.type)&&(n-=1)})),i.chart.stacked&&(n=1);var l=s(r)||a.comboBarCount>0,h=Math.abs(a.initialMaxX-a.initialMinX);if(l&&a.isXNumeric&&!a.isBarHorizontal&&n>0&&0!==h){h<=3&&(h=a.dataPoints);var c=h/t,d=a.minXDiff&&a.minXDiff/c>0?a.minXDiff/c:0;d>t/2&&(d/=2),(o=d*parseInt(i.plotOptions.bar.columnWidth,10)/100)<1&&(o=1),a.barPadForNumericAxis=o}return o}},{key:\"gridPadFortitleSubtitle\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!i.axisCharts?0:10;[\"title\",\"subtitle\"].forEach((function(s){void 0!==e.config[s].text?a+=e.config[s].margin:a+=t.dCtx.isSparkline||!i.axisCharts?0:5})),!e.config.legend.show||\"bottom\"!==e.config.legend.position||e.config.legend.floating||i.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");i.gridHeight-=s.height+r.height+a,i.translateY+=s.height+r.height+a}},{key:\"setGridXPosForDualYAxis\",value:function(t,e){var i=this.w,a=new M(this.dCtx.ctx);i.config.yaxis.forEach((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX-=e[r].width+t[r].width+parseInt(s.labels.style.fontSize,10)/1.2+12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ct=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new ot(this),this.dimYAxis=new lt(this),this.dimXAxis=new nt(this),this.dimGrid=new ht(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return s(t,[{key:\"plotCoords\",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.datalabelsCoords={width:0,height:0};var a=Array.isArray(e.config.stroke.width)?Math.max.apply(Math,p(e.config.stroke.width)):e.config.stroke.width;this.isSparkline&&((e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=f(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),this.gridPad.top=Math.max(a/2,this.gridPad.top),this.gridPad.bottom=Math.max(a/2,this.gridPad.bottom)),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var s=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*s,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(s>0?s:0),i.translateY=i.translateY+this.gridPad.top}},{key:\"setDimensionsForAxisCharts\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();i.isSlopeChart&&(this.datalabelsCoords=this.dimHelpers.getDatalabelsRect()),e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;(\"radar\"===e.config.chart.type||this.isSparkline)&&(l=0,h=0),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||\"treemap\"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||\"treemap\"===e.config.chart.type||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l+t.datalabelsCoords.width,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||\"treemap\"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l-2*t.datalabelsCoords.width};switch(\"top\"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case\"bottom\":i.translateY=c,d();break;case\"top\":i.translateY=this.lgRect.height+c,d();break;case\"left\":i.translateY=c,i.translateX=this.lgRect.width+l+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-2*this.datalabelsCoords.width;break;case\"right\":i.translateY=c,i.translateX=l+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-2*this.datalabelsCoords.width-5;break;default:throw new Error(\"Legend position not supported\")}this.dimGrid.setGridXPosForDualYAxis(s,a),new Q(this.ctx).setYAxisXPosition(a,s)}},{key:\"setDimensionsForNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s=\"pie\"===i.chart.type||\"polarArea\"===i.chart.type||\"donut\"===i.chart.type?\"pie\":\"radialBar\",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating){e.gridHeight=e.svgHeight;var n=e.dom.elWrap.getBoundingClientRect().width;return e.gridWidth=Math.min(n,e.gridHeight),e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2)}switch(i.legend.position){case\"bottom\":e.gridHeight=e.svgHeight-this.lgRect.height,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"top\":e.gridHeight=e.svgHeight-this.lgRect.height,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"left\":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case\"right\":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error(\"Legend position not supported\")}}},{key:\"conditionalChecksForAxisCoords\",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&\"bottom\"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),dt=function(){function t(e){i(this,t),this.w=e.w,this.lgCtx=e}return s(t,[{key:\"getLegendStyles\",value:function(){var t,e,i,a=document.createElement(\"style\");a.setAttribute(\"type\",\"text/css\");var s=(null===(t=this.lgCtx.ctx)||void 0===t||null===(e=t.opts)||void 0===e||null===(i=e.chart)||void 0===i?void 0:i.nonce)||this.w.config.chart.nonce;s&&a.setAttribute(\"nonce\",s);var r=document.createTextNode(\"\\n .apexcharts-flip-y {\\n transform: scaleY(-1) translateY(-100%);\\n transform-origin: top;\\n transform-box: fill-box;\\n }\\n .apexcharts-flip-x {\\n transform: scaleX(-1);\\n transform-origin: center;\\n transform-box: fill-box;\\n }\\n .apexcharts-legend {\\n display: flex;\\n overflow: auto;\\n padding: 0 10px;\\n }\\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\\n flex-wrap: wrap\\n }\\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\n flex-direction: column;\\n bottom: 0;\\n }\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\n justify-content: flex-start;\\n }\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\\n justify-content: center;\\n }\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\\n justify-content: flex-end;\\n }\\n .apexcharts-legend-series {\\n cursor: pointer;\\n line-height: normal;\\n display: flex;\\n align-items: center;\\n }\\n .apexcharts-legend-text {\\n position: relative;\\n font-size: 14px;\\n }\\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\\n pointer-events: none;\\n }\\n .apexcharts-legend-marker {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n margin-right: 1px;\\n }\\n\\n .apexcharts-legend-series.apexcharts-no-click {\\n cursor: auto;\\n }\\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\n display: none !important;\\n }\\n .apexcharts-inactive-legend {\\n opacity: 0.45;\\n }\");return a.appendChild(r),a}},{key:\"getLegendDimensions\",value:function(){var t=this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:\"appendToForeignObject\",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:\"toggleDataSeries\",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||\"radialBar\"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\")),r=parseInt(s.getAttribute(\"data:realIndex\"),10)):(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t+1,\"']\")),r=parseInt(s.getAttribute(\"rel\"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t+1,\"'] path\")),n=a.config.chart.type;if(\"pie\"===n||\"polarArea\"===n||\"donut\"===n){var l=a.config.plotOptions.pie.donut.labels;new k(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire(\"click\")}}},{key:\"getSeriesAfterCollapsing\",value:function(t){var e=t.realIndex,i=this.w,a=i.globals,s=m.clone(i.config.series);if(a.axisCharts){var r=i.config.yaxis[a.seriesYAxisReverseMap[e]],o={index:e,data:s[e].data.slice(),type:s[e].type||i.config.chart.type};if(r&&r.show&&r.showAlways)a.ancillaryCollapsedSeriesIndices.indexOf(e)<0&&(a.ancillaryCollapsedSeries.push(o),a.ancillaryCollapsedSeriesIndices.push(e));else if(a.collapsedSeriesIndices.indexOf(e)<0){a.collapsedSeries.push(o),a.collapsedSeriesIndices.push(e);var n=a.risingSeries.indexOf(e);a.risingSeries.splice(n,1)}}else a.collapsedSeries.push({index:e,data:s[e]}),a.collapsedSeriesIndices.push(e);return a.allSeriesCollapsed=a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.config.series.length,this._getSeriesBasedOnCollapsedState(s)}},{key:\"hideSeries\",value:function(t){for(var e=t.seriesEl,i=t.realIndex,a=this.w,s=this.getSeriesAfterCollapsing({realIndex:i}),r=e.childNodes,o=0;o0){for(var r=0;r1;if(this.legendHelpers.appendToForeignObject(),(a||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),\"bottom\"===i.legend.position||\"top\"===i.legend.position?this.legendAlignHorizontal():\"right\"!==i.legend.position&&\"left\"!==i.legend.position||this.legendAlignVertical()}}},{key:\"createLegendMarker\",value:function(t){var e=t.i,i=t.fillcolor,a=this.w,s=document.createElement(\"span\");s.classList.add(\"apexcharts-legend-marker\");var r=a.config.legend.markers.shape||a.config.markers.shape,o=r;Array.isArray(r)&&(o=r[e]);var n=Array.isArray(a.config.legend.markers.size)?parseFloat(a.config.legend.markers.size[e]):parseFloat(a.config.legend.markers.size),l=Array.isArray(a.config.legend.markers.offsetX)?parseFloat(a.config.legend.markers.offsetX[e]):parseFloat(a.config.legend.markers.offsetX),h=Array.isArray(a.config.legend.markers.offsetY)?parseFloat(a.config.legend.markers.offsetY[e]):parseFloat(a.config.legend.markers.offsetY),c=Array.isArray(a.config.legend.markers.strokeWidth)?parseFloat(a.config.legend.markers.strokeWidth[e]):parseFloat(a.config.legend.markers.strokeWidth),d=s.style;if(d.height=2*(n+c)+\"px\",d.width=2*(n+c)+\"px\",d.left=l+\"px\",d.top=h+\"px\",a.config.legend.markers.customHTML)d.background=\"transparent\",d.color=i[e],Array.isArray(a.config.legend.markers.customHTML)?a.config.legend.markers.customHTML[e]&&(s.innerHTML=a.config.legend.markers.customHTML[e]()):s.innerHTML=a.config.legend.markers.customHTML();else{var u=new W(this.ctx).getMarkerConfig({cssClass:\"apexcharts-legend-marker apexcharts-marker apexcharts-marker-\".concat(o),seriesIndex:e,strokeWidth:c,size:n}),f=SVG(s).size(\"100%\",\"100%\"),p=new k(this.ctx).drawMarker(0,0,g(g({},u),{},{pointFillColor:Array.isArray(i)?i[e]:u.pointFillColor,shape:o}));SVG.select(\".apexcharts-legend-marker.apexcharts-marker\").members.forEach((function(t){t.node.classList.contains(\"apexcharts-marker-triangle\")?t.node.style.transform=\"translate(50%, 45%)\":t.node.style.transform=\"translate(50%, 50%)\"})),f.add(p)}return s}},{key:\"drawLegends\",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.config.legend.markers.fillColors?e.config.legend.markers.fillColors.slice():e.globals.colors.slice();if(\"heatmap\"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+\" - \"+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h,c=o(a[l],{seriesIndex:l,w:e}),d=!1,g=!1;if(e.globals.collapsedSeries.length>0)for(var u=0;u0)for(var f=0;f0?l-10:0)+(h>0?h-10:0)}a.style.position=\"absolute\",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+\"px\",a.style.top=o+\"px\",\"right\"===i.config.legend.position&&(a.style.left=\"auto\",a.style.right=25+i.config.legend.offsetX+\"px\");[\"width\",\"height\"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+\"px\")}))}},{key:\"legendAlignHorizontal\",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=new ct(this.ctx),i=e.dimHelpers.getTitleSubtitleCoords(\"title\"),a=e.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),s=0;\"top\"===t.config.legend.position&&(s=i.height+a.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,s)}},{key:\"legendAlignVertical\",value:function(){var t=this.w,e=this.legendHelpers.getLegendDimensions(),i=0;\"left\"===t.config.legend.position&&(i=20),\"right\"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:\"onLegendHovered\",value:function(t){var e=this.w,i=t.target.classList.contains(\"apexcharts-legend-series\")||t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\");if(\"heatmap\"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute(\"rel\"),10)-1;this.ctx.events.fireEvent(\"legendHover\",[this.ctx,a,this.w]),new V(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains(\"apexcharts-inactive-legend\")&&i&&new V(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:\"onLegendClick\",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains(\"apexcharts-legend-series\")||t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\"))){var i=parseInt(t.target.getAttribute(\"rel\"),10)-1,a=\"true\"===t.target.getAttribute(\"data:collapsed\"),s=this.w.config.chart.events.legendClick;\"function\"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendClick\",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;\"function\"==typeof r&&t.target.classList.contains(\"apexcharts-legend-marker\")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendMarkerClick\",[this.ctx,i,this.w])),\"treemap\"!==e.config.chart.type&&\"heatmap\"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ut=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w;var a=this.w;this.ev=this.w.config.chart.events,this.selectedClass=\"apexcharts-selected\",this.localeValues=this.w.globals.locale.toolbar,this.minX=a.globals.minX,this.maxX=a.globals.maxX}return s(t,[{key:\"createToolbar\",value:function(){var t=this,e=this.w,i=function(){return document.createElement(\"div\")},a=i();if(a.setAttribute(\"class\",\"apexcharts-toolbar\"),a.style.top=e.config.chart.toolbar.offsetY+\"px\",a.style.right=3-e.config.chart.toolbar.offsetX+\"px\",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\\n \\n \\n\\n'),o(\"zoomOut\",this.elZoomOut,'\\n \\n \\n\\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:\"zoom\"===i?t.elZoom:t.elSelection,icon:\"string\"==typeof t.t[i]?t.t[i]:\"zoom\"===i?'\\n \\n \\n \\n':'\\n \\n \\n',title:t.localeValues[\"zoom\"===i?\"selectionZoom\":\"selection\"],class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-\".concat(i,\"-icon\")})};n(\"zoom\"),n(\"selection\"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:\"string\"==typeof this.t.pan?this.t.pan:'\\n \\n \\n \\n \\n \\n \\n \\n',title:this.localeValues.pan,class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-pan-icon\"}),o(\"reset\",this.elZoomReset,'\\n \\n \\n'),this.t.download&&r.push({el:this.elMenuIcon,icon:\"string\"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:\"apexcharts-menu-icon\"});for(var l=0;lthis.wheelDelay&&(this.executeMouseWheelZoom(t),i.globals.lastWheelExecution=a),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout((function(){a-i.globals.lastWheelExecution>e.wheelDelay&&(e.executeMouseWheelZoom(t),i.globals.lastWheelExecution=a)}),this.debounceDelay)}},{key:\"executeMouseWheelZoom\",value:function(t){var e,i=this.w;this.minX=i.globals.isRangeBar?i.globals.minY:i.globals.minX,this.maxX=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;var a=null===(e=this.gridRect)||void 0===e?void 0:e.getBoundingClientRect();if(a){var s,r,o,n=(t.clientX-a.left)/a.width,l=this.minX,h=this.maxX,c=h-l;if(t.deltaY<0){var d=l+n*c;r=d-(s=.5*c)/2,o=d+s/2}else r=l-(s=1.5*c)/2,o=h+s/2;if(!i.globals.isRangeBar){r=Math.max(r,i.globals.initialMinX),o=Math.min(o,i.globals.initialMaxX);var g=.01*(i.globals.initialMaxX-i.globals.initialMinX);if(o-r0&&e.height>0&&this.slDraggableRect.selectize({points:\"l, r\",pointSize:8,pointType:\"rect\"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on(\"resizing\",this.selectionDragging.bind(this,\"resizing\"))}}},{key:\"preselectedSelection\",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a=t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i;t.globals.isRangeBar&&(i=(t.config.chart.selection.xaxis.min-t.globals.yAxisScale[0].niceMin)/e.invertedYRatio,a=(t.config.chart.selection.xaxis.max-t.config.chart.selection.xaxis.min)/e.invertedYRatio);var s={x:i,y:0,width:a,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(s),this.makeSelectionRectDraggable(),\"function\"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:\"drawSelectionRect\",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:\"translate(\"+o+\", \"+l+\")\"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,\"fill-opacity\":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,\"stroke-width\":h.config.chart.zoom.zoomedArea.stroke.width,\"stroke-opacity\":h.config.chart.zoom.zoomedArea.stroke.opacity}),k.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,\"fill-opacity\":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,\"stroke-width\":h.config.chart.selection.stroke.width,\"stroke-dasharray\":h.config.chart.selection.stroke.dashArray,\"stroke-opacity\":h.config.chart.selection.stroke.opacity}),k.setAttrs(d.node,g))}}},{key:\"hideSelectionRect\",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:\"selectionDrawing\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g=\"x\"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:\"y\"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging(\"resizing\"),g}},{key:\"selectionDragging\",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;\"resizing\"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n(\"x\"),y:n(\"y\"),width:n(\"width\"),height:n(\"height\")};a.globals.selection=l,\"function\"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t,e,o,n,l=i.gridRect.getBoundingClientRect(),h=r.node.getBoundingClientRect();a.globals.isRangeBar?(t=a.globals.yAxisScale[0].niceMin+(h.left-l.left)*s.invertedYRatio,e=a.globals.yAxisScale[0].niceMin+(h.right-l.left)*s.invertedYRatio,o=0,n=1):(t=a.globals.xAxisScale.niceMin+(h.left-l.left)*s.xRatio,e=a.globals.xAxisScale.niceMin+(h.right-l.left)*s.xRatio,o=a.globals.yAxisScale[0].niceMin+(l.bottom-h.bottom)*s.yRatio[0],n=a.globals.yAxisScale[0].niceMax-(h.top-l.top)*s.yRatio[0]);var c={xaxis:{min:t,max:e},yaxis:{min:o,max:n}};a.config.chart.events.selection(i.ctx,c),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,c)}),o))}},{key:\"selectionDrawn\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){var i=a.globals.seriesYAxisMap[e][0];d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[i]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[i]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=m.clone(a.globals.initialConfig.yaxis),f=m.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),\"xy\"!==i&&\"x\"!==i||(f={min:h,max:c}),\"xy\"!==i&&\"y\"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),o){var p=o.getBeforeZoomRange(f,u);p&&(f=p.xaxis?p.xaxis:f,u=p.yaxis?p.yaxis:u)}var x={xaxis:f};a.config.chart.group||(x.yaxis=u),s.ctx.updateHelpers._updateOptions(x,!1,s.w.config.chart.animations.dynamicAnimation.enabled),\"function\"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var b,v=null;b={min:h,max:c},\"xy\"!==i&&\"y\"!==i||(v=m.clone(a.config.yaxis)).forEach((function(t,e){v[e].min=g[e],v[e].max=d[e]})),a.globals.selection=s.selection,\"function\"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:b,yaxis:v})}}},{key:\"panDragging\",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection=\"left\":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection=\"right\":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection=\"up\":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection=\"down\")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:\"delayedPanScrolled\",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;\"left\"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):\"right\"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:\"panScrolled\",value:function(t,e){var i=this.w,a=this.xyRatios,s=m.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),\"left\"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):\"right\"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={xaxis:{min:t,max:e}};i.config.chart.group||(l.yaxis=s),this.updateScrolledChart(l,t,e)}},{key:\"updateScrolledChart\",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),\"function\"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),a}(),pt=function(){function t(e){i(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return s(t,[{key:\"getNearestValues\",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove(\"hovering-zoom\"),e.classList.remove(\"hovering-pan\")):r.globals.zoomEnabled?(e.classList.remove(\"hovering-pan\"),e.classList.add(\"hovering-zoom\")):r.globals.panEnabled&&(e.classList.remove(\"hovering-zoom\"),e.classList.add(\"hovering-pan\"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var x=null,b=null,v=r.globals.seriesXvalues.map((function(t){return t.filter((function(t){return m.isNumber(t)}))})),y=r.globals.seriesYvalues.map((function(t){return t.filter((function(t){return m.isNumber(t)}))}));if(r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);x=(b=this.closestInMultiArray(k,A,v,y)).index,f=b.j,null!==x&&(v=r.globals.seriesXvalues[x],f=(b=this.closestInArray(k,v)).index)}return r.globals.capturedSeriesIndex=null===x?-1:x,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:x,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:\"closestInMultiArray\",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a<=h&&(h=a,n=i)}))})),-1!==n){var c=a[r][n],d=Math.abs(e-c);o=r,a.forEach((function(t,i){var a=Math.abs(e-t[n]);a<=d&&(d=a,o=i)}))}return{index:o,j:n}}},{key:\"getFirstActiveXArray\",value:function(t){for(var e=this.w,i=0,a=t.map((function(t,e){return t.length>0?e:-1})),s=0;s0)for(var a=0;a *\")):this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap > *\")}},{key:\"getAllMarkers\",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap\");(t=p(t)).sort((function(t,e){var i=Number(t.getAttribute(\"data:realIndex\")),a=Number(e.getAttribute(\"data:realIndex\"));return ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(\".apexcharts-marker\"))})),e}},{key:\"hasMarkers\",value:function(t){return this.getElMarkers(t).length>0}},{key:\"getPathFromPoint\",value:function(t,e){var i=Number(t.getAttribute(\"cx\")),a=Number(t.getAttribute(\"cy\")),s=t.getAttribute(\"shape\");return new k(this.ctx).getMarkerPath(i,a,s,e)}},{key:\"getElBars\",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series\")}},{key:\"hasBars\",value:function(){return this.getElBars().length>0}},{key:\"getHoverMarkerSize\",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:\"toggleAllTooltipSeriesGroups\",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));for(var a=i.allTooltipSeriesGroups,s=0;s\",e=\"
\";d.forEach((function(i,a){t+='
').concat(i.attrs.name,\"
\"),e+=\"
\".concat(i.val,\"
\")})),v.innerHTML=t+\"
\",m.innerHTML=e+\"\"};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML=\"\",m.innerHTML=\"\"):y()}else v.innerHTML=\"\",m.innerHTML=\"\";null!==f&&(a[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML=l.config.tooltip.z.title,a[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML=void 0!==f?f:\"\");if(o&&p[0]){if(l.config.tooltip.hideEmptySeries){var w=a[e].querySelector(\".apexcharts-tooltip-marker\"),k=a[e].querySelector(\".apexcharts-tooltip-text\");0==parseFloat(c)?(w.style.display=\"none\",k.style.display=\"none\"):(w.style.display=\"block\",k.style.display=\"block\")}null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1||Array.isArray(h.tConfig.enabledOnSeries)&&-1===h.tConfig.enabledOnSeries.indexOf(e)?p[0].parentNode.style.display=\"none\":p[0].parentNode.style.display=l.config.tooltip.items.display}else Array.isArray(h.tConfig.enabledOnSeries)&&-1===h.tConfig.enabledOnSeries.indexOf(e)&&(p[0].parentNode.style.display=\"none\")}},{key:\"toggleActiveInactiveSeries\",value:function(t,e){var i=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else{this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");var a=i.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group-\".concat(e));a&&(a.classList.add(\"apexcharts-active\"),a.style.display=i.config.tooltip.items.display)}}},{key:\"getValuesToPrint\",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r=\"\",o=\"\",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&\"treemap\"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=new _(this.ctx).isFormatXY()?void 0!==a.config.series[e].data[i]?a.config.series[e].data[i].x:\"\":void 0!==a.globals.labels[i]?a.globals.labels[i]:\"\";var d=r;a.globals.isXNumeric&&\"datetime\"===a.config.xaxis.type?r=new P(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new L(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o=\"function\"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(\" \"):l,xVal:Array.isArray(r)?r.join(\" \"):r,xAxisTTVal:Array.isArray(o)?o.join(\" \"):o,zVal:n}}},{key:\"handleCustomTooltip\",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),bt=function(){function t(e){i(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return s(t,[{key:\"moveXCrosshairs\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute(\"x\",r),s.setAttribute(\"x1\",r),s.setAttribute(\"x2\",r),s.setAttribute(\"y2\",a.globals.gridHeight),s.classList.add(\"apexcharts-active\")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;\"tickWidth\"!==a.config.xaxis.crosshairs.width&&\"barWidth\"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:\"moveYCrosshairs\",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&k.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&k.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:\"moveXAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add(\"apexcharts-active\");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new k(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+\"px\",i.xaxisTooltip.style.left=t+\"px\",i.xaxisTooltip.style.top=a+\"px\"}}}},{key:\"moveYAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));var a=parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add(\"apexcharts-active\"),i.yaxisTTEls[t].style.top=s+\"px\",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+\"px\"):i.yaxisTTEls[t].classList.remove(\"apexcharts-active\")}},{key:\"moveTooltip\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+\"px\",r.style.top=h+\"px\")}},{key:\"moveMarkers\",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-marker\")),r=0;r0){var u=g.getAttribute(\"shape\"),f=l.getMarkerPath(s,r,u,1.5*c);g.setAttribute(\"d\",f)}this.moveXCrosshairs(s),n.fixedTooltip||this.moveTooltip(s,r,c)}}},{key:\"moveDynamicPointsOnHover\",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray,n=new V(this.ctx),l=new k(this.ctx);e=n.getActiveConfigSeriesIndex(\"asc\",[\"line\",\"area\",\"scatter\",\"bubble\"]);var h=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var c=i.tooltipUtil.getAllMarkers();if(null!==c)for(var d=0;d0){var b=l.getMarkerPath(s,u,p,h);c[d].setAttribute(\"d\",b)}else c[d].setAttribute(\"d\",\"\")}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,h)}},{key:\"moveStickyTooltipOverBars\",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new V(this.ctx).getActiveConfigSeriesIndex(\"desc\")+1);var o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-boxPlot-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"']\"));o||\"number\"!=typeof e||(o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-candlestick-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-boxPlot-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-rangebar-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"']\")));var n=o?parseFloat(o.getAttribute(\"cx\")):0,l=o?parseFloat(o.getAttribute(\"cy\")):0,h=o?parseFloat(o.getAttribute(\"barWidth\")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains(\"apexcharts-candlestick-area\")||o.classList.contains(\"apexcharts-boxPlot-area\"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),vt=function(){function t(e){i(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new bt(e)}return s(t,[{key:\"drawDynamicPoints\",value:function(){var t=this.w,e=new k(this.ctx),i=new W(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");a=p(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute(\"data:realIndex\"))-parseFloat(e.getAttribute(\"data:realIndex\"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;\"bubble\"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute(\"cx\"),o=e.getAttribute(\"cy\");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(\"radar\"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:\"enlargePoints\",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),o=e.config.markers.hover.size,n=0;n=0){var a=this.ttCtx.tooltipUtil.getPathFromPoint(t[e],i);t[e].setAttribute(\"d\",a)}else t[e].setAttribute(\"d\",\"M0,0\")}}}]),t}(),mt=function(){function t(e){i(this,t),this.w=e.w;var a=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!a.globals.isBarHorizontal&&\"rangeBar\"===a.config.chart.type&&a.config.plotOptions.bar.rangeBarGroupRows}return s(t,[{key:\"getAttr\",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:\"handleHeatTreeTooltip\",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains(\"apexcharts-\".concat(r,\"-rect\"))){var l=this.getAttr(e,\"i\"),h=this.getAttr(e,\"j\"),c=this.getAttr(e,\"cx\"),d=this.getAttr(e,\"cy\"),g=this.getAttr(e,\"width\"),u=this.getAttr(e,\"height\");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:\"handleMarkerTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains(\"apexcharts-marker\")){var h=parseInt(s.paths.getAttribute(\"cx\"),10),c=parseInt(s.paths.getAttribute(\"cy\"),10),d=parseFloat(s.paths.getAttribute(\"val\"));if(i=parseInt(s.paths.getAttribute(\"rel\"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"),10)-1,l.intersect){var g=m.findAncestor(s.paths,\"apexcharts-series\");g&&(e=parseInt(g.getAttribute(\"data:realIndex\"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),\"mouseup\"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:\"handleBarTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=g,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var u=parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"),10);if(r.globals.isMultipleYAxis?r.config.yaxis[u]&&r.config.yaxis[u].reversed:r.config.yaxis[0].reversed,h+o.tooltipRect.ttWidth>r.globals.gridWidth?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var f=o.getElGrid().getBoundingClientRect();c=o.e.clientY-f.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+\"px\",n.style.top=c+\"px\")}},{key:\"getBarTooltipXY\",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains(\"apexcharts-bar-area\")||g.contains(\"apexcharts-candlestick-area\")||g.contains(\"apexcharts-boxPlot-area\")||g.contains(\"apexcharts-rangebar-area\")){var u=i.target,f=u.getBoundingClientRect(),p=a.elGrid.getBoundingClientRect(),x=f.height;d=f.height;var b=f.width,v=parseInt(u.getAttribute(\"cx\"),10),m=parseInt(u.getAttribute(\"cy\"),10);c=parseFloat(u.getAttribute(\"barWidth\"));var y=\"touchmove\"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute(\"j\"),10),n=parseInt(u.parentNode.getAttribute(\"rel\"),10)-1;var w=u.getAttribute(\"data-range-y1\"),k=u.getAttribute(\"data-range-y2\");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute(\"data:realIndex\"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-p.left+15,h=S()):(l=A(),h=i.clientY-p.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)0&&i.setAttribute(\"width\",e.xcrosshairsWidth)}},{key:\"handleYCrosshair\",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\")}},{key:\"drawYaxisTooltipText\",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals,o=r.seriesYAxisMap[t];if(a.yaxisTooltips[t]&&o.length>0){var n=r.yLabelFormatters[t],l=a.getElGrid().getBoundingClientRect(),h=o[0],c=0;i.yRatio.length>1&&(c=h);var d=(e-l.top)*i.yRatio[c],g=r.maxYArr[h]-r.minYArr[h],u=r.minYArr[h]+(g-d);s.config.yaxis[t].reversed&&(u=r.maxYArr[h]-(g-d)),a.tooltipPosition.moveYCrosshairs(e-l.top),a.yaxisTooltipText[t].innerHTML=n(u),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),wt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w;var a=this.w;this.tConfig=a.config.tooltip,this.tooltipUtil=new pt(this),this.tooltipLabels=new xt(this),this.tooltipPosition=new bt(this),this.marker=new vt(this),this.intersect=new mt(this),this.axesTooltip=new yt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!a.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return s(t,[{key:\"getElTooltip\",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\"):null}},{key:\"getElXCrosshairs\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\")}},{key:\"getElGrid\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\")}},{key:\"drawTooltip\",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement(\"div\");if(i.classList.add(\"apexcharts-tooltip\"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new q(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&\"rangeBar\"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement(\"div\"),this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:\"createTTElements\",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement(\"div\");o.classList.add(\"apexcharts-tooltip-series-group\",\"apexcharts-tooltip-series-group-\".concat(r)),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1;var n=document.createElement(\"span\");n.classList.add(\"apexcharts-tooltip-marker\"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement(\"div\");l.classList.add(\"apexcharts-tooltip-text\"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,[\"y\",\"goals\",\"z\"].forEach((function(t){var e=document.createElement(\"div\");e.classList.add(\"apexcharts-tooltip-\".concat(t,\"-group\"));var i=document.createElement(\"span\");i.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-label\")),e.appendChild(i);var a=document.createElement(\"span\");a.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-value\")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:\"drawFixedTooltipRect\",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf(\"right\")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf(\"bottom\")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+\"px\",e.style.top=o+\"px\",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:\"addDatapointEventsListeners\",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area\");this.addPathsEventListeners(e,t)}},{key:\"addPathsEventListeners\",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};[\"mousemove\",\"mouseup\",\"touchmove\",\"mouseout\",\"touchend\"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:\"seriesHover\",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:\"seriesHoverByContext\",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip(e);if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new V(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:\"axisChartsTooltips\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n=\"touchmove\"===a.type?a.touches[0].clientX:a.clientX,l=\"touchmove\"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute(\"index\"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=[];r.config.chart.group&&(g=this.ctx.getSyncedCharts());var u=r.globals.xyCharts||\"bar\"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(\"mousemove\"===a.type||\"touchmove\"===a.type||\"mouseup\"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add(\"apexcharts-active\");var f=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&f.length&&this.ycrosshairs.classList.add(\"apexcharts-active\"),u&&!this.showOnIntersect||g.length>1)this.handleStickyTooltip(a,n,l,s);else if(\"heatmap\"===r.config.chart.type||\"treemap\"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+\"px\",c.style.top=i+\"px\"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var x=0;xl.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:\"handleStickyCapturedSeries\",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:\"deactivateHoverFilter\",value:function(){for(var t=this.w,e=new k(this.ctx),i=t.globals.dom.Paper.select(\".apexcharts-bar-area\"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=e;\"mouseup\"===t.type&&this.markerClick(t,i,a),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(i),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var M=S.config.legend.tooltipHoverFormatter,I=Array.from(this.legendLabels);I.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}));for(var T=0;T0?C.marker.enlargePoints(a):C.tooltipPosition.moveDynamicPointsOnHover(a);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var F=new k(this.ctx),D=S.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(a,\"']\"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a,i);for(var H=0;H0&&e.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(g-=h*A)),w){g=g+d.height/2-b/2-2}var C=e.globals.series[i][a]<0,L=n;switch(this.barCtx.isReversed&&(L=n+(C?c:-c)),p.position){case\"center\":u=w?C?L-c/2+m:L+c/2-m:C?L-c/2+d.height/2+m:L+c/2+d.height/2-m;break;case\"bottom\":u=w?C?L-c+m:L+c-m:C?L-c+d.height+b+m:L+c-d.height/2+b-m;break;case\"top\":u=w?C?L+m:L-m:C?L-d.height/2-m:L+d.height+m}if(this.barCtx.lastActiveBarSerieIndex===s&&x.enabled){var P=new k(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:s,j:a}),f.fontSize);r=C?L-P.height/2-m-x.offsetY+18:L+P.height+m+x.offsetY-18;var M=S;o=y+(e.globals.isXNumeric?-h*e.globals.barGroups.length/2:e.globals.barGroups.length*h/2-(e.globals.barGroups.length-1)*h-M)+x.offsetX}return e.config.chart.stacked||(u<0?u=0+b:u+d.height/3>e.globals.gridHeight&&(u=e.globals.gridHeight-b)),{bcx:l,bcy:n,dataLabelsX:g,dataLabelsY:u,totalDataLabelsX:o,totalDataLabelsY:r,totalDataLabelsAnchor:\"middle\"}}},{key:\"calculateBarsDataLabelsPosition\",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.bcy,n=t.barHeight,l=t.barWidth,h=t.textRects,c=t.dataLabelsX,d=t.strokeWidth,g=t.dataLabelsConfig,u=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,p=t.offX,x=t.offY,b=e.globals.gridHeight/e.globals.dataPoints;l=Math.abs(l);var v,m,y=o-(this.barCtx.isRangeBar?0:b)+n/2+h.height/2+x-3,w=\"start\",A=e.globals.series[a][s]<0,S=i;switch(this.barCtx.isReversed&&(S=i+(A?-l:l),w=A?\"start\":\"end\"),u.position){case\"center\":c=A?S+l/2-p:Math.max(h.width/2,S-l/2)+p;break;case\"bottom\":c=A?S+l-d-p:S-l+d+p;break;case\"top\":c=A?S-d-p:S-d+p}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var C=new k(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),g.fontSize);A?(v=S-d-p-f.offsetX,w=\"end\"):v=S+p+f.offsetX+(this.barCtx.isReversed?-(l+d):d),m=y-h.height/2+C.height/2+f.offsetY+d}return e.config.chart.stacked||(\"start\"===g.textAnchor?c-h.width<0?c=A?h.width+d:d:c+h.width>e.globals.gridWidth&&(c=A?e.globals.gridWidth-d:e.globals.gridWidth-h.width-d):\"middle\"===g.textAnchor?c-h.width/2<0?c=h.width/2+d:c+h.width/2>e.globals.gridWidth&&(c=e.globals.gridWidth-h.width/2-d):\"end\"===g.textAnchor&&(c<1?c=h.width+d:c+1>e.globals.gridWidth&&(c=e.globals.gridWidth-h.width-d))),{bcx:i,bcy:o,dataLabelsX:c,dataLabelsY:y,totalDataLabelsX:v,totalDataLabelsY:m,totalDataLabelsAnchor:w}}},{key:\"drawCalculatedDataLabels\",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,r=t.j,o=t.textRects,n=t.barHeight,l=t.barWidth,h=t.dataLabelsConfig,c=this.w,d=\"rotate(0)\";\"vertical\"===c.config.plotOptions.bar.dataLabels.orientation&&(d=\"rotate(-90, \".concat(e,\", \").concat(i,\")\"));var u=new G(this.barCtx.ctx),f=new k(this.barCtx.ctx),p=h.formatter,x=null,b=c.globals.collapsedSeriesIndices.indexOf(s)>-1;if(h.enabled&&!b){x=f.group({class:\"apexcharts-data-labels\",transform:d});var v=\"\";void 0!==a&&(v=p(a,g(g({},c),{},{seriesIndex:s,dataPointIndex:r,w:c}))),!a&&c.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v=\"\");var m=c.globals.series[s][r]<0,y=c.config.plotOptions.bar.dataLabels.position;if(\"vertical\"===c.config.plotOptions.bar.dataLabels.orientation&&(\"top\"===y&&(h.textAnchor=m?\"end\":\"start\"),\"center\"===y&&(h.textAnchor=\"middle\"),\"bottom\"===y&&(h.textAnchor=m?\"end\":\"start\")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)lMath.abs(l)&&(v=\"\"):o.height/1.6>Math.abs(n)&&(v=\"\"));var w=g({},h);this.barCtx.isHorizontal&&a<0&&(\"start\"===h.textAnchor?w.textAnchor=\"end\":\"end\"===h.textAnchor&&(w.textAnchor=\"start\")),u.plotDataLabelsText({x:e,y:i,text:v,i:s,j:r,parent:x,dataLabelsConfig:w,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:\"drawTotalDataLabels\",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.realIndex,r=t.textAnchor,o=t.barTotalDataLabelsConfig;this.w;var n,l=new k(this.barCtx.ctx);return o.enabled&&void 0!==e&&void 0!==i&&this.barCtx.lastActiveBarSerieIndex===s&&(n=l.drawText({x:e,y:i,foreColor:o.style.color,text:a,textAnchor:r,fontFamily:o.style.fontFamily,fontSize:o.style.fontSize,fontWeight:o.style.fontWeight})),n}}]),t}(),At=function(){function t(e){i(this,t),this.w=e.w,this.barCtx=e}return s(t,[{key:\"initVariables\",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf(\"%\")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.translationsIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return l.globals.barHeight=s,l.globals.barWidth=r,{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:\"initializeStackedPrevVars\",value:function(t){t.w.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]}))}},{key:\"initializeStackedXYVars\",value:function(t){t.w.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]}))}},{key:\"getPathFillColor\",value:function(t,e,i,a){var s,r,o,n,l,h=this.w,c=this.barCtx.ctx.fill,d=null,g=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(d=a.color)}));return null!==(s=h.config.series[e].data[i])&&void 0!==s&&s.fillColor&&(d=h.config.series[e].data[i].fillColor),c.fillPath({seriesNumber:this.barCtx.barOptions.distributed?g:a,dataPointIndex:i,color:d,value:t[e][i],fillConfig:null===(r=h.config.series[e].data[i])||void 0===r?void 0:r.fill,fillType:null!==(o=h.config.series[e].data[i])&&void 0!==o&&null!==(n=o.fill)&&void 0!==n&&n.type?null===(l=h.config.series[e].data[i])||void 0===l?void 0:l.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[a]:h.config.fill.type})}},{key:\"getStrokeWidth\",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:\"createBorderRadiusArr\",value:function(t){var e=this.w,i=!this.w.config.chart.stacked||\"last\"!==e.config.plotOptions.bar.borderRadiusWhenStacked||e.config.plotOptions.bar.borderRadius<=0,a=t.length,s=t[0].length,o=Array.from({length:a},(function(){return Array(s).fill(i?\"top\":\"none\")}));if(i)return o;for(var n=0;n0?(l.push(d),c++):g<0&&(h.push(d),c++)}if(l.length>0&&0===h.length)if(1===l.length)o[l[0]][n]=\"both\";else{var u,f=l[0],p=l[l.length-1],x=r(l);try{for(x.s();!(u=x.n()).done;){var b=u.value;o[b][n]=b===f?\"bottom\":b===p?\"top\":\"none\"}}catch(t){x.e(t)}finally{x.f()}}else if(h.length>0&&0===l.length)if(1===h.length)o[h[0]][n]=\"both\";else{var v,m=h[0],y=h[h.length-1],w=r(h);try{for(w.s();!(v=w.n()).done;){var k=v.value;o[k][n]=k===m?\"bottom\":k===y?\"top\":\"none\"}}catch(t){w.e(t)}finally{w.f()}}else if(l.length>0&&h.length>0){var A,S=l[l.length-1],C=r(l);try{for(C.s();!(A=C.n()).done;){var L=A.value;o[L][n]=L===S?\"top\":\"none\"}}catch(t){C.e(t)}finally{C.f()}var P,M=h[h.length-1],I=r(h);try{for(I.s();!(P=I.n()).done;){var T=P.value;o[T][n]=T===M?\"bottom\":\"none\"}}catch(t){I.e(t)}finally{I.f()}}else if(1===c){o[l[0]||h[0]][n]=\"both\"}}return o}},{key:\"barBackground\",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new k(this.barCtx.ctx),c=new V(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add(\"apexcharts-backgroundBar\")}}},{key:\"getColumnPaths\",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.isReversed,l=t.series,h=t.seriesGroup,c=t.realIndex,d=t.i,g=t.j,u=t.w,f=new k(this.barCtx.ctx);(o=Array.isArray(o)?o[c]:o)||(o=0);var p=i,x=a;null!==(e=u.config.series[c].data[g])&&void 0!==e&&e.columnWidthOffset&&(x=a-u.config.series[c].data[g].columnWidthOffset/2,p=i+u.config.series[c].data[g].columnWidthOffset);var b=o/2,v=x+b,m=x+p-b,y=(l[d][g]>=0?1:-1)*(n?-1:1);s+=.001-b*y,r+=.001+b*y;var w=f.move(v,s),A=f.move(v,s),S=f.line(m,s);if(u.globals.previousPaths.length>0&&(A=this.barCtx.getPreviousPath(c,g,!1)),w=w+f.line(v,r)+f.line(m,r)+S+(\"around\"===u.config.plotOptions.bar.borderRadiusApplication||\"both\"===this.arrBorderRadius[c][g]?\" Z\":\" z\"),A=A+f.line(v,s)+S+S+S+S+S+f.line(v,s)+(\"around\"===u.config.plotOptions.bar.borderRadiusApplication||\"both\"===this.arrBorderRadius[c][g]?\" Z\":\" z\"),\"none\"!==this.arrBorderRadius[c][g]&&(w=f.roundPathCorners(w,u.config.plotOptions.bar.borderRadius)),u.config.chart.stacked){var C=this.barCtx;(C=this.barCtx[h]).yArrj.push(r-b*y),C.yArrjF.push(Math.abs(s-r+o*y)),C.yArrjVal.push(this.barCtx.series[d][g])}return{pathTo:w,pathFrom:A}}},{key:\"getBarpaths\",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.isReversed,l=t.series,h=t.seriesGroup,c=t.realIndex,d=t.i,g=t.j,u=t.w,f=new k(this.barCtx.ctx);(o=Array.isArray(o)?o[c]:o)||(o=0);var p=i,x=a;null!==(e=u.config.series[c].data[g])&&void 0!==e&&e.barHeightOffset&&(p=i-u.config.series[c].data[g].barHeightOffset/2,x=a+u.config.series[c].data[g].barHeightOffset);var b=o/2,v=p+b,m=p+x-b,y=(l[d][g]>=0?1:-1)*(n?-1:1);s+=.001+b*y,r+=.001-b*y;var w=f.move(s,v),A=f.move(s,v);u.globals.previousPaths.length>0&&(A=this.barCtx.getPreviousPath(c,g,!1));var S=f.line(s,m);if(w=w+f.line(r,v)+f.line(r,m)+S+(\"around\"===u.config.plotOptions.bar.borderRadiusApplication||\"both\"===this.arrBorderRadius[c][g]?\" Z\":\" z\"),A=A+f.line(s,v)+S+S+S+S+S+f.line(s,v)+(\"around\"===u.config.plotOptions.bar.borderRadiusApplication||\"both\"===this.arrBorderRadius[c][g]?\" Z\":\" z\"),\"none\"!==this.arrBorderRadius[c][g]&&(w=f.roundPathCorners(w,u.config.plotOptions.bar.borderRadius)),u.config.chart.stacked){var C=this.barCtx;(C=this.barCtx[h]).xArrj.push(r+b*y),C.xArrjF.push(Math.abs(s-r-o*y)),C.xArrjVal.push(this.barCtx.series[d][g])}return{pathTo:w,pathFrom:A}}},{key:\"checkZeroSeries\",value:function(t){for(var e=t.series,i=this.w,a=0;a2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:\"getYForValue\",value:function(t,e,i){var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3]?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[i]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[i]:0)),a}},{key:\"getGoalValues\",value:function(t,e,i,a,s,r){var o=this,l=this.w,h=[],c=function(a,s){var l;h.push((n(l={},t,\"x\"===t?o.getXForValue(a,e,!1):o.getYForValue(a,i,r,!1)),n(l,\"attrs\",s),l))};if(l.globals.seriesGoals[a]&&l.globals.seriesGoals[a][s]&&Array.isArray(l.globals.seriesGoals[a][s])&&l.globals.seriesGoals[a][s].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,u={strokeHeight:\"x\"===t?0:l.globals.markers.size[a],strokeWidth:\"x\"===t?l.globals.markers.size[a]:0,strokeDashArray:0,strokeLineCap:\"round\",strokeColor:Array.isArray(d[a])?d[a][0]:d[a]};c(l.globals.seriesRangeStart[a][s],u),c(l.globals.seriesRangeEnd[a][s],g(g({},u),{},{strokeColor:Array.isArray(d[a])?d[a][1]:d[a]}))}return h}},{key:\"drawGoalLine\",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new k(this.barCtx.ctx),l=n.group({className:\"apexcharts-bar-goals-groups\"});l.node.classList.add(\"apexcharts-element-hidden\"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(this.barCtx.w.globals.cuid,\")\"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){if(t.x>=-1&&t.x<=n.w.globals.gridWidth+1){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)}})):Array.isArray(s)&&s.forEach((function(t){if(t.y>=-1&&t.y<=n.w.globals.gridHeight+1){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)}})),l}},{key:\"drawBarShadow\",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new k(this.barCtx.ctx),u=new m,f=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+(\"around\"===s.config.plotOptions.bar.borderRadiusApplication||\"both\"===this.arrBorderRadius[realIndex][j]?\" Z\":\" z\");return g.drawPath({d:f,fill:u.shadeColor(.5,m.rgb2hex(a)),stroke:\"none\",strokeWidth:0,fillOpacity:1,classes:\"apexcharts-bar-shadows\"})}},{key:\"getZeroValueEncounters\",value:function(t){var e,i=t.i,a=t.j,s=this.w,r=0,o=0;return(s.config.plotOptions.bar.horizontal?s.globals.series.map((function(t,e){return e})):(null===(e=s.globals.columnSeries)||void 0===e?void 0:e.i.map((function(t){return t})))||[]).forEach((function(t){var e=s.globals.seriesPercent[t][a];e&&r++,t-1})),a=this.barCtx.columnGroupIndices,s=a.indexOf(i);return s<0&&(a.push(i),s=a.length-1),{groupIndex:i,columnGroupIndex:s}}}]),t}(),St=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=a,null!==this.xyRatios&&(this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.invertedXRatio=a.invertedXRatio,this.invertedYRatio=a.invertedYRatio,this.baseLineY=a.baseLineY,this.baseLineInvertedY=a.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[];var r=new V(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex(\"desc\",[\"bar\",\"column\"]),this.columnGroupIndices=[];var o=r.getBarSeriesIndices(),n=new A(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new At(this)}return s(t,[{key:\"draw\",value:function(t,e){var i=this.w,a=new k(this.ctx),s=new A(this.ctx,i);t=s.getLogSeries(t),this.series=t,this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var r=a.group({class:\"apexcharts-bar-series apexcharts-plot-series\"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts\");for(var o=0,n=0;o0&&(this.visibleI=this.visibleI+1);var w=0,S=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[b],this.translationsIndex=b);var C=this.translationsIndex;this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var L=this.barHelpers.initialPositions();f=L.y,w=L.barHeight,h=L.yDivision,d=L.zeroW,u=L.x,S=L.barWidth,l=L.xDivision,c=L.zeroH,this.horizontal||x.push(u+S/2);var P=a.group({class:\"apexcharts-datalabels\",\"data:realIndex\":b});i.globals.delayedElements.push({el:P.node}),P.node.classList.add(\"apexcharts-element-hidden\");var M=a.group({class:\"apexcharts-bar-goals-markers\"}),I=a.group({class:\"apexcharts-bar-shadows\"});i.globals.delayedElements.push({el:I.node}),I.node.classList.add(\"apexcharts-element-hidden\");for(var T=0;T0){var R=this.barHelpers.drawBarShadow({color:\"string\"==typeof Y&&-1===(null==Y?void 0:Y.indexOf(\"url\"))?Y:m.hexToRgba(i.globals.colors[o]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:X});R&&I.add(R)}this.pathArr.push(X);var F=this.barHelpers.drawGoalLine({barXPosition:X.barXPosition,barYPosition:X.barYPosition,goalX:X.goalX,goalY:X.goalY,barHeight:w,barWidth:S});F&&M.add(F),f=X.y,u=X.x,T>0&&x.push(u+S/2),p.push(f),this.renderSeries({realIndex:b,pathFill:Y,j:T,i:o,columnGroupIndex:v,pathFrom:X.pathFrom,pathTo:X.pathTo,strokeWidth:z,elSeries:y,x:u,y:f,series:t,barHeight:Math.abs(X.barHeight?X.barHeight:w),barWidth:Math.abs(X.barWidth?X.barWidth:S),elDataLabelsWrap:P,elGoalsMarkers:M,elBarShadows:I,visibleSeries:this.visibleI,type:\"bar\"})}i.globals.seriesXvalues[b]=x,i.globals.seriesYvalues[b]=p,r.add(y)}return r}},{key:\"renderSeries\",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.columnGroupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,f=t.y2,p=t.series,x=t.barHeight,b=t.barWidth,v=t.barXPosition,m=t.barYPosition,y=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=t.classes,M=this.w,I=new k(this.ctx);if(!a){var T=\"function\"==typeof M.globals.stroke.colors[e]?function(t){var e,i=M.config.stroke.colors;return Array.isArray(i)&&i.length>0&&((e=i[t])||(e=\"\"),\"function\"==typeof e)?e({value:M.globals.series[t][s],dataPointIndex:s,w:M}):e}(e):M.globals.stroke.colors[e];a=this.barOptions.distributed?M.globals.stroke.colors[s]:T}M.config.series[r].data[s]&&M.config.series[r].data[s].strokeColor&&(a=M.config.series[r].data[s].strokeColor),this.isNullValue&&(i=\"none\");var z=s/M.config.chart.animations.animateGradually.delay*(M.config.chart.animations.speed/M.globals.dataPoints)/2.4,X=I.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:M.config.stroke.lineCap,fill:i,animationDelay:z,initialSpeed:M.config.chart.animations.speed,dataChangeSpeed:M.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(L,\"-area \").concat(P),chartType:L});X.attr(\"clip-path\",\"url(#gridRectBarMask\".concat(M.globals.cuid,\")\"));var E=M.config.forecastDataPoints;E.count>0&&s>=M.globals.dataPoints-E.count&&(X.node.setAttribute(\"stroke-dasharray\",E.dashArray),X.node.setAttribute(\"stroke-width\",E.strokeWidth),X.node.setAttribute(\"fill-opacity\",E.fillOpacity)),void 0!==u&&void 0!==f&&(X.attr(\"data-range-y1\",u),X.attr(\"data-range-y2\",f)),new w(this.ctx).setSelectionFilter(X,e,s),c.add(X);var Y=new kt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:f,i:r,j:s,series:p,realIndex:e,columnGroupIndex:o,barHeight:x,barWidth:b,barXPosition:v,barYPosition:m,renderedPath:X,visibleSeries:C});return null!==Y.dataLabels&&y.add(Y.dataLabels),Y.totalDataLabels&&y.add(Y.totalDataLabels),c.add(y),A&&c.add(A),S&&c.add(S),c}},{key:\"drawBarPaths\",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,f=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*f}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var p=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:p.pathTo,pathFrom:p.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues(\"x\",r,null,d,g),barYPosition:e,barHeight:a}}},{key:\"drawColumnPaths\",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.translationsIndex,u=i.i,f=i.j,p=i.bc;if(c.globals.isXNumeric){var x=this.getBarXForNumericXAxis({x:a,j:f,realIndex:d,barWidth:o});a=x.x,e=x.barXPosition}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var b=this.barHelpers.getZeroValueEncounters({i:u,j:f}),v=b.nonZeroColumns,m=b.zeroEncounters;v>0&&(o=this.seriesLen*o/v),e=a+o*this.visibleI,e-=o*m}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[u][f],n,g);var y=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,isReversed:this.isReversed,series:this.series,realIndex:d,i:u,j:f,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:f,i:u,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:y.pathTo,pathFrom:y.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues(\"y\",null,n,u,f,g),barXPosition:e,barWidth:o}}},{key:\"getBarXForNumericXAxis\",value:function(t){var e=t.x,i=t.barWidth,a=t.realIndex,s=t.j,r=this.w,o=a;return r.globals.seriesX[a].length||(o=r.globals.maxValsInArrayIndex),r.globals.seriesX[o][s]&&(e=(r.globals.seriesX[o][s]-r.globals.minX)/this.xRatio-i*this.seriesLen/2),{barXPosition:e+i*this.visibleI,x:e}}},{key:\"getPreviousPath\",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),Ct=function(t){h(a,St);var e=o(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:\"draw\",value:function(t,e){var i=this,a=this.w;this.graphics=new k(this.ctx),this.bar=new St(this.ctx,this.xyRatios);var s=new A(this.ctx,a);t=s.getLogSeries(t),this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),\"100%\"===a.config.chart.stackType&&(t=a.globals.comboCharts?e.map((function(t){return a.globals.seriesPercent[t]})):a.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var r=this.graphics.group({class:\"apexcharts-bar-series apexcharts-plot-series\"}),o=0,n=0,l=function(s,l){var h=void 0,c=void 0,d=void 0,u=void 0,f=a.globals.comboCharts?e[s]:s,p=i.barHelpers.getGroupIndex(f),x=p.groupIndex,b=p.columnGroupIndex;i.groupCtx=i[a.globals.seriesGroups[x]];var v=[],y=[],w=0;i.yRatio.length>1&&(i.yaxisIndex=a.globals.seriesYAxisReverseMap[f][0],w=f),i.isReversed=a.config.yaxis[i.yaxisIndex]&&a.config.yaxis[i.yaxisIndex].reversed;var k=i.graphics.group({class:\"apexcharts-series\",seriesName:m.escapeString(a.globals.seriesNames[f]),rel:s+1,\"data:realIndex\":f});i.ctx.series.addCollapsedClassToSeries(k,f);var A=i.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":f}),S=i.graphics.group({class:\"apexcharts-bar-goals-markers\"}),C=0,L=0,P=i.initialPositions(o,n,h,c,d,u,w);n=P.y,C=P.barHeight,c=P.yDivision,u=P.zeroW,o=P.x,L=P.barWidth,h=P.xDivision,d=P.zeroH,a.globals.barHeight=C,a.globals.barWidth=L,i.barHelpers.initializeStackedXYVars(i),1===i.groupCtx.prevY.length&&i.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(i.groupCtx.prevY[0]=i.groupCtx.prevY[0].map((function(){return d})),i.groupCtx.prevYF[0]=i.groupCtx.prevYF[0].map((function(){return 0})));for(var M=0;M0&&(Y=\"apexcharts-flip-x\"):\"bottom\"===i.barHelpers.arrBorderRadius[f][M]&&a.globals.series[f][M]>0&&(Y=\"apexcharts-flip-y\"),k=i.renderSeries({realIndex:f,pathFill:E,j:M,i:s,columnGroupIndex:b,pathFrom:z.pathFrom,pathTo:z.pathTo,strokeWidth:I,elSeries:k,x:o,y:n,series:t,barHeight:C,barWidth:L,elDataLabelsWrap:A,elGoalsMarkers:S,type:\"bar\",visibleSeries:b,classes:Y})}a.globals.seriesXvalues[f]=v,a.globals.seriesYvalues[f]=y,i.groupCtx.prevY.push(i.groupCtx.yArrj),i.groupCtx.prevYF.push(i.groupCtx.yArrjF),i.groupCtx.prevYVal.push(i.groupCtx.yArrjVal),i.groupCtx.prevX.push(i.groupCtx.xArrj),i.groupCtx.prevXF.push(i.groupCtx.xArrjF),i.groupCtx.prevXVal.push(i.groupCtx.xArrjVal),r.add(k)},h=0,c=0;h1?l=(i=h.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:-1===String(d).indexOf(\"%\")?l=parseInt(d,10):l*=parseInt(d,10)/100,s=this.isReversed?this.baseLineY[o]:h.globals.gridHeight-this.baseLineY[o],t=h.globals.padHorizontal+(i-l)/2}var g=h.globals.barGroups.length||1;return{x:t,y:e,yDivision:a,xDivision:i,barHeight:n/g,barWidth:l/g,zeroH:s,zeroW:r}}},{key:\"drawStackedBarPaths\",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.columnGroupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+l*a,f=i.i,p=i.j,x=i.realIndex,b=i.translationsIndex,v=0,m=0;m0){var w=r;this.groupCtx.prevXVal[y-1][p]<0?w=this.series[f][p]>=0?this.groupCtx.prevX[y-1][p]+v-2*(this.isReversed?v:0):this.groupCtx.prevX[y-1][p]:this.groupCtx.prevXVal[y-1][p]>=0&&(w=this.series[f][p]>=0?this.groupCtx.prevX[y-1][p]:this.groupCtx.prevX[y-1][p]-v+2*(this.isReversed?v:0)),e=w}else e=r;o=null===this.series[f][p]?e:e+this.series[f][p]/this.invertedYRatio-2*(this.isReversed?this.series[f][p]/this.invertedYRatio:0);var k=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,isReversed:this.isReversed,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:f,j:p,w:g});return this.barHelpers.barBackground({j:p,i:f,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:k.pathTo,pathFrom:k.pathFrom,goalX:this.barHelpers.getGoalValues(\"x\",r,null,f,p,b),barXPosition:e,barYPosition:u,x:o,y:n}}},{key:\"drawStackedColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.columnGroupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc,f=e.realIndex,p=e.translationsIndex;if(c.globals.isXNumeric){var x=c.globals.seriesX[f][g];x||(x=0),i=(x-c.globals.minX)/this.xRatio-r/2*c.globals.barGroups.length}for(var b,v=i+n*r,m=0,y=0;y0&&!c.globals.isXNumeric||w>0&&c.globals.isXNumeric&&c.globals.seriesX[f-1][g]===c.globals.seriesX[f][g]){var k,A,S,C=Math.min(this.yRatio.length+1,f+1);if(void 0!==this.groupCtx.prevY[w-1]&&this.groupCtx.prevY[w-1].length)for(var L=1;L=0?S-m+2*(this.isReversed?m:0):S;break}if((null===(T=this.groupCtx.prevYVal[w-M])||void 0===T?void 0:T[g])>=0){A=this.series[d][g]>=0?S:S+m-2*(this.isReversed?m:0);break}}void 0===A&&(A=c.globals.gridHeight),b=null!==(k=this.groupCtx.prevYF[0])&&void 0!==k&&k.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,w).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:A}else b=o;a=this.series[d][g]?b-this.series[d][g]/this.yRatio[p]+2*(this.isReversed?this.series[d][g]/this.yRatio[p]:0):b;var z=this.barHelpers.getColumnPaths({barXPosition:v,barWidth:r,y1:b,y2:a,yRatio:this.yRatio[p],strokeWidth:this.strokeWidth,isReversed:this.isReversed,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:v,x2:r,elSeries:h}),{pathTo:z.pathTo,pathFrom:z.pathFrom,goalY:this.barHelpers.getGoalValues(\"y\",null,o,d,g),barXPosition:v,x:c.globals.isXNumeric?i:i+s,y:a}}}]),a}(),Lt=function(t){h(a,St);var e=o(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:\"draw\",value:function(t,e,i){var a=this,s=this.w,r=new k(this.ctx),o=s.globals.comboCharts?e:s.config.chart.type,n=new N(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var l=new A(this.ctx,s);t=l.getLogSeries(t),this.series=t,this.yRatio=l.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var h=r.group({class:\"apexcharts-\".concat(o,\"-series apexcharts-plot-series\")}),c=function(e){a.isBoxPlot=\"boxPlot\"===s.config.chart.type||\"boxPlot\"===s.config.series[e].type;var o,l,c,d,u=void 0,f=void 0,p=[],x=[],b=s.globals.comboCharts?i[e]:e,v=a.barHelpers.getGroupIndex(b).columnGroupIndex,y=r.group({class:\"apexcharts-series\",seriesName:m.escapeString(s.globals.seriesNames[b]),rel:e+1,\"data:realIndex\":b});a.ctx.series.addCollapsedClassToSeries(y,b),t[e].length>0&&(a.visibleI=a.visibleI+1);var w,k,A=0;a.yRatio.length>1&&(a.yaxisIndex=s.globals.seriesYAxisReverseMap[b][0],A=b);var S=a.barHelpers.initialPositions();f=S.y,w=S.barHeight,l=S.yDivision,d=S.zeroW,u=S.x,k=S.barWidth,o=S.xDivision,c=S.zeroH,x.push(u+k/2);for(var C=r.group({class:\"apexcharts-datalabels\",\"data:realIndex\":b}),L=function(i){var r=a.barHelpers.getStrokeWidth(e,i,b),h=null,m={indexes:{i:e,j:i,realIndex:b,translationsIndex:A},x:u,y:f,strokeWidth:r,elSeries:y};h=a.isHorizontal?a.drawHorizontalBoxPaths(g(g({},m),{},{yDivision:l,barHeight:w,zeroW:d})):a.drawVerticalBoxPaths(g(g({},m),{},{xDivision:o,barWidth:k,zeroH:c})),f=h.y,u=h.x,i>0&&x.push(u+k/2),p.push(f),h.pathTo.forEach((function(o,l){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?h.color[l]:s.globals.stroke.colors[e],d=n.fillPath({seriesNumber:b,dataPointIndex:i,color:h.color[l],value:t[e][i]});a.renderSeries({realIndex:b,pathFill:d,lineFill:c,j:i,i:e,pathFrom:h.pathFrom,pathTo:o,strokeWidth:r,elSeries:y,x:u,y:f,series:t,columnGroupIndex:v,barHeight:w,barWidth:k,elDataLabelsWrap:C,visibleSeries:a.visibleI,type:s.config.chart.type})}))},P=0;Pb.c&&(d=!1);var y=Math.min(b.o,b.c),w=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(y=r,w=r):(y=r-y/p,w=r-w/p,v=r-b.h/p,m=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,y);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,y)+l.line(S+s/2,y)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,y)+l.line(S+s,y)+l.line(S+s,A)+l.line(S,A)+l.line(S,y+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,m)+l.line(S+s-s/4,m)+l.line(S+s/4,m)+l.line(S+s/2,m)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,A)+\"z\"]:[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,y)+l.line(S+s/2,y)+l.line(S+s/2,m)+l.line(S+s/2,y)+l.line(S,y)+l.line(S,w-o/2)],L+=l.move(S,y),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:w,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:\"drawHorizontalBoxPaths\",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new k(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),m=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var y=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,m=r+f.m/g);var w=l.move(r,y),A=l.move(b,y+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),w=[l.move(b,y)+l.line(b,y+s/2)+l.line(p,y+s/2)+l.line(p,y+s/2-s/4)+l.line(p,y+s/2+s/4)+l.line(p,y+s/2)+l.line(b,y+s/2)+l.line(b,y+s)+l.line(m,y+s)+l.line(m,y)+l.line(b+o/2,y),l.move(m,y)+l.line(m,y+s)+l.line(v,y+s)+l.line(v,y+s/2)+l.line(x,y+s/2)+l.line(x,y+s-s/4)+l.line(x,y+s/4)+l.line(x,y+s/2)+l.line(v,y+s/2)+l.line(v,y)+l.line(m,y)+\"z\"],A+=l.move(b,y),n.globals.isXNumeric||(i+=a),{pathTo:w,pathFrom:A,x:v,y:i,barYPosition:y,color:d}}},{key:\"getOHLCValue\",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),a}(),Pt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"checkColorRange\",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:\"getShadeColor\",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,\"treemap\"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new m;if(s.config.plotOptions[t].enableShades)if(\"dark\"===this.w.config.theme.mode){var c=h.shadeColor(-1*r,n.color);l=m.hexToRgba(m.isColorHex(c)?c:m.rgb2hex(c),s.config.fill.opacity)}else{var d=h.shadeColor(r,n.color);l=m.hexToRgba(m.isColorHex(d)?d:m.rgb2hex(d),s.config.fill.opacity)}return{color:l,colorProps:n}}},{key:\"determineColor\",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&\"treemap\"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,p(a.globals.series[e])),c=Math.max.apply(Math,p(a.globals.series[e]));r.distributed||\"heatmap\"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:\"calculateDataLabels\",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new k(this.ctx),c=new G(this.ctx),d=null;if(l.enabled){d=h.group({class:\"apexcharts-data-labels\"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:\"addListeners\",value:function(t){var e=new k(this.ctx);t.node.addEventListener(\"mouseenter\",e.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",e.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mousedown\",e.pathMouseDown.bind(this,t))}}]),t}(),Mt=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w,this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new Pt(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return s(t,[{key:\"draw\",value:function(t){var e=this.w,i=new k(this.ctx),a=i.group({class:\"apexcharts-heatmap\"});a.attr(\"clip-path\",\"url(#gridRectMask\".concat(e.globals.cuid,\")\"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:\"apexcharts-series apexcharts-heatmap-series\",seriesName:m.escapeString(e.globals.seriesNames[h]),rel:h+1,\"data:realIndex\":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new w(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=v.x,S=v.y,C=100*u/this.fullAngle+\"%\";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(h=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(h)>this.fullAngle&&(h-=this.fullAngle);var c=Math.PI*(h-90)/180,d=i.centerX+r*Math.cos(l),g=i.centerY+r*Math.sin(l),u=i.centerX+r*Math.cos(c),f=i.centerY+r*Math.sin(c),p=m.polarToCartesian(i.centerX,i.centerY,i.donutSize,h),x=m.polarToCartesian(i.centerX,i.centerY,i.donutSize,n),b=s>180?1:0,v=[\"M\",d,g,\"A\",r,r,0,b,1,u,f];return e=\"donut\"===i.chartType?[].concat(v,[\"L\",p.x,p.y,\"A\",i.donutSize,i.donutSize,0,b,0,x.x,x.y,\"L\",d,g,\"z\"]).join(\" \"):\"pie\"===i.chartType||\"polarArea\"===i.chartType?[].concat(v,[\"L\",i.centerX,i.centerY,\"L\",d,g]).join(\" \"):[].concat(v).join(\" \"),o.roundPathCorners(e,2*this.strokeWidth)}},{key:\"drawPolarElements\",value:function(t){var e=this.w,i=new $(this.ctx),a=new k(this.ctx),s=new It(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),n=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");i=(0,t.value.formatter)(i,r),a||\"function\"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=this.donutDataLabels.total.label?t.name.formatter(e,l,r):\"\",null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:\"printDataLabelsInner\",value:function(t,e){var i=this.w,a=t.getAttribute(\"data:value\"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");null!==r&&(r.style.opacity=1)}},{key:\"drawSpokes\",value:function(t){var e=this,i=this.w,a=new k(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n0&&(p=e.getPreviousPath(o));for(var x=0;x=10?t.x>0?(i=\"start\",a+=10):t.x<0&&(i=\"end\",a-=10):i=\"middle\",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:\"getPreviousPath\",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:\"getDataPointsPos\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:\"\",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:\"none\",strokeOpacity:h.opacity,classes:\"apexcharts-radialbar-area\"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr(\"id\",\"apexcharts-radialbarTrack-\"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:\"drawArcs\",value:function(t){var e=this.w,i=new k(this.ctx),a=new N(this.ctx),s=new w(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||\"transparent\"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;if(this.radialDataLabels.show){var f=e.globals.dom.Paper.select(\".apexcharts-datalabels-group\").members[0];u=this.renderInnerDataLabels(f,this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})}\"back\"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var x=p?t.series.length-1:0;p?x>=0:x100?100:t.series[x])/100,C=Math.round(this.totalAngle*S)+this.startAngle,L=void 0;e.globals.dataChanged&&(A=this.startAngle,L=Math.round(this.totalAngle*m.negToZero(e.globals.previousPaths[x])/100)+A),Math.abs(C)+Math.abs(y)>360&&(C-=.01),Math.abs(L)+Math.abs(A)>360&&(L-=.01);var P=C-y,M=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[x]:e.config.stroke.dashArray,I=i.drawPath({d:\"\",stroke:v,strokeWidth:o,fill:\"none\",fillOpacity:e.config.fill.opacity,classes:\"apexcharts-radialbar-area apexcharts-radialbar-slice-\"+x,strokeDashArray:M});if(k.setAttrs(I.node,{\"data:angle\":P,\"data:value\":t.series[x]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,x)}if(s.setSelectionFilter(I,0,x),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:x}),this.barLabels.enabled){var z=m.polarToCartesian(t.centerX,t.centerY,t.size,y),X=this.barLabels.formatter(e.globals.seriesNames[x],{seriesIndex:x,w:e}),E=[\"apexcharts-radialbar-label\"];this.barLabels.onClick||E.push(\"apexcharts-no-click\");var Y=this.barLabels.useSeriesColors?e.globals.colors[x]:e.config.chart.foreColor;Y||(Y=e.config.chart.foreColor);var R=z.x+this.barLabels.offsetX,F=z.y+this.barLabels.offsetY,D=i.drawText({x:R,y:F,text:X,textAnchor:\"end\",dominantBaseline:\"middle\",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:Y,cssClass:E.join(\" \")});D.on(\"click\",this.onBarLabelClick),D.attr({rel:x+1}),0!==y&&D.attr({\"transform-origin\":\"\".concat(R,\" \").concat(F),transform:\"rotate(\".concat(y,\" 0 0)\")}),b.add(D)}var H=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(H=e.config.chart.animations.speed),e.globals.dataChanged&&(H=e.config.chart.animations.dynamicAnimation.speed),this.animDur=H/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:C,startAngle:y,prevEndAngle:L,prevStartAngle:A,size:t.size,i:x,totalItems:2,animBeginArr:this.animBeginArr,dur:H,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:\"drawHollow\",value:function(t){var e=new k(this.ctx).drawCircle(2*t.size);return e.attr({class:\"apexcharts-radialbar-hollow\",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:\"drawHollowImage\",value:function(t,e,i,a){var s=this.w,r=new N(this.ctx),o=m.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:\"pattern\".concat(s.globals.cuid).concat(o)}),a=\"url(#pattern\".concat(s.globals.cuid).concat(o,\")\");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:\"getStrokeWidth\",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}},{key:\"onBarLabelClick\",value:function(t){var e=parseInt(t.target.getAttribute(\"rel\"),10)-1,i=this.barLabels.onClick,a=this.w;i&&i(a.globals.seriesNames[e],{w:a,seriesIndex:e})}}]),r}(),Et=function(t){h(a,St);var e=o(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:\"draw\",value:function(t,e){var i=this.w,a=new k(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=i.globals.seriesRangeStart,this.seriesRangeEnd=i.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var s=a.group({class:\"apexcharts-rangebar-series apexcharts-plot-series\"}),r=0;r0&&(this.visibleI=this.visibleI+1);var x=0,b=0,v=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[u][0],v=u);var y=this.barHelpers.initialPositions();d=y.y,h=y.zeroW,c=y.x,b=y.barWidth,x=y.barHeight,o=y.xDivision,n=y.yDivision,l=y.zeroH;for(var w=a.group({class:\"apexcharts-datalabels\",\"data:realIndex\":u}),A=a.group({class:\"apexcharts-rangebar-goals-markers\"}),S=0;S0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(f)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(f))+h*b)):(b>-1&&!g.globals.timescaleLabels.length&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(f)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(f))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:\"drawRangeColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=e.realIndex,d=e.translationsIndex,g=this.yRatio[d],u=this.getRangeValue(c,h),f=Math.min(u.start,u.end),p=Math.max(u.start,u.end);void 0===this.series[l][h]||null===this.series[l][h]?f=o:(f=o-f/g,p=o-p/g);var x=Math.abs(p-f),b=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:f,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:c,i:c,j:h,w:n});if(n.globals.isXNumeric){var v=this.getBarXForNumericXAxis({x:i,j:h,realIndex:c,barWidth:s});i=v.x,r=v.barXPosition}else i+=a;return{pathTo:b.pathTo,pathFrom:b.pathFrom,barHeight:x,x:i,y:u.start<0&&u.end<0?f:p,goalY:this.barHelpers.getGoalValues(\"y\",null,o,l,h,d),barXPosition:r}}},{key:\"preventBarOverflow\",value:function(t){var e=this.w;return t<0&&(t=0),t>e.globals.gridWidth&&(t=e.globals.gridWidth),t}},{key:\"drawRangeBarPaths\",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=e.realIndex,d=e.j,g=this.preventBarOverflow(l+a/this.invertedYRatio),u=this.preventBarOverflow(l+s/this.invertedYRatio),f=this.getRangeValue(c,d),p=Math.abs(u-g),x=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:g,x2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:c,realIndex:c,j:d,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:x.pathTo,pathFrom:x.pathFrom,barWidth:p,x:f.start<0&&f.end<0?g:u,goalX:this.barHelpers.getGoalValues(\"x\",l,null,c,d),y:i}}},{key:\"getRangeValue\",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),a}(),Yt=function(){function t(e){i(this,t),this.w=e.w,this.lineCtx=e}return s(t,[{key:\"sameValueSeriesFix\",value:function(t,e){var i=this.w;if((\"gradient\"===i.config.fill.type||\"gradient\"===i.config.fill.type[t])&&new A(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:\"calculatePoints\",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(m.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(m.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(m.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:\"checkPreviousPaths\",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&(\"line\"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):\"area\"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:\"determineFirstPrevY\",value:function(t){var e,i,a,s=t.i,r=t.realIndex,o=t.series,n=t.prevY,l=t.lineYPosition,h=t.translationsIndex,c=this.w,d=c.config.chart.stacked&&!c.globals.comboCharts||c.config.chart.stacked&&c.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||\"bar\"===(null===(e=this.w.config.series[r])||void 0===e?void 0:e.type)||\"column\"===(null===(i=this.w.config.series[r])||void 0===i?void 0:i.type));if(void 0!==(null===(a=o[s])||void 0===a?void 0:a[0]))n=(l=d&&s>0?this.lineCtx.prevSeriesY[s-1][0]:this.lineCtx.zeroY)-o[s][0]/this.lineCtx.yRatio[h]+2*(this.lineCtx.isReversed?o[s][0]/this.lineCtx.yRatio[h]:0);else if(d&&s>0&&void 0===o[s][0])for(var g=s-1;g>=0;g--)if(null!==o[g][0]&&void 0!==o[g][0]){n=l=this.lineCtx.prevSeriesY[g][0];break}return{prevY:n,lineYPosition:l}}}]),t}(),Rt=function(t){for(var e,i,a,s,r=function(t){for(var e=[],i=t[0],a=t[1],s=e[0]=Ht(i,a),r=1,o=t.length-1;r9&&(s=3*a/Math.sqrt(s),r[l]=s*e,r[l+1]=s*i);for(var h=0;h<=o;h++)s=(t[Math.min(o,h+1)][0]-t[Math.max(0,h-1)][0])/(6*(1+r[h]*r[h])),n.push([s||0,r[h]*s||0]);return n},Ft=function(t){var e=Rt(t),i=t[1],a=t[0],s=[],r=e[1],o=e[0];s.push(a,[a[0]+o[0],a[1]+o[1],i[0]-r[0],i[1]-r[1],i[0],i[1]]);for(var n=2,l=e.length;n1&&a[1].length<6){var s=a[0].length;a[1]=[2*a[0][s-2]-a[0][s-4],2*a[0][s-1]-a[0][s-3]].concat(a[1])}a[0]=a[0].slice(-2)}return a};function Ht(t,e){return(e[1]-t[1])/(e[0]-t[0])}var Ot=function(){function t(e,a,s){i(this,t),this.ctx=e,this.w=e.w,this.xyRatios=a,this.pointsChart=!(\"bubble\"!==this.w.config.chart.type&&\"scatter\"!==this.w.config.chart.type)||s,this.scatter=new B(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Yt(this),this.markers=new W(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return s(t,[{key:\"draw\",value:function(t,e,i,a){var s,r=this.w,o=new k(this.ctx),n=r.globals.comboCharts?e:r.config.chart.type,l=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),h=new A(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio),this.prevSeriesY=[];for(var c=[],d=0;d1?u:0;this._initSerieVariables(t,d,u);var p=[],x=[],b=[],v=r.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,u),r.globals.isXNumeric&&r.globals.seriesX.length>0&&(v=(r.globals.seriesX[u][0]-r.globals.minX)/this.xRatio),b.push(v);var m,y=v,w=void 0,S=y,C=this.zeroY,L=this.zeroY;C=this.lineHelpers.determineFirstPrevY({i:d,realIndex:u,series:t,prevY:C,lineYPosition:0,translationsIndex:f}).prevY,\"monotoneCubic\"===r.config.stroke.curve&&null===t[d][0]?p.push(null):p.push(C),m=C;\"rangeArea\"===n&&(w=L=this.lineHelpers.determineFirstPrevY({i:d,realIndex:u,series:a,prevY:L,lineYPosition:0,translationsIndex:f}).prevY,x.push(null!==p[0]?L:null));var P=this._calculatePathsFrom({type:n,series:t,i:d,realIndex:u,translationsIndex:f,prevX:S,prevY:C,prevY2:L}),M=[p[0]],I=[x[0]],T={type:n,series:t,realIndex:u,translationsIndex:f,i:d,x:v,y:1,pX:y,pY:m,pathsFrom:P,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:b,yArrj:p,y2Arrj:x,seriesRangeEnd:a},z=this._iterateOverDataPoints(g(g({},T),{},{iterations:\"rangeArea\"===n?t[d].length-1:void 0,isRangeStart:!0}));if(\"rangeArea\"===n){for(var X=this._calculatePathsFrom({series:a,i:d,realIndex:u,prevX:S,prevY:L}),E=this._iterateOverDataPoints(g(g({},T),{},{series:a,xArrj:[v],yArrj:M,y2Arrj:I,pY:w,areaPaths:z.areaPaths,pathsFrom:X,iterations:a[d].length-1,isRangeStart:!1})),Y=z.linePaths.length/2,R=0;R=0;F--)l.add(c[F]);else for(var D=0;D1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[i],r=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[r]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[r]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||\"end\"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:\"apexcharts-series\",zIndex:void 0!==a.config.series[i].zIndex?a.config.series[i].zIndex:i,seriesName:m.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:\"apexcharts-series-markers-wrap\",\"data:realIndex\":i}),this.elDataLabelsWrap=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":i});var o=t[e].length===a.globals.dataPoints;this.elSeries.attr({\"data:longestSeries\":o,rel:e+1,\"data:realIndex\":i}),this.appendPathFrom=!0}},{key:\"_calculatePathsFrom\",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.translationsIndex,c=t.prevX,d=t.prevY,g=t.prevY2,u=this.w,f=new k(this.ctx);if(null===o[n][0]){for(var p=0;p0){var x=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=x.pathFromLine,s=x.pathFromArea}return{prevX:c,prevY:d,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:\"_handlePaths\",value:function(t){var e=t.type,i=t.realIndex,a=t.i,s=t.paths,r=this.w,o=new k(this.ctx),n=new N(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var l=r.config.forecastDataPoints;if(l.count>0&&\"rangeArea\"!==e){var h=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-l.count-1],c=o.drawRect(h,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(c.node);var d=o.drawRect(0,0,h,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(d.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var u={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(e)};if(\"area\"===e)for(var f=n.fillPath({seriesNumber:i}),p=0;p0&&\"rangeArea\"!==e){var S=o.renderPaths(w);S.node.setAttribute(\"stroke-dasharray\",l.dashArray),l.strokeWidth&&S.node.setAttribute(\"stroke-width\",l.strokeWidth),this.elSeries.add(S),S.attr(\"clip-path\",\"url(#forecastMask\".concat(r.globals.cuid,\")\")),A.attr(\"clip-path\",\"url(#nonForecastMask\".concat(r.globals.cuid,\")\"))}}}}},{key:\"_iterateOverDataPoints\",value:function(t){var e,i,a=this,s=t.type,r=t.series,o=t.iterations,n=t.realIndex,l=t.translationsIndex,h=t.i,c=t.x,d=t.y,g=t.pX,u=t.pY,f=t.pathsFrom,p=t.linePaths,x=t.areaPaths,b=t.seriesIndex,v=t.lineYPosition,y=t.xArrj,w=t.yArrj,A=t.y2Arrj,S=t.isRangeStart,C=t.seriesRangeEnd,L=this.w,P=new k(this.ctx),M=this.yRatio,I=f.prevY,T=f.linePath,z=f.areaPath,X=f.pathFromLine,E=f.pathFromArea,Y=m.isNumber(L.globals.minYArr[n])?L.globals.minYArr[n]:L.globals.minY;o||(o=L.globals.dataPoints>1?L.globals.dataPoints-1:L.globals.dataPoints);var R=function(t,e){return e-t/M[l]+2*(a.isReversed?t/M[l]:0)},F=d,D=L.config.chart.stacked&&!L.globals.comboCharts||L.config.chart.stacked&&L.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||\"bar\"===(null===(e=this.w.config.series[n])||void 0===e?void 0:e.type)||\"column\"===(null===(i=this.w.config.series[n])||void 0===i?void 0:i.type)),H=L.config.stroke.curve;Array.isArray(H)&&(H=Array.isArray(b)?H[b[h]]:H[h]);for(var O,N=0,W=0;W0&&L.globals.collapsedSeries.length0;e--){if(!(L.globals.collapsedSeriesIndices.indexOf((null==b?void 0:b[e])||e)>-1))return e;e--}return 0}(h-1)][W+1]}else v=this.zeroY;else v=this.zeroY;B?d=R(Y,v):(d=R(r[h][W+1],v),\"rangeArea\"===s&&(F=R(C[h][W+1],v))),y.push(c),!B||\"smooth\"!==L.config.stroke.curve&&\"monotoneCubic\"!==L.config.stroke.curve?(w.push(d),A.push(F)):(w.push(null),A.push(null));var V=this.lineHelpers.calculatePoints({series:r,x:c,y:d,realIndex:n,i:h,j:W,prevY:I}),j=this._createPaths({type:s,series:r,i:h,realIndex:n,j:W,x:c,y:d,y2:F,xArrj:y,yArrj:w,y2Arrj:A,pX:g,pY:u,pathState:N,segmentStartX:O,linePath:T,areaPath:z,linePaths:p,areaPaths:x,curve:H,isRangeStart:S});x=j.areaPaths,p=j.linePaths,g=j.pX,u=j.pY,N=j.pathState,O=j.segmentStartX,z=j.areaPath,T=j.linePath,!this.appendPathFrom||\"monotoneCubic\"===H&&\"rangeArea\"===s||(X+=P.line(c,this.zeroY),E+=P.line(c,this.zeroY)),this.handleNullDataPoints(r,V,h,W,n),this._handleMarkersAndLabels({type:s,pointsPos:V,i:h,j:W,realIndex:n,isRangeStart:S})}return{yArrj:w,xArrj:y,pathFromArea:E,areaPaths:x,pathFromLine:X,linePaths:p,linePath:T,areaPath:z}}},{key:\"_handleMarkersAndLabels\",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new G(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:\"_createPaths\",value:function(t){var e=t.type,i=t.series,a=t.i;t.realIndex;var s,r=t.j,o=t.x,n=t.y,l=t.xArrj,h=t.yArrj,c=t.y2,d=t.y2Arrj,g=t.pX,u=t.pY,f=t.pathState,p=t.segmentStartX,x=t.linePath,b=t.areaPath,v=t.linePaths,m=t.areaPaths,y=t.curve,w=t.isRangeStart,A=new k(this.ctx),S=this.areaBottomY,C=\"rangeArea\"===e,L=\"rangeArea\"===e&&w;switch(y){case\"monotoneCubic\":var P=w?h:d;switch(f){case 0:if(null===P[r+1])break;f=1;case 1:if(!(C?l.length===i[a].length:r===i[a].length-2))break;case 2:var M=w?l:l.slice().reverse(),I=w?P:P.slice().reverse(),T=(s=I,M.map((function(t,e){return[t,s[e]]})).filter((function(t){return null!==t[1]}))),z=T.length>1?Ft(T):T,X=[];C&&(L?m=T:X=m.reverse());var E=0,Y=0;if(function(t,e){for(var i=function(t){var e=[],i=0;return t.forEach((function(t){null!==t?i++:i>0&&(e.push(i),i=0)})),i>0&&e.push(i),e}(t),a=[],s=0,r=0;s4?(e+=\"C\".concat(a[0],\", \").concat(a[1]),e+=\", \".concat(a[2],\", \").concat(a[3]),e+=\", \".concat(a[4],\", \").concat(a[5])):s>2&&(e+=\"S\".concat(a[0],\", \").concat(a[1]),e+=\", \".concat(a[2],\", \").concat(a[3]))}return e}(t),i=Y,a=(Y+=t.length)-1;L?x=A.move(T[i][0],T[i][1])+e:C?x=A.move(X[i][0],X[i][1])+A.line(T[i][0],T[i][1])+e+A.line(X[a][0],X[a][1]):(x=A.move(T[i][0],T[i][1])+e,b=x+A.line(T[a][0],S)+A.line(T[i][0],S)+\"z\",m.push(b)),v.push(x)})),C&&E>1&&!L){var R=v.slice(E).reverse();v.splice(E),R.forEach((function(t){return v.push(t)}))}f=0}break;case\"smooth\":var F=.35*(o-g);if(null===i[a][r])f=0;else switch(f){case 0:if(p=g,x=L?A.move(g,d[r])+A.line(g,u):A.move(g,u),b=A.move(g,u),null===i[a][r+1]){v.push(x),m.push(b);break}if(f=1,r=i[a].length-2&&(L&&(x+=A.curve(o,n,o,n,o,c)+A.move(o,c)),b+=A.curve(o,n,o,n,o,S)+A.line(p,S)+\"z\",v.push(x),m.push(b),f=-1)}}g=o,u=n;break;default:var O=function(t,e,i){var a=[];switch(t){case\"stepline\":a=A.line(e,null,\"H\")+A.line(null,i,\"V\");break;case\"linestep\":a=A.line(null,i,\"V\")+A.line(e,null,\"H\");break;case\"straight\":a=A.line(e,i)}return a};if(null===i[a][r])f=0;else switch(f){case 0:if(p=g,x=L?A.move(g,d[r])+A.line(g,u):A.move(g,u),b=A.move(g,u),null===i[a][r+1]){v.push(x),m.push(b);break}if(f=1,r=i[a].length-2&&(L&&(x+=A.line(o,c)),b+=A.line(o,S)+A.line(p,S)+\"z\",v.push(x),m.push(b),f=-1)}}g=o,u=n}return{linePaths:v,areaPaths:m,pX:g,pY:u,pathState:f,segmentStartX:p,linePath:x,areaPath:b}}},{key:\"handleNullDataPoints\",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.strokeWidth-r.config.markers.strokeWidth/2;o>0||(o=0);var n=this.markers.plotChartMarkers(e,s,a+1,o,!0);null!==n&&this.elPointsMain.add(n)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute(\"transform\",\"rotate(-90 \".concat(h.x,\" \").concat(h.y,\") translate(\").concat(l.height/3,\")\"))}}},{key:\"truncateLabels\",value:function(t,e,i,a,s,r){var o=new k(this.ctx),n=o.getTextRects(t,e).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,l=o.getTextBasedOnMaxWidth({text:t,maxWidth:n,fontSize:e});return t.length!==l.length&&n/e<5?\"\":l}},{key:\"animateTreemap\",value:function(t,e,i,a){var s=new y(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Gt=86400,Vt=10/Gt,jt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return s(t,[{key:\"calculateTimeScaleTicks\",value:function(t,e){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new L(this.ctx),r=(e-t)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r5e4&&(a.globals.disableZoomOut=!0);var o=s.getTimeUnitsfromTimestamp(t,e,this.utc),n=a.globals.gridWidth/r,l=n/24,h=l/60,c=h/60,d=Math.floor(24*r),u=Math.floor(1440*r),f=Math.floor(r*Gt),p=Math.floor(r),x=Math.floor(r/30),b=Math.floor(r/365),v={minMillisecond:o.minMillisecond,minSecond:o.minSecond,minMinute:o.minMinute,minHour:o.minHour,minDate:o.minDate,minMonth:o.minMonth,minYear:o.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:n,hoursWidthOnXAxis:l,minutesWidthOnXAxis:h,secondsWidthOnXAxis:c,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:d,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case\"years\":this.generateYearScale(m);break;case\"months\":case\"half_year\":this.generateMonthScale(m);break;case\"months_days\":case\"months_fortnight\":case\"days\":case\"week_days\":this.generateDayScale(m);break;case\"hours\":this.generateHourScale(m);break;case\"minutes_fives\":case\"minutes\":this.generateMinuteScale(m);break;case\"seconds_tens\":case\"seconds_fives\":case\"seconds\":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return\"month\"===t.unit?g(g({},e),{},{day:1,value:t.value+1}):\"day\"===t.unit||\"hour\"===t.unit?g(g({},e),{},{value:t.value}):\"minute\"===t.unit?g(g({},e),{},{value:t.value,minute:t.value}):\"second\"===t.unit?g(g({},e),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),r=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),y.length>s&&(e=Math.floor(y.length/s));var o=!1,n=!1;switch(i.tickInterval){case\"years\":\"year\"===t.unit&&(o=!0);break;case\"half_year\":e=7,\"year\"===t.unit&&(o=!0);break;case\"months\":e=1,\"year\"===t.unit&&(o=!0);break;case\"months_fortnight\":e=15,\"year\"!==t.unit&&\"month\"!==t.unit||(o=!0),30===r&&(n=!0);break;case\"months_days\":e=10,\"month\"===t.unit&&(o=!0),30===r&&(n=!0);break;case\"week_days\":e=8,\"month\"===t.unit&&(o=!0);break;case\"days\":e=1,\"month\"===t.unit&&(o=!0);break;case\"hours\":\"day\"===t.unit&&(o=!0);break;case\"minutes_fives\":case\"seconds_fives\":r%5!=0&&(n=!0);break;case\"seconds_tens\":r%10!=0&&(n=!0)}if(\"hours\"===i.tickInterval||\"minutes_fives\"===i.tickInterval||\"seconds_tens\"===i.tickInterval||\"seconds_fives\"===i.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:\"recalcDimensionsBasedOnFormat\",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ct(this.ctx).plotCoords()}},{key:\"determineInterval\",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval=\"years\";break;case t>800:this.tickInterval=\"half_year\";break;case t>180:this.tickInterval=\"months\";break;case t>90:this.tickInterval=\"months_fortnight\";break;case t>60:this.tickInterval=\"months_days\";break;case t>30:this.tickInterval=\"week_days\";break;case t>2:this.tickInterval=\"days\";break;case e>2.4:this.tickInterval=\"hours\";break;case i>15:this.tickInterval=\"minutes_fives\";break;case i>5:this.tickInterval=\"minutes\";break;case i>1:this.tickInterval=\"seconds_tens\";break;case 60*i>20:this.tickInterval=\"seconds_fives\";break;default:this.tickInterval=\"seconds\"}}},{key:\"generateYearScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new L(this.ctx),h=\"year\";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:m.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:m.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=m.monthMod(a+1);var g=s+d,u=m.monthMod(n),f=n;0===n&&(c=\"year\",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:m.monthMod(a)});for(var p=n+1,x=l,b=0,v=1;bo.determineDaysOfMonths(e+1,i)?(h=1,n=\"month\",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=m.monthMod(e.minMonth),n=\"month\",h=e.minDate):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:m.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u;60===d&&(g=0,f=u=e.minHour);var p=i;f>=24&&(f=0,p+=1,l=\"day\");var x=h(p,a).month;x=c(p,x),this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:m.monthMod(x)}),f++;for(var b=g,v=0;v=24)f=0,l=\"day\",x=h(p+=1,x).month,x=c(p,x);var y=this._getYear(s,x,0);b=60*r+b;var w=0===f?p:f;this.timeScaleArray.push({position:b,value:w,unit:l,hour:f,day:p,year:y,month:m.monthMod(x)}),f++}}},{key:\"generateMinuteScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,x=(60-i-e/1e3)*h,b=0;b=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:x,value:d,unit:\"minute\",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:m.monthMod(u)}),x+=l,d++}},{key:\"generateSecondScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,x=(1e3-e)/1e3*l,b=0;b=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:x,value:c,unit:\"second\",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:m.monthMod(u)}),x+=l,c++}},{key:\"createRawDateString\",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+=\"-\"+(\"0\"+t.month.toString()).slice(-2),\"day\"===t.unit?i+=\"day\"===t.unit?\"-\"+(\"0\"+e).slice(-2):\"-01\":i+=\"-\"+(\"0\"+(t.day?t.day:\"1\")).slice(-2),\"hour\"===t.unit?i+=\"hour\"===t.unit?\"T\"+(\"0\"+e).slice(-2):\"T00\":i+=\"T\"+(\"0\"+(t.hour?t.hour:\"0\")).slice(-2),\"minute\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":\"+(t.minute?(\"0\"+t.minute).slice(-2):\"00\"),\"second\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":00\",this.utc&&(i+=\".000Z\"),i}},{key:\"formatDates\",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new L(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n=\"dd MMM\",l=i.config.xaxis.labels.datetimeFormatter;\"year\"===t.unit&&(n=l.year),\"month\"===t.unit&&(n=l.month),\"day\"===t.unit&&(n=l.day),\"hour\"===t.unit&&(n=l.hour),\"minute\"===t.unit&&(n=l.minute),\"second\"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:\"removeOverlappingTS\",value:function(t){var e,i=this,a=new k(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:\"_getYear\",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),_t=function(){function t(e,a){i(this,t),this.ctx=a,this.w=a.w,this.el=e}return s(t,[{key:\"setupElements\",value:function(){var t=this.w,e=t.globals,i=t.config,a=i.chart.type;e.axisCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\",\"radar\",\"heatmap\",\"treemap\"].includes(a),e.xyCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\"].includes(a),e.isBarHorizontal=[\"bar\",\"rangeBar\",\"boxPlot\"].includes(a)&&i.plotOptions.bar.horizontal,e.chartClass=\".apexcharts\".concat(e.chartID),e.dom.baseEl=this.el,e.dom.elWrap=document.createElement(\"div\"),k.setAttrs(e.dom.elWrap,{id:e.chartClass.substring(1),class:\"apexcharts-canvas \".concat(e.chartClass.substring(1))}),this.el.appendChild(e.dom.elWrap),e.dom.Paper=new window.SVG.Doc(e.dom.elWrap),e.dom.Paper.attr({class:\"apexcharts-svg\",\"xmlns:data\":\"ApexChartsNS\",transform:\"translate(\".concat(i.chart.offsetX,\", \").concat(i.chart.offsetY,\")\")}),e.dom.Paper.node.style.background=\"dark\"!==i.theme.mode||i.chart.background?\"light\"!==i.theme.mode||i.chart.background?i.chart.background:\"#fff\":\"#424242\",this.setSVGDimensions(),e.dom.elLegendForeign=document.createElementNS(e.SVGNS,\"foreignObject\"),k.setAttrs(e.dom.elLegendForeign,{x:0,y:0,width:e.svgWidth,height:e.svgHeight}),e.dom.elLegendWrap=document.createElement(\"div\"),e.dom.elLegendWrap.classList.add(\"apexcharts-legend\"),e.dom.elLegendWrap.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),e.dom.elLegendForeign.appendChild(e.dom.elLegendWrap),e.dom.Paper.node.appendChild(e.dom.elLegendForeign),e.dom.elGraphical=e.dom.Paper.group().attr({class:\"apexcharts-inner apexcharts-graphical\"}),e.dom.elDefs=e.dom.Paper.defs(),e.dom.Paper.add(e.dom.elGraphical),e.dom.elGraphical.add(e.dom.elDefs)}},{key:\"plotChartType\",value:function(t,e){var i=this.w,a=this.ctx,s=i.config,r=i.globals,o={line:{series:[],i:[]},area:{series:[],i:[]},scatter:{series:[],i:[]},bubble:{series:[],i:[]},column:{series:[],i:[]},candlestick:{series:[],i:[]},boxPlot:{series:[],i:[]},rangeBar:{series:[],i:[]},rangeArea:{series:[],seriesRangeEnd:[],i:[]}},n=s.chart.type||\"line\",l=null,h=0;r.series.forEach((function(e,a){var s=t[a].type||n;o[s]?(\"rangeArea\"===s?(o[s].series.push(r.seriesRangeStart[a]),o[s].seriesRangeEnd.push(r.seriesRangeEnd[a])):o[s].series.push(e),o[s].i.push(a),\"column\"!==s&&\"bar\"!==s||(i.globals.columnSeries=o.column)):[\"heatmap\",\"treemap\",\"pie\",\"donut\",\"polarArea\",\"radialBar\",\"radar\"].includes(s)?l=s:\"bar\"===s?(o.column.series.push(e),o.column.i.push(a)):console.warn(\"You have specified an unrecognized series type (\".concat(s,\").\")),n!==s&&\"scatter\"!==s&&h++})),h>0&&(l&&console.warn(\"Chart or series type \".concat(l,\" cannot appear with other chart or series types.\")),o.column.series.length>0&&s.plotOptions.bar.horizontal&&(h-=o.column.series.length,o.column={series:[],i:[]},i.globals.columnSeries={series:[],i:[]},console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"))),r.comboCharts||(r.comboCharts=h>0);var c=new Ot(a,e),d=new Lt(a,e);a.pie=new Tt(a);var g=new Xt(a);a.rangeBar=new Et(a,e);var u=new zt(a),f=[];if(r.comboCharts){var x,b,v=new A(a);if(o.area.series.length>0)(x=f).push.apply(x,p(v.drawSeriesByGroup(o.area,r.areaGroups,\"area\",c)));if(o.column.series.length>0)if(s.chart.stacked){var m=new Ct(a,e);f.push(m.draw(o.column.series,o.column.i))}else a.bar=new St(a,e),f.push(a.bar.draw(o.column.series,o.column.i));if(o.rangeArea.series.length>0&&f.push(c.draw(o.rangeArea.series,\"rangeArea\",o.rangeArea.i,o.rangeArea.seriesRangeEnd)),o.line.series.length>0)(b=f).push.apply(b,p(v.drawSeriesByGroup(o.line,r.lineGroups,\"line\",c)));if(o.candlestick.series.length>0&&f.push(d.draw(o.candlestick.series,\"candlestick\",o.candlestick.i)),o.boxPlot.series.length>0&&f.push(d.draw(o.boxPlot.series,\"boxPlot\",o.boxPlot.i)),o.rangeBar.series.length>0&&f.push(a.rangeBar.draw(o.rangeBar.series,o.rangeBar.i)),o.scatter.series.length>0){var y=new Ot(a,e,!0);f.push(y.draw(o.scatter.series,\"scatter\",o.scatter.i))}if(o.bubble.series.length>0){var w=new Ot(a,e,!0);f.push(w.draw(o.bubble.series,\"bubble\",o.bubble.i))}}else switch(s.chart.type){case\"line\":f=c.draw(r.series,\"line\");break;case\"area\":f=c.draw(r.series,\"area\");break;case\"bar\":if(s.chart.stacked)f=new Ct(a,e).draw(r.series);else a.bar=new St(a,e),f=a.bar.draw(r.series);break;case\"candlestick\":f=new Lt(a,e).draw(r.series,\"candlestick\");break;case\"boxPlot\":f=new Lt(a,e).draw(r.series,s.chart.type);break;case\"rangeBar\":f=a.rangeBar.draw(r.series);break;case\"rangeArea\":f=c.draw(r.seriesRangeStart,\"rangeArea\",void 0,r.seriesRangeEnd);break;case\"heatmap\":f=new Mt(a,e).draw(r.series);break;case\"treemap\":f=new Bt(a,e).draw(r.series);break;case\"pie\":case\"donut\":case\"polarArea\":f=a.pie.draw(r.series);break;case\"radialBar\":f=g.draw(r.series);break;case\"radar\":f=u.draw(r.series);break;default:f=c.draw(r.series)}return f}},{key:\"setSVGDimensions\",value:function(){var t=this.w,e=t.globals,i=t.config;i.chart.width=i.chart.width||\"100%\",i.chart.height=i.chart.height||\"auto\",e.svgWidth=i.chart.width,e.svgHeight=i.chart.height;var a=m.getDimensions(this.el),s=i.chart.width.toString().split(/[0-9]+/g).pop();\"%\"===s?m.isNumber(a[0])&&(0===a[0].width&&(a=m.getDimensions(this.el.parentNode)),e.svgWidth=a[0]*parseInt(i.chart.width,10)/100):\"px\"!==s&&\"\"!==s||(e.svgWidth=parseInt(i.chart.width,10));var r=String(i.chart.height).toString().split(/[0-9]+/g).pop();if(\"auto\"!==e.svgHeight&&\"\"!==e.svgHeight)if(\"%\"===r){var o=m.getDimensions(this.el.parentNode);e.svgHeight=o[1]*parseInt(i.chart.height,10)/100}else e.svgHeight=parseInt(i.chart.height,10);else e.svgHeight=e.axisCharts?e.svgWidth/1.61:e.svgWidth/1.2;if(e.svgWidth=Math.max(e.svgWidth,0),e.svgHeight=Math.max(e.svgHeight,0),k.setAttrs(e.dom.Paper.node,{width:e.svgWidth,height:e.svgHeight}),\"%\"!==r){var n=i.chart.sparkline.enabled?0:e.axisCharts?i.chart.parentHeightOffset:0;e.dom.Paper.node.parentNode.parentNode.style.minHeight=\"\".concat(e.svgHeight+n,\"px\")}e.dom.elWrap.style.width=\"\".concat(e.svgWidth,\"px\"),e.dom.elWrap.style.height=\"\".concat(e.svgHeight,\"px\")}},{key:\"shiftGraphPosition\",value:function(){var t=this.w.globals,e=t.translateY,i=t.translateX;k.setAttrs(t.dom.elGraphical.node,{transform:\"translate(\".concat(i,\", \").concat(e,\")\")})}},{key:\"resizeNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,[\"top\",\"bottom\"].includes(t.config.legend.position)&&t.config.legend.show&&!t.config.legend.floating&&(i=new gt(this.ctx).legendHelpers.getLegendDimensions().clwh+7);var s=t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=m.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=Math.ceil(r+e.translateY+i+a);e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute(\"height\",l),t.config.chart.height&&String(t.config.chart.height).includes(\"%\")||(e.dom.elWrap.style.height=\"\".concat(l,\"px\"),k.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=\"\".concat(l,\"px\"))}},{key:\"coreCalculations\",value:function(){new J(this.ctx).init()}},{key:\"resetGlobals\",value:function(){var t=this,e=function(){return t.w.config.series.map((function(){return[]}))},i=new H,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:\"isMultipleY\",value:function(){return!!(Array.isArray(this.w.config.yaxis)&&this.w.config.yaxis.length>1)&&(this.w.globals.isMultipleYAxis=!0,!0)}},{key:\"xySettings\",value:function(){var t=this.w,e=null;if(t.globals.axisCharts){if(\"back\"===t.config.xaxis.crosshairs.position&&new it(this.ctx).drawXCrosshairs(),\"back\"===t.config.yaxis[0].crosshairs.position&&new it(this.ctx).drawYCrosshairs(),\"datetime\"===t.config.xaxis.type&&void 0===t.config.xaxis.labels.formatter){this.ctx.timeScale=new jt(this.ctx);var i=[];isFinite(t.globals.minX)&&isFinite(t.globals.maxX)&&!t.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minX,t.globals.maxX):t.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(t.globals.minY,t.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}e=new A(this.ctx).getCalculatedRatios()}return e}},{key:\"updateSourceChart\",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:\"setupBrushHandler\",value:function(){var t=this,e=this.w;if(e.config.chart.brush.enabled&&\"function\"!=typeof e.config.chart.events.selection){var i=Array.isArray(e.config.chart.brush.targets)?e.config.chart.brush.targets:[e.config.chart.brush.target];i.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,\"function\"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){return t.updateSourceChart(i)}),\"function\"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){return t.updateSourceChart(i)})})),e.config.chart.events.selection=function(t,e){i.forEach((function(t){ApexCharts.getChartByID(t).ctx.updateHelpers._updateOptions({xaxis:{min:e.xaxis.min,max:e.xaxis.max}},!1,!1,!1,!1)}))}}}}]),t}(),Ut=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"_updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(o){var n=[e.ctx];s&&(n=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(n=[e.ctx],e.ctx.w.globals.isExecCalled=!1),n.forEach((function(s,l){var h=s.w;if(h.globals.shouldAnimate=a,i||(h.globals.resized=!0,h.globals.dataChanged=!0,a&&s.series.getPreviousPaths()),t&&\"object\"===b(t)&&(s.config=new D(t),t=A.extendArrayProps(s.config,t,h),s.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,h.config=m.extend(h.config,t),r&&(h.globals.lastXAxis=t.xaxis?m.clone(t.xaxis):[],h.globals.lastYAxis=t.yaxis?m.clone(t.yaxis):[],h.globals.initialConfig=m.extend({},h.config),h.globals.initialSeries=m.clone(h.config.series),t.series))){for(var c=0;c2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=m.clone(o.config.series),o.globals.initialSeries=m.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:\"_extendSeries\",value:function(t,e){var i=this.w,a=i.config.series[e];return g(g({},i.config.series[e]),{},{name:t.name?t.name:null==a?void 0:a.name,color:t.color?t.color:null==a?void 0:a.color,type:t.type?t.type:null==a?void 0:a.type,group:t.group?t.group:null==a?void 0:a.group,hidden:void 0!==t.hidden?t.hidden:null==a?void 0:a.hidden,data:t.data?t.data:null==a?void 0:a.data,zIndex:void 0!==t.zIndex?t.zIndex:e})}},{key:\"toggleDataPointSelection\",value:function(t,e){var i=this.w,a=null,s=\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\");return i.globals.axisCharts?a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(e,\"'], \").concat(s,\" circle[j='\").concat(e,\"'], \").concat(s,\" rect[j='\").concat(e,\"']\")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(t,\"']\")).members[0],\"pie\"!==i.config.chart.type&&\"polarArea\"!==i.config.chart.type&&\"donut\"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new k(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn(\"toggleDataPointSelection: Element not found\"),null)}},{key:\"forceXAxisUpdate\",value:function(t){var e=this.w;if([\"min\",\"max\"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new F(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:\"forceYAxisUpdate\",value:function(t){return t.chart&&t.chart.stacked&&\"100%\"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:\"revertDefaultAxisMinMax\",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();Nt=\"undefined\"!=typeof window?window:void 0,Wt=function(t,e){var i=(void 0!==this?this:t).SVG=function(t){if(i.supported)return t=new i.Doc(t),i.parser.draw||i.prepare(),t};if(i.ns=\"http://www.w3.org/2000/svg\",i.xmlns=\"http://www.w3.org/2000/xmlns/\",i.xlink=\"http://www.w3.org/1999/xlink\",i.svgjs=\"http://svgjs.dev\",i.supported=!0,!i.supported)return!1;i.did=1e3,i.eid=function(t){return\"Svgjs\"+c(t)+i.did++},i.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute(\"id\",this.eid(t)),i},i.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var a=t.length-1;a>=0;a--)if(t[a])for(var s in e)t[a].prototype[s]=e[s];i.Set&&i.Set.inherit&&i.Set.inherit()},i.invent=function(t){var e=\"function\"==typeof t.create?t.create:function(){this.constructor.call(this,i.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&i.extend(e,t.extend),t.construct&&i.extend(t.parent||i.Container,t.construct),e},i.adopt=function(e){return e?e.instance?e.instance:((a=\"svg\"==e.nodeName?e.parentNode instanceof t.SVGElement?new i.Nested:new i.Doc:\"linearGradient\"==e.nodeName?new i.Gradient(\"linear\"):\"radialGradient\"==e.nodeName?new i.Gradient(\"radial\"):i[c(e.nodeName)]?new(i[c(e.nodeName)]):new i.Element(e)).type=e.nodeName,a.node=e,e.instance=a,a instanceof i.Doc&&a.namespace().defs(),a.setData(JSON.parse(e.getAttribute(\"svgjs:data\"))||{}),a):null;var a},i.prepare=function(){var t=e.getElementsByTagName(\"body\")[0],a=(t?new i.Doc(t):i.adopt(e.documentElement).nested()).size(2,0);i.parser={body:t||e.documentElement,draw:a.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,poly:a.polyline().node,path:a.path().node,native:i.create(\"svg\")}},i.parser={native:i.create(\"svg\")},e.addEventListener(\"DOMContentLoaded\",(function(){i.parser.draw||i.prepare()}),!1),i.regex={numberAndUnit:/^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,rgb:/rgb\\((\\d+),(\\d+),(\\d+)\\)/,reference:/#([a-z0-9\\-_]+)/i,transforms:/\\)\\s*,?\\s*/,whitespace:/\\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\\s+)?$/,isNumber:/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,isPercent:/^-?[\\d\\.]+%$/,isImage:/\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,delimiter:/[\\s,]+/,hyphen:/([^e])\\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,dots:/\\./g},i.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new i.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),i.Color.test=function(t){return t+=\"\",i.regex.isHex.test(t)||i.regex.isRgb.test(t)},i.Color.isRgb=function(t){return t&&\"number\"==typeof t.r&&\"number\"==typeof t.g&&\"number\"==typeof t.b},i.Color.isColor=function(t){return i.Color.isRgb(t)||i.Color.test(t)},i.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},i.extend(i.Array,{toString:function(){return this.value.join(\" \")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),i.PointArray=function(t,e){i.Array.call(this,t,e||[[0,0]])},i.PointArray.prototype=new i.Array,i.PointArray.prototype.constructor=i.PointArray;for(var a={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],[\"M\",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],[\"L\",t[0],t[1]]},H:function(t,e){return e.x=t[0],[\"H\",t[0]]},V:function(t,e){return e.y=t[0],[\"V\",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],[\"C\",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],[\"Q\",t[0],t[1],t[2],t[3]]},S:function(t,e){return e.x=t[2],e.y=t[3],[\"S\",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,[\"Z\"]}},s=\"mlhvqtcsaz\".split(\"\"),r=0,o=s.length;rh);return r},bbox:function(){return i.parser.draw||i.prepare(),i.parser.path.setAttribute(\"d\",this.toString()),i.parser.path.getBBox()}}),i.Number=i.invent({create:function(t,e){this.value=0,this.unit=e||\"\",\"number\"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:\"string\"==typeof t?(e=t.match(i.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),\"%\"==e[5]?this.value/=100:\"s\"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof i.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return(\"%\"==this.unit?~~(1e8*this.value)/1e6:\"s\"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new i.Number(t),new i.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new i.Number(t),new i.Number(this-t,this.unit||t.unit)},times:function(t){return t=new i.Number(t),new i.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new i.Number(t),new i.Number(this/t,this.unit||t.unit)},to:function(t){var e=new i.Number(this);return\"string\"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new i.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new i.Number(this.destination).minus(this).times(t).plus(this):this}}}),i.Element=i.invent({create:function(t){this._stroke=i.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute(\"stroke\")||this._stroke)},extend:{x:function(t){return this.attr(\"x\",t)},y:function(t){return this.attr(\"y\",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr(\"width\",t)},height:function(t){return this.attr(\"height\",t)},size:function(t,e){var a=g(this,t,e);return this.width(new i.Number(a.width)).height(new i.Number(a.height))},clone:function(t){this.writeDataToDom();var e=p(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr(\"id\",t)},show:function(){return this.style(\"display\",\"\")},hide:function(){return this.style(\"display\",\"none\")},visible:function(){return\"none\"!=this.style(\"display\")},toString:function(){return this.attr(\"id\")},classes:function(){var t=this.attr(\"class\");return null==t?[]:t.trim().split(i.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr(\"class\",e.join(\" \"))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr(\"class\",this.classes().filter((function(e){return e!=t})).join(\" \")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return i.get(this.attr(t))},parent:function(e){var a=this;if(!a.node.parentNode)return null;if(a=i.adopt(a.node.parentNode),!e)return a;for(;a&&a.node instanceof t.SVGElement;){if(\"string\"==typeof e?a.matches(e):a instanceof e)return a;if(!a.node.parentNode||\"#document\"==a.node.parentNode.nodeName)return null;a=i.adopt(a.node.parentNode)}},doc:function(){return this instanceof i.Doc?this:this.parent(i.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var a=e.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");if(!(t&&this instanceof i.Parent))return a.appendChild(t=e.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),a.innerHTML.replace(/^/,\"\").replace(/<\\/svg>$/,\"\");a.innerHTML=\"\"+t.replace(/\\n/,\"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g,\"<$1$2>\")+\"\";for(var s=0,r=a.firstChild.childNodes.length;s\":function(t){return-Math.cos(t*Math.PI)/2+.5},\">\":function(t){return Math.sin(t*Math.PI/2)},\"<\":function(t){return 1-Math.cos(t*Math.PI/2)}},i.morph=function(t){return function(e,a){return new i.MorphObj(e,a).at(t)}},i.Situation=i.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new i.Number(t.duration).valueOf(),this.delay=new i.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),i.FX=i.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,a){\"object\"===b(t)&&(e=t.ease,a=t.delay,t=t.duration);var s=new i.Situation({duration:t||1e3,delay:a||0,ease:i.easing[e||\"-\"]||e});return this.queue(s),this},target:function(t){return t&&t instanceof i.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return(\"function\"==typeof t||t instanceof i.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof i.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var a in e.animations){t=this.target()[a](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[a])||(e.animations[a]=[e.animations[a]]);for(var s=t.length;s--;)e.animations[a][s]instanceof i.Number&&(t[s]=new i.Number(t[s])),e.animations[a][s]=t[s].morph(e.animations[a][s])}for(var a in e.attrs)e.attrs[a]=new i.MorphObj(this.target().attr(a),e.attrs[a]);for(var a in e.styles)e.styles[a]=new i.MorphObj(this.target().style(a),e.styles[a]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on(\"finished.fx\",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off(\"finished.fx\",i))})),this._callStart()},during:function(t){var e=this.last(),a=function(a){a.detail.situation==e&&t.call(this,a.detail.pos,i.morph(a.detail.pos),a.detail.eased,e)};return this.target().off(\"during.fx\",a).on(\"during.fx\",a),this.after((function(){this.off(\"during.fx\",a)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off(\"allfinished.fx\",e)};return this.target().off(\"allfinished.fx\",e).on(\"allfinished.fx\",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||\"animations\"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire(\"during\",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire(\"finished\",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire(\"allfinished\"),this.situations.length||(this.target().off(\".fx\"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,a=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a[r].apply(a,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.attr.apply(a,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.style.apply(a,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--a)this[v[a]]=null!=t[v[a]]?t[v[a]]:e[v[a]]},extend:{extract:function(){var t=u(this,0,1);u(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new i.Matrix(this)}},clone:function(){return new i.Matrix(this)},morph:function(t){return this.destination=new i.Matrix(t),this},multiply:function(t){return new i.Matrix(this.native().multiply(function(t){return t instanceof i.Matrix||(t=new i.Matrix(t)),t}(t).native()))},inverse:function(){return new i.Matrix(this.native().inverse())},translate:function(t,e){return new i.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=i.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return\"matrix(\"+x(this.a)+\",\"+x(this.b)+\",\"+x(this.c)+\",\"+x(this.d)+\",\"+x(this.e)+\",\"+x(this.f)+\")\"}},parent:i.Element,construct:{ctm:function(){return new i.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof i.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new i.Matrix(e)}return new i.Matrix(this.node.getScreenCTM())}}}),i.Point=i.invent({create:function(t,e){var i;i=Array.isArray(t)?{x:t[0],y:t[1]}:\"object\"===b(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=i.x,this.y=i.y},extend:{clone:function(){return new i.Point(this)},morph:function(t,e){return this.destination=new i.Point(t,e),this}}}),i.extend(i.Element,{point:function(t,e){return new i.Point(t,e).transform(this.screenCTM().inverse())}}),i.extend(i.Element,{attr:function(t,e,a){if(null==t){for(t={},a=(e=this.node.attributes).length-1;a>=0;a--)t[e[a].nodeName]=i.regex.isNumber.test(e[a].nodeValue)?parseFloat(e[a].nodeValue):e[a].nodeValue;return t}if(\"object\"===b(t))for(var s in t)this.attr(s,t[s]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?i.defaults.attrs[t]:i.regex.isNumber.test(e)?parseFloat(e):e;\"stroke-width\"==t?this.attr(\"stroke\",parseFloat(e)>0?this._stroke:null):\"stroke\"==t&&(this._stroke=e),\"fill\"!=t&&\"stroke\"!=t||(i.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof i.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),\"number\"==typeof e?e=new i.Number(e):i.Color.isColor(e)?e=new i.Color(e):Array.isArray(e)&&(e=new i.Array(e)),\"leading\"==t?this.leading&&this.leading(e):\"string\"==typeof a?this.node.setAttributeNS(a,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||\"font-size\"!=t&&\"x\"!=t||this.rebuild(t,e)}return this}}),i.extend(i.Element,{transform:function(t,e){var a;return\"object\"!==b(t)?(a=new i.Matrix(this).extract(),\"string\"==typeof t?a[t]:a):(a=new i.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(a=e?a.multiply(new i.Matrix(t)):new i.Matrix(t)),this.attr(\"transform\",a))}}),i.extend(i.Element,{untransform:function(){return this.attr(\"transform\",null)},matrixify:function(){return(this.attr(\"transform\")||\"\").split(i.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split(\"(\");return[e[0],e[1].split(i.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return\"matrix\"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new i.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),i.Transformation=i.invent({create:function(t,e){if(arguments.length>1&&\"boolean\"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var i=0,a=this.arguments.length;i=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return i.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var a=this.children(),s=0,r=a.length;s=0;a--)e.childNodes[a]instanceof t.SVGElement&&p(e.childNodes[a]);return i.adopt(e).id(i.eid(e.nodeName))}function x(t){return Math.abs(t)>1e-37?t:0}[\"fill\",\"stroke\"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if(\"string\"==typeof e||i.Color.isRgb(e)||e&&\"function\"==typeof e.fill)this.attr(t,e);else for(var a=n[t].length-1;a>=0;a--)null!=e[n[t][a]]&&this.attr(n.prefix(t,n[t][a]),e[n[t][a]]);return this},i.extend(i.Element,i.FX,e)})),i.extend(i.Element,i.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr(\"transform\",new i.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr(\"opacity\",t)},dx:function(t){return this.x(new i.Number(t).plus(this instanceof i.FX?0:this.x()),!0)},dy:function(t){return this.y(new i.Number(t).plus(this instanceof i.FX?0:this.y()),!0)}}),i.extend(i.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),i.Set=i.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new i.Set(t)}}}),i.FX.Set=i.invent({create:function(t){this.set=t}}),i.Set.inherit=function(){var t=[];for(var e in i.Shape.prototype)\"function\"==typeof i.Shape.prototype[e]&&\"function\"!=typeof i.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){i.Set.prototype[t]=function(){for(var e=0,a=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),i.get=function(t){var a=e.getElementById(function(t){var e=(t||\"\").toString().match(i.regex.reference);if(e)return e[1]}(t)||t);return i.adopt(a)},i.select=function(t,a){return new i.Set(i.utils.map((a||e).querySelectorAll(t),(function(t){return i.adopt(t)})))},i.extend(i.Parent,{select:function(t){return i.select(t,this.node)}});var v=\"abcdef\".split(\"\");if(\"function\"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,i.CustomEvent=m}else i.CustomEvent=t.CustomEvent;return i},\"function\"==typeof define&&define.amd?define((function(){return Wt(Nt,Nt.document)})):\"object\"===(\"undefined\"==typeof exports?\"undefined\":b(exports))&&\"undefined\"!=typeof module?module.exports=Nt.document?Wt(Nt,Nt.document):function(t){return Wt(t,t.document)}:Nt.SVG=Wt(Nt,Nt.document),\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n* https://github.com/wout/svg.filter.js\n* Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction(){SVG.Filter=SVG.invent({create:\"filter\",inherit:SVG.Parent,extend:{source:\"SourceGraphic\",sourceAlpha:\"SourceAlpha\",background:\"BackgroundImage\",backgroundAlpha:\"BackgroundAlpha\",fill:\"FillPaint\",stroke:\"StrokePaint\",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr(\"in\")&&this.autoSetIn&&t.attr(\"in\",this.source),t.attr(\"result\")||t.attr(\"result\",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return\"url(#\"+this.attr(\"id\")+\")\"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return\"function\"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr(\"filter\",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr(\"filter\",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr(\"in\",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||\"normal\"})},colorMatrix:function(t,e){\"matrix\"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(\" \").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr(\"flood-color\",t),null!=e&&this.attr(\"flood-opacity\",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr(\"href\",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr(\"stdDeviation\",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e1&&(M*=a=Math.sqrt(a),I*=a);s=(new SVG.Matrix).rotate(T).scale(1/M,1/I).rotate(-T),R=R.transform(s),F=F.transform(s),r=[F.x-R.x,F.y-R.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((F.x+R.x)/2+l*-r[1],(F.y+R.y)/2+l*r[0]),c=new SVG.Point(R.x-h.x,R.y-h.y),d=new SVG.Point(F.x-h.x,F.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire(\"dragend\",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,\"mousemove.drag\"),SVG.off(window,\"touchmove.drag\"),SVG.off(window,\"mouseup.drag\"),SVG.off(window,\"touchend.drag\")},SVG.extend(SVG.Element,{draggable:function(e,i){\"function\"!=typeof e&&\"object\"!=typeof e||(i=e,e=!0);var a=this.remember(\"_draggable\")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off(\"mousedown.drag\"),this.off(\"touchstart.drag\")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember(\"_selectHandler\",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:[\"width\",0],rb:[\"width\",\"height\"],lb:[0,\"height\"],t:[\"width\",0],r:[\"width\",\"height\"],b:[\"width\",\"height\"],l:[0,\"height\"]},this.pointCoord=function(t,e,i){var a=\"string\"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,\"t\"===t||\"b\"===t),y:this.pointCoord(i[1],e,\"r\"===t||\"l\"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=[\"points\",\"pointsExclude\"];for(var s in r){var o=this.options[r[s]];\"string\"==typeof o?o=o.length>0?o.split(/\\s*,\\s*/i):[]:\"boolean\"==typeof o&&\"points\"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==[\"line\",\"polyline\",\"polygon\"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case\"rt\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case\"rb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case\"lb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case\"t\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case\"r\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case\"b\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case\"l\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case\"rot\":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case\"point\":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire(\"resizestart\",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,\"touchmove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"touchend.resize\",(function(){e.done()})),SVG.on(window,\"mousemove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"mouseup.resize\",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire(\"resizing\",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,\"mousemove.resize\"),SVG.off(window,\"mouseup.resize\"),SVG.off(window,\"touchmove.resize\"),SVG.off(window,\"touchend.resize\"),this.el.fire(\"resizedone\")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember(\"_resizeHandler\")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var qt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"initModules\",value:function(){this.ctx.publicMethods=[\"updateOptions\",\"updateSeries\",\"appendData\",\"appendSeries\",\"isSeriesHidden\",\"highlightSeries\",\"toggleSeries\",\"showSeries\",\"hideSeries\",\"setLocale\",\"resetSeries\",\"zoomX\",\"toggleDataPointSelection\",\"dataURI\",\"exportToCSV\",\"addXaxisAnnotation\",\"addYaxisAnnotation\",\"addPointAnnotation\",\"clearAnnotations\",\"removeAnnotation\",\"paper\",\"destroy\"],this.ctx.eventList=[\"click\",\"mousedown\",\"mousemove\",\"mouseleave\",\"touchstart\",\"touchmove\",\"touchleave\",\"mouseup\",\"touchend\"],this.ctx.animations=new y(this.ctx),this.ctx.axes=new et(this.ctx),this.ctx.core=new _t(this.ctx.el,this.ctx),this.ctx.config=new D({}),this.ctx.data=new _(this.ctx),this.ctx.grid=new Z(this.ctx),this.ctx.graphics=new k(this.ctx),this.ctx.coreUtils=new A(this.ctx),this.ctx.crosshairs=new it(this.ctx),this.ctx.events=new K(this.ctx),this.ctx.exports=new U(this.ctx),this.ctx.fill=new N(this.ctx),this.ctx.localization=new tt(this.ctx),this.ctx.options=new X,this.ctx.responsive=new at(this.ctx),this.ctx.series=new V(this.ctx),this.ctx.theme=new st(this.ctx),this.ctx.formatters=new P(this.ctx),this.ctx.titleSubtitle=new rt(this.ctx),this.ctx.legend=new gt(this.ctx),this.ctx.toolbar=new ut(this.ctx),this.ctx.tooltip=new wt(this.ctx),this.ctx.dimensions=new ct(this.ctx),this.ctx.updateHelpers=new Ut(this.ctx),this.ctx.zoomPanSelection=new ft(this.ctx),this.ctx.w.globals.tooltip=new wt(this.ctx)}}]),t}(),Zt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:\"clear\",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:\"killSVG\",value:function(t){t.each((function(){this.removeClass(\"*\"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:\"clearDomElements\",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight=\"unset\");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectBarMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),$t=new WeakMap;var Jt=function(){function t(e,a){i(this,t),this.opts=a,this.ctx=this,this.w=new O(a).init(),this.el=e,this.w.globals.cuid=m.randomId(),this.w.globals.chartID=this.w.config.chart.id?m.escapeString(this.w.config.chart.id):this.w.globals.cuid,new qt(this).initModules(),this.create=m.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return s(t,[{key:\"render\",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;\"function\"==typeof a&&a(t,t.w),t.events.fireEvent(\"beforeMount\",[t,t.w]),window.addEventListener(\"resize\",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();\"none\"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),$t.set(e,s)}(t.el.parentNode,t.parentResizeHandler);var s=t.el.getRootNode&&t.el.getRootNode(),r=m.is(\"ShadowRoot\",s),o=t.el.ownerDocument,n=r?s.getElementById(\"apexcharts-css\"):o.getElementById(\"apexcharts-css\");if(!n){var l;(n=document.createElement(\"style\")).id=\"apexcharts-css\",n.textContent='@keyframes opaque {\\n 0% {\\n opacity: 0\\n }\\n\\n to {\\n opacity: 1\\n }\\n}\\n\\n@keyframes resizeanim {\\n\\n 0%,\\n to {\\n opacity: 0\\n }\\n}\\n\\n.apexcharts-canvas {\\n position: relative;\\n direction: ltr !important;\\n user-select: none\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 6px\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n border-radius: 4px;\\n background-color: rgba(0, 0, 0, .5);\\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)\\n}\\n\\n.apexcharts-inner {\\n position: relative\\n}\\n\\n.apexcharts-text tspan {\\n font-family: inherit\\n}\\n\\nrect.legend-mouseover-inactive,\\n.legend-mouseover-inactive rect,\\n.legend-mouseover-inactive path,\\n.legend-mouseover-inactive circle,\\n.legend-mouseover-inactive line,\\n.legend-mouseover-inactive text.apexcharts-yaxis-title-text,\\n.legend-mouseover-inactive text.apexcharts-yaxis-label {\\n transition: .15s ease all;\\n opacity: .2\\n}\\n\\n.apexcharts-legend-text {\\n padding-left: 15px;\\n margin-left: -15px;\\n}\\n\\n.apexcharts-series-collapsed {\\n opacity: 0\\n}\\n\\n.apexcharts-tooltip {\\n border-radius: 5px;\\n box-shadow: 2px 2px 6px -4px #999;\\n cursor: default;\\n font-size: 14px;\\n left: 62px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 20px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 12;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n border: 1px solid #e3e3e3;\\n background: rgba(255, 255, 255, .96)\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n color: #fff;\\n background: rgba(30, 30, 30, .8)\\n}\\n\\n.apexcharts-tooltip * {\\n font-family: inherit\\n}\\n\\n.apexcharts-tooltip-title {\\n padding: 6px;\\n font-size: 15px;\\n margin-bottom: 4px\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n background: #eceff1;\\n border-bottom: 1px solid #ddd\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n background: rgba(0, 0, 0, .7);\\n border-bottom: 1px solid #333\\n}\\n\\n.apexcharts-tooltip-text-goals-value,\\n.apexcharts-tooltip-text-y-value,\\n.apexcharts-tooltip-text-z-value {\\n display: inline-block;\\n margin-left: 5px;\\n font-weight: 600\\n}\\n\\n.apexcharts-tooltip-text-goals-label:empty,\\n.apexcharts-tooltip-text-goals-value:empty,\\n.apexcharts-tooltip-text-y-label:empty,\\n.apexcharts-tooltip-text-y-value:empty,\\n.apexcharts-tooltip-text-z-value:empty,\\n.apexcharts-tooltip-title:empty {\\n display: none\\n}\\n\\n.apexcharts-tooltip-text-goals-label,\\n.apexcharts-tooltip-text-goals-value {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-tooltip-goals-group,\\n.apexcharts-tooltip-text-goals-label,\\n.apexcharts-tooltip-text-goals-value {\\n display: flex\\n}\\n\\n.apexcharts-tooltip-text-goals-label:not(:empty),\\n.apexcharts-tooltip-text-goals-value:not(:empty) {\\n margin-top: -6px\\n}\\n\\n.apexcharts-tooltip-marker {\\n width: 12px;\\n height: 12px;\\n position: relative;\\n top: 0;\\n margin-right: 10px;\\n border-radius: 50%\\n}\\n\\n.apexcharts-tooltip-series-group {\\n padding: 0 10px;\\n display: none;\\n text-align: left;\\n justify-content: left;\\n align-items: center\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n opacity: 1\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,\\n.apexcharts-tooltip-series-group:last-child {\\n padding-bottom: 4px\\n}\\n\\n.apexcharts-tooltip-y-group {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-custom-tooltip,\\n.apexcharts-tooltip-box {\\n padding: 4px 8px\\n}\\n\\n.apexcharts-tooltip-boxPlot {\\n display: flex;\\n flex-direction: column-reverse\\n}\\n\\n.apexcharts-tooltip-box>div {\\n margin: 4px 0\\n}\\n\\n.apexcharts-tooltip-box span.value {\\n font-weight: 700\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n padding: 5px 8px\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n font-weight: 600;\\n color: #777\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n font-weight: 700;\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.apexcharts-xaxistooltip,\\n.apexcharts-yaxistooltip {\\n opacity: 0;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #eceff1;\\n border: 1px solid #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip {\\n padding: 9px 10px;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, .7);\\n border: 1px solid rgba(0, 0, 0, .5);\\n color: #fff\\n}\\n\\n.apexcharts-xaxistooltip:after,\\n.apexcharts-xaxistooltip:before {\\n left: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-left: -6px\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-left: -7px\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,\\n.apexcharts-xaxistooltip-bottom:before {\\n bottom: 100%\\n}\\n\\n.apexcharts-xaxistooltip-top:after,\\n.apexcharts-xaxistooltip-top:before {\\n top: 100%\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n border-bottom-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n border-bottom-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n border-bottom-color: rgba(0, 0, 0, .5)\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n border-top-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n border-top-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n border-top-color: rgba(0, 0, 0, .5)\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-yaxistooltip {\\n padding: 4px 10px\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n background: rgba(0, 0, 0, .7);\\n border: 1px solid rgba(0, 0, 0, .5);\\n color: #fff\\n}\\n\\n.apexcharts-yaxistooltip:after,\\n.apexcharts-yaxistooltip:before {\\n top: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-top: -6px\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-top: -7px\\n}\\n\\n.apexcharts-yaxistooltip-left:after,\\n.apexcharts-yaxistooltip-left:before {\\n left: 100%\\n}\\n\\n.apexcharts-yaxistooltip-right:after,\\n.apexcharts-yaxistooltip-right:before {\\n right: 100%\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n border-left-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n border-left-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n border-left-color: rgba(0, 0, 0, .5)\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n border-right-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n border-right-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n border-right-color: rgba(0, 0, 0, .5)\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n opacity: 1\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n display: none\\n}\\n\\n.apexcharts-xcrosshairs,\\n.apexcharts-ycrosshairs {\\n pointer-events: none;\\n opacity: 0;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,\\n.apexcharts-ycrosshairs.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n opacity: 0\\n}\\n\\n.apexcharts-selection-rect {\\n cursor: move\\n}\\n\\n.svg_select_boundingRect,\\n.svg_select_points_rot {\\n pointer-events: none;\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_boundingRect,\\n.apexcharts-selection-rect+g .svg_select_points_rot {\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_points_l,\\n.apexcharts-selection-rect+g .svg_select_points_r {\\n cursor: ew-resize;\\n opacity: 1;\\n visibility: visible\\n}\\n\\n.svg_select_points {\\n fill: #efefef;\\n stroke: #333;\\n rx: 2\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n cursor: move\\n}\\n\\n.apexcharts-menu-icon,\\n.apexcharts-pan-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-selection-icon,\\n.apexcharts-toolbar-custom-icon,\\n.apexcharts-zoom-icon,\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon {\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n line-height: 24px;\\n color: #6e8192;\\n text-align: center\\n}\\n\\n.apexcharts-menu-icon svg,\\n.apexcharts-reset-icon svg,\\n.apexcharts-zoom-icon svg,\\n.apexcharts-zoomin-icon svg,\\n.apexcharts-zoomout-icon svg {\\n fill: #6e8192\\n}\\n\\n.apexcharts-selection-icon svg {\\n fill: #444;\\n transform: scale(.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\\n fill: #f3f4f5\\n}\\n\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\\n fill: #008ffb\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\\n fill: #333\\n}\\n\\n.apexcharts-menu-icon,\\n.apexcharts-selection-icon {\\n position: relative\\n}\\n\\n.apexcharts-reset-icon {\\n margin-left: 5px\\n}\\n\\n.apexcharts-menu-icon,\\n.apexcharts-reset-icon,\\n.apexcharts-zoom-icon {\\n transform: scale(.85)\\n}\\n\\n.apexcharts-zoomin-icon,\\n.apexcharts-zoomout-icon {\\n transform: scale(.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n margin-right: 3px\\n}\\n\\n.apexcharts-pan-icon {\\n transform: scale(.62);\\n position: relative;\\n left: 1px;\\n top: 0\\n}\\n\\n.apexcharts-pan-icon svg {\\n fill: #fff;\\n stroke: #6e8192;\\n stroke-width: 2\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n stroke: #008ffb\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n stroke: #333\\n}\\n\\n.apexcharts-toolbar {\\n position: absolute;\\n z-index: 11;\\n max-width: 176px;\\n text-align: right;\\n border-radius: 3px;\\n padding: 0 6px 2px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center\\n}\\n\\n.apexcharts-menu {\\n background: #fff;\\n position: absolute;\\n top: 100%;\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 3px;\\n right: 10px;\\n opacity: 0;\\n min-width: 110px;\\n transition: .15s ease all;\\n pointer-events: none\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n opacity: 1;\\n pointer-events: all;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-menu-item {\\n padding: 6px 7px;\\n font-size: 12px;\\n cursor: pointer\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n background: #eee\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n background: rgba(0, 0, 0, .7);\\n color: #fff\\n}\\n\\n@media screen and (min-width:768px) {\\n .apexcharts-canvas:hover .apexcharts-toolbar {\\n opacity: 1\\n }\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden,\\n.apexcharts-datalabel.apexcharts-element-hidden,\\n.apexcharts-hide .apexcharts-series-points {\\n opacity: 0;\\n}\\n\\n.apexcharts-hidden-element-shown {\\n opacity: 1;\\n transition: 0.25s ease all;\\n}\\n\\n.apexcharts-datalabel,\\n.apexcharts-datalabel-label,\\n.apexcharts-datalabel-value,\\n.apexcharts-datalabels,\\n.apexcharts-pie-label {\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.apexcharts-pie-label-delay {\\n opacity: 0;\\n animation-name: opaque;\\n animation-duration: .3s;\\n animation-fill-mode: forwards;\\n animation-timing-function: ease\\n}\\n\\n.apexcharts-radialbar-label {\\n cursor: pointer;\\n}\\n\\n.apexcharts-annotation-rect,\\n.apexcharts-area-series .apexcharts-area,\\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-gridline,\\n.apexcharts-line,\\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\\n.apexcharts-point-annotation-label,\\n.apexcharts-radar-series path:not(.apexcharts-marker),\\n.apexcharts-radar-series polygon,\\n.apexcharts-toolbar svg,\\n.apexcharts-tooltip .apexcharts-marker,\\n.apexcharts-xaxis-annotation-label,\\n.apexcharts-yaxis-annotation-label,\\n.apexcharts-zoom-rect {\\n pointer-events: none\\n}\\n\\n.apexcharts-tooltip-active .apexcharts-marker {\\n transition: .15s ease all\\n}\\n\\n.resize-triggers {\\n animation: 1ms resizeanim;\\n visibility: hidden;\\n opacity: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden\\n}\\n\\n.contract-trigger:before,\\n.resize-triggers,\\n.resize-triggers>div {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0\\n}\\n\\n.resize-triggers>div {\\n height: 100%;\\n width: 100%;\\n background: #eee;\\n overflow: auto\\n}\\n\\n.contract-trigger:before {\\n overflow: hidden;\\n width: 200%;\\n height: 200%\\n}\\n\\n.apexcharts-bar-goals-markers {\\n pointer-events: none\\n}\\n\\n.apexcharts-bar-shadows {\\n pointer-events: none\\n}\\n\\n.apexcharts-rangebar-goals-markers {\\n pointer-events: none\\n}\\n';var h=(null===(l=t.opts.chart)||void 0===l?void 0:l.nonce)||t.w.config.chart.nonce;h&&n.setAttribute(\"nonce\",h),r?s.prepend(n):o.head.appendChild(n)}var c=t.create(t.w.config.series,{});if(!c)return e(t);t.mount(c).then((function(){\"function\"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent(\"mounted\",[t,t.w]),e(c)})).catch((function(t){i(t)}))}else i(new Error(\"Element not found\"))}))}},{key:\"create\",value:function(t,e){var i=this,a=this.w;new qt(this).initModules();var s=this.w.globals;(s.noData=!1,s.animationEnded=!1,this.responsive.checkResponsiveConfig(e),a.config.xaxis.convertedCatToNumeric)&&new F(a.config).convertCatToNumericXaxis(a.config,this.ctx);if(null===this.el)return s.animationEnded=!0,null;if(this.core.setupElements(),\"treemap\"===a.config.chart.type&&(a.config.grid.show=!1,a.config.yaxis[0].show=!1),0===s.svgWidth)return s.animationEnded=!0,null;var r=t;t.forEach((function(t,e){t.hidden&&(r=i.legend.legendHelpers.getSeriesAfterCollapsing({realIndex:e}))}));var o=A.checkComboSeries(r,a.config.chart.type);s.comboCharts=o.comboCharts,s.comboBarCount=o.comboBarCount;var n=r.every((function(t){return t.data&&0===t.data.length}));(0===r.length||n&&s.collapsedSeries.length<1)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(r),this.theme.init(),new W(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),s.noData&&s.collapsedSeries.length!==s.series.length&&!a.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),s.axisCharts&&(this.core.coreCalculations(),\"category\"!==a.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=a.globals.minX,this.ctx.toolbar.maxX=a.globals.maxX),this.formatters.heatmapLabelFormatters(),new A(this).getLargestMarkerSize(),this.dimensions.plotCoords();var l=this.core.xySettings();this.grid.createGridMask();var h=this.core.plotChartType(r,l),c=new G(this);return c.bringForward(),a.config.dataLabels.background.enabled&&c.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:h,xyRatios:l,dimensions:{plot:{left:a.globals.translateX,top:a.globals.translateY,width:a.globals.gridWidth,height:a.globals.gridHeight}}}}},{key:\"mount\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error(\"Not enough data to display or target element not found\"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new Z(i);var o,n,l=i.grid.drawGrid();(i.annotations=new E(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),\"back\"===a.config.grid.position)&&(l&&a.globals.dom.elGraphical.add(l.el),null!=l&&null!==(o=l.elGridBorders)&&void 0!==o&&o.node&&a.globals.dom.elGraphical.add(l.elGridBorders));if(Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:\"destroy\",value:function(){var t,e;window.removeEventListener(\"resize\",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=$t.get(t))&&(e.disconnect(),$t.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===m.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Zt(this.ctx).clear({isUpdating:!1})}},{key:\"updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:\"updateSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:\"appendSeries\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:\"appendData\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:\"addEventListener\",value:function(t,e){this.events.addEventListener(t,e)}},{key:\"removeEventListener\",value:function(t,e){this.events.removeEventListener(t,e)}},{key:\"addXaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:\"addYaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:\"addPointAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:\"clearAnnotations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:\"removeAnnotation\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:\"getChartArea\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\")}},{key:\"getSeriesTotalXRange\",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:\"getHighestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new J(this.ctx).getMinYMaxY(t).highestY}},{key:\"getLowestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new J(this.ctx).getMinYMaxY(t).lowestY}},{key:\"getSeriesTotal\",value:function(){return this.w.globals.seriesTotals}},{key:\"toggleDataPointSelection\",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:\"zoomX\",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:\"setLocale\",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:\"dataURI\",value:function(t){return new U(this.ctx).dataURI(t)}},{key:\"exportToCSV\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new U(this.ctx).exportToCSV(t)}},{key:\"paper\",value:function(){return this.w.globals.dom.Paper}},{key:\"_parentResizeCallback\",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:\"_windowResize\",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:\"_windowResizeHandler\",value:function(){var t=this.w.config.chart.redrawOnWindowResize;\"function\"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:\"getChartByID\",value:function(t){var e=m.escapeString(t);if(Apex._chartInstances){var i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}}},{key:\"initOnLoad\",value:function(){for(var e=document.querySelectorAll(\"[data-apexcharts]\"),i=0;i2?s-2:0),o=2;o 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\r\n* @version: 3.1\r\n* @author: Dan Grossman http://www.dangrossman.info/\r\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\r\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\r\n* @website: http://www.daterangepicker.com/\r\n*/\r\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Make globaly available as well\r\n define(['moment', 'jquery'], function (moment, jquery) {\r\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\r\n if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default']\r\n return factory(moment, jquery);\r\n });\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node / Browserify\r\n //isomorphic issue\r\n var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;\r\n if (!jQuery) {\r\n jQuery = require('jquery');\r\n if (!jQuery.fn) jQuery.fn = {};\r\n }\r\n var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');\r\n module.exports = factory(moment, jQuery);\r\n } else {\r\n // Browser globals\r\n root.daterangepicker = factory(root.moment, root.jQuery);\r\n }\r\n}(this, function(moment, $) {\r\n var DateRangePicker = function(element, options, cb) {\r\n\r\n //default settings for options\r\n this.parentEl = 'body';\r\n this.element = $(element);\r\n this.startDate = moment().startOf('day');\r\n this.endDate = moment().endOf('day');\r\n this.minDate = false;\r\n this.maxDate = false;\r\n this.maxSpan = false;\r\n this.autoApply = false;\r\n this.singleDatePicker = false;\r\n this.showDropdowns = false;\r\n this.minYear = moment().subtract(100, 'year').format('YYYY');\r\n this.maxYear = moment().add(100, 'year').format('YYYY');\r\n this.showWeekNumbers = false;\r\n this.showISOWeekNumbers = false;\r\n this.showCustomRangeLabel = true;\r\n this.timePicker = false;\r\n this.timePicker24Hour = false;\r\n this.timePickerIncrement = 1;\r\n this.timePickerSeconds = false;\r\n this.linkedCalendars = true;\r\n this.autoUpdateInput = true;\r\n this.alwaysShowCalendars = false;\r\n this.ranges = {};\r\n\r\n this.opens = 'right';\r\n if (this.element.hasClass('pull-right'))\r\n this.opens = 'left';\r\n\r\n this.drops = 'down';\r\n if (this.element.hasClass('dropup'))\r\n this.drops = 'up';\r\n\r\n this.buttonClasses = 'btn btn-sm';\r\n this.applyButtonClasses = 'btn-primary';\r\n this.cancelButtonClasses = 'btn-default';\r\n\r\n this.locale = {\r\n direction: 'ltr',\r\n format: moment.localeData().longDateFormat('L'),\r\n separator: ' - ',\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n weekLabel: 'W',\r\n customRangeLabel: 'Custom Range',\r\n daysOfWeek: moment.weekdaysMin(),\r\n monthNames: moment.monthsShort(),\r\n firstDay: moment.localeData().firstDayOfWeek()\r\n };\r\n\r\n this.callback = function() { };\r\n\r\n //some state information\r\n this.isShowing = false;\r\n this.leftCalendar = {};\r\n this.rightCalendar = {};\r\n\r\n //custom options from user\r\n if (typeof options !== 'object' || options === null)\r\n options = {};\r\n\r\n //allow setting options with data attributes\r\n //data-api options will be overwritten with custom javascript options\r\n options = $.extend(this.element.data(), options);\r\n\r\n //html template for the picker UI\r\n if (typeof options.template !== 'string' && !(options.template instanceof $))\r\n options.template =\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 this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\r\n this.container = $(options.template).appendTo(this.parentEl);\r\n\r\n //\r\n // handle all the possible options overriding defaults\r\n //\r\n\r\n if (typeof options.locale === 'object') {\r\n\r\n if (typeof options.locale.direction === 'string')\r\n this.locale.direction = options.locale.direction;\r\n\r\n if (typeof options.locale.format === 'string')\r\n this.locale.format = options.locale.format;\r\n\r\n if (typeof options.locale.separator === 'string')\r\n this.locale.separator = options.locale.separator;\r\n\r\n if (typeof options.locale.daysOfWeek === 'object')\r\n this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\r\n\r\n if (typeof options.locale.monthNames === 'object')\r\n this.locale.monthNames = options.locale.monthNames.slice();\r\n\r\n if (typeof options.locale.firstDay === 'number')\r\n this.locale.firstDay = options.locale.firstDay;\r\n\r\n if (typeof options.locale.applyLabel === 'string')\r\n this.locale.applyLabel = options.locale.applyLabel;\r\n\r\n if (typeof options.locale.cancelLabel === 'string')\r\n this.locale.cancelLabel = options.locale.cancelLabel;\r\n\r\n if (typeof options.locale.weekLabel === 'string')\r\n this.locale.weekLabel = options.locale.weekLabel;\r\n\r\n if (typeof options.locale.customRangeLabel === 'string'){\r\n //Support unicode chars in the custom range name.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = options.locale.customRangeLabel;\r\n var rangeHtml = elem.value;\r\n this.locale.customRangeLabel = rangeHtml;\r\n }\r\n }\r\n this.container.addClass(this.locale.direction);\r\n\r\n if (typeof options.startDate === 'string')\r\n this.startDate = moment(options.startDate, this.locale.format);\r\n\r\n if (typeof options.endDate === 'string')\r\n this.endDate = moment(options.endDate, this.locale.format);\r\n\r\n if (typeof options.minDate === 'string')\r\n this.minDate = moment(options.minDate, this.locale.format);\r\n\r\n if (typeof options.maxDate === 'string')\r\n this.maxDate = moment(options.maxDate, this.locale.format);\r\n\r\n if (typeof options.startDate === 'object')\r\n this.startDate = moment(options.startDate);\r\n\r\n if (typeof options.endDate === 'object')\r\n this.endDate = moment(options.endDate);\r\n\r\n if (typeof options.minDate === 'object')\r\n this.minDate = moment(options.minDate);\r\n\r\n if (typeof options.maxDate === 'object')\r\n this.maxDate = moment(options.maxDate);\r\n\r\n // sanity check for bad options\r\n if (this.minDate && this.startDate.isBefore(this.minDate))\r\n this.startDate = this.minDate.clone();\r\n\r\n // sanity check for bad options\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (typeof options.applyButtonClasses === 'string')\r\n this.applyButtonClasses = options.applyButtonClasses;\r\n\r\n if (typeof options.applyClass === 'string') //backwards compat\r\n this.applyButtonClasses = options.applyClass;\r\n\r\n if (typeof options.cancelButtonClasses === 'string')\r\n this.cancelButtonClasses = options.cancelButtonClasses;\r\n\r\n if (typeof options.cancelClass === 'string') //backwards compat\r\n this.cancelButtonClasses = options.cancelClass;\r\n\r\n if (typeof options.maxSpan === 'object')\r\n this.maxSpan = options.maxSpan;\r\n\r\n if (typeof options.dateLimit === 'object') //backwards compat\r\n this.maxSpan = options.dateLimit;\r\n\r\n if (typeof options.opens === 'string')\r\n this.opens = options.opens;\r\n\r\n if (typeof options.drops === 'string')\r\n this.drops = options.drops;\r\n\r\n if (typeof options.showWeekNumbers === 'boolean')\r\n this.showWeekNumbers = options.showWeekNumbers;\r\n\r\n if (typeof options.showISOWeekNumbers === 'boolean')\r\n this.showISOWeekNumbers = options.showISOWeekNumbers;\r\n\r\n if (typeof options.buttonClasses === 'string')\r\n this.buttonClasses = options.buttonClasses;\r\n\r\n if (typeof options.buttonClasses === 'object')\r\n this.buttonClasses = options.buttonClasses.join(' ');\r\n\r\n if (typeof options.showDropdowns === 'boolean')\r\n this.showDropdowns = options.showDropdowns;\r\n\r\n if (typeof options.minYear === 'number')\r\n this.minYear = options.minYear;\r\n\r\n if (typeof options.maxYear === 'number')\r\n this.maxYear = options.maxYear;\r\n\r\n if (typeof options.showCustomRangeLabel === 'boolean')\r\n this.showCustomRangeLabel = options.showCustomRangeLabel;\r\n\r\n if (typeof options.singleDatePicker === 'boolean') {\r\n this.singleDatePicker = options.singleDatePicker;\r\n if (this.singleDatePicker)\r\n this.endDate = this.startDate.clone();\r\n }\r\n\r\n if (typeof options.timePicker === 'boolean')\r\n this.timePicker = options.timePicker;\r\n\r\n if (typeof options.timePickerSeconds === 'boolean')\r\n this.timePickerSeconds = options.timePickerSeconds;\r\n\r\n if (typeof options.timePickerIncrement === 'number')\r\n this.timePickerIncrement = options.timePickerIncrement;\r\n\r\n if (typeof options.timePicker24Hour === 'boolean')\r\n this.timePicker24Hour = options.timePicker24Hour;\r\n\r\n if (typeof options.autoApply === 'boolean')\r\n this.autoApply = options.autoApply;\r\n\r\n if (typeof options.autoUpdateInput === 'boolean')\r\n this.autoUpdateInput = options.autoUpdateInput;\r\n\r\n if (typeof options.linkedCalendars === 'boolean')\r\n this.linkedCalendars = options.linkedCalendars;\r\n\r\n if (typeof options.isInvalidDate === 'function')\r\n this.isInvalidDate = options.isInvalidDate;\r\n\r\n if (typeof options.isCustomDate === 'function')\r\n this.isCustomDate = options.isCustomDate;\r\n\r\n if (typeof options.alwaysShowCalendars === 'boolean')\r\n this.alwaysShowCalendars = options.alwaysShowCalendars;\r\n\r\n // update day names order to firstDay\r\n if (this.locale.firstDay != 0) {\r\n var iterator = this.locale.firstDay;\r\n while (iterator > 0) {\r\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\r\n iterator--;\r\n }\r\n }\r\n\r\n var start, end, range;\r\n\r\n //if no start/end dates set, check if an input element contains initial values\r\n if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\r\n if ($(this.element).is(':text')) {\r\n var val = $(this.element).val(),\r\n split = val.split(this.locale.separator);\r\n\r\n start = end = null;\r\n\r\n if (split.length == 2) {\r\n start = moment(split[0], this.locale.format);\r\n end = moment(split[1], this.locale.format);\r\n } else if (this.singleDatePicker && val !== \"\") {\r\n start = moment(val, this.locale.format);\r\n end = moment(val, this.locale.format);\r\n }\r\n if (start !== null && end !== null) {\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n }\r\n }\r\n }\r\n\r\n if (typeof options.ranges === 'object') {\r\n for (range in options.ranges) {\r\n\r\n if (typeof options.ranges[range][0] === 'string')\r\n start = moment(options.ranges[range][0], this.locale.format);\r\n else\r\n start = moment(options.ranges[range][0]);\r\n\r\n if (typeof options.ranges[range][1] === 'string')\r\n end = moment(options.ranges[range][1], this.locale.format);\r\n else\r\n end = moment(options.ranges[range][1]);\r\n\r\n // If the start or end date exceed those allowed by the minDate or maxSpan\r\n // options, shorten the range to the allowable period.\r\n if (this.minDate && start.isBefore(this.minDate))\r\n start = this.minDate.clone();\r\n\r\n var maxDate = this.maxDate;\r\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))\r\n maxDate = start.clone().add(this.maxSpan);\r\n if (maxDate && end.isAfter(maxDate))\r\n end = maxDate.clone();\r\n\r\n // If the end of the range is before the minimum or the start of the range is\r\n // after the maximum, don't display this range option at all.\r\n if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))\r\n || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))\r\n continue;\r\n\r\n //Support unicode chars in the range names.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = range;\r\n var rangeHtml = elem.value;\r\n\r\n this.ranges[rangeHtml] = [start, end];\r\n }\r\n\r\n var list = '
    ';\r\n for (range in this.ranges) {\r\n list += '
  • ' + range + '
  • ';\r\n }\r\n if (this.showCustomRangeLabel) {\r\n list += '
  • ' + this.locale.customRangeLabel + '
  • ';\r\n }\r\n list += '
';\r\n this.container.find('.ranges').prepend(list);\r\n }\r\n\r\n if (typeof cb === 'function') {\r\n this.callback = cb;\r\n }\r\n\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n this.endDate = this.endDate.endOf('day');\r\n this.container.find('.calendar-time').hide();\r\n }\r\n\r\n //can't be used together for now\r\n if (this.timePicker && this.autoApply)\r\n this.autoApply = false;\r\n\r\n if (this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n\r\n if (typeof options.ranges === 'object')\r\n this.container.addClass('show-ranges');\r\n\r\n if (this.singleDatePicker) {\r\n this.container.addClass('single');\r\n this.container.find('.drp-calendar.left').addClass('single');\r\n this.container.find('.drp-calendar.left').show();\r\n this.container.find('.drp-calendar.right').hide();\r\n if (!this.timePicker && this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n }\r\n\r\n if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {\r\n this.container.addClass('show-calendar');\r\n }\r\n\r\n this.container.addClass('opens' + this.opens);\r\n\r\n //apply CSS classes and labels to buttons\r\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\r\n if (this.applyButtonClasses.length)\r\n this.container.find('.applyBtn').addClass(this.applyButtonClasses);\r\n if (this.cancelButtonClasses.length)\r\n this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\r\n this.container.find('.applyBtn').html(this.locale.applyLabel);\r\n this.container.find('.cancelBtn').html(this.locale.cancelLabel);\r\n\r\n //\r\n // event listeners\r\n //\r\n\r\n this.container.find('.drp-calendar')\r\n .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\r\n .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\r\n .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\r\n .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\r\n .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\r\n\r\n this.container.find('.ranges')\r\n .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\r\n\r\n this.container.find('.drp-buttons')\r\n .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\r\n .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\r\n\r\n if (this.element.is('input') || this.element.is('button')) {\r\n this.element.on({\r\n 'click.daterangepicker': $.proxy(this.show, this),\r\n 'focus.daterangepicker': $.proxy(this.show, this),\r\n 'keyup.daterangepicker': $.proxy(this.elementChanged, this),\r\n 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\r\n });\r\n } else {\r\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\r\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\r\n }\r\n\r\n //\r\n // if attached to a text input, set the initial value\r\n //\r\n\r\n this.updateElement();\r\n\r\n };\r\n\r\n DateRangePicker.prototype = {\r\n\r\n constructor: DateRangePicker,\r\n\r\n setStartDate: function(startDate) {\r\n if (typeof startDate === 'string')\r\n this.startDate = moment(startDate, this.locale.format);\r\n\r\n if (typeof startDate === 'object')\r\n this.startDate = moment(startDate);\r\n\r\n if (!this.timePicker)\r\n this.startDate = this.startDate.startOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\r\n this.startDate = this.minDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\r\n this.startDate = this.maxDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n setEndDate: function(endDate) {\r\n if (typeof endDate === 'string')\r\n this.endDate = moment(endDate, this.locale.format);\r\n\r\n if (typeof endDate === 'object')\r\n this.endDate = moment(endDate);\r\n\r\n if (!this.timePicker)\r\n this.endDate = this.endDate.endOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.endDate.isBefore(this.startDate))\r\n this.endDate = this.startDate.clone();\r\n\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\r\n this.endDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n isInvalidDate: function() {\r\n return false;\r\n },\r\n\r\n isCustomDate: function() {\r\n return false;\r\n },\r\n\r\n updateView: function() {\r\n if (this.timePicker) {\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n if (!this.endDate) {\r\n this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');\r\n } else {\r\n this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');\r\n }\r\n }\r\n if (this.endDate)\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n this.updateMonthsInView();\r\n this.updateCalendars();\r\n this.updateFormInputs();\r\n },\r\n\r\n updateMonthsInView: function() {\r\n if (this.endDate) {\r\n\r\n //if both dates are visible already, do nothing\r\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\r\n (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n &&\r\n (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n ) {\r\n return;\r\n }\r\n\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\r\n this.rightCalendar.month = this.endDate.clone().date(2);\r\n } else {\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n\r\n } else {\r\n if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\r\n this.rightCalendar.month = this.maxDate.clone().date(2);\r\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\r\n }\r\n },\r\n\r\n updateCalendars: function() {\r\n\r\n if (this.timePicker) {\r\n var hour, minute, second;\r\n if (this.endDate) {\r\n hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n } else {\r\n hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n }\r\n this.leftCalendar.month.hour(hour).minute(minute).second(second);\r\n this.rightCalendar.month.hour(hour).minute(minute).second(second);\r\n }\r\n\r\n this.renderCalendar('left');\r\n this.renderCalendar('right');\r\n\r\n //highlight any predefined range matching the current start and end dates\r\n this.container.find('.ranges li').removeClass('active');\r\n if (this.endDate == null) return;\r\n\r\n this.calculateChosenLabel();\r\n },\r\n\r\n renderCalendar: function(side) {\r\n\r\n //\r\n // Build the matrix of dates that will populate the calendar\r\n //\r\n\r\n var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\r\n var month = calendar.month.month();\r\n var year = calendar.month.year();\r\n var hour = calendar.month.hour();\r\n var minute = calendar.month.minute();\r\n var second = calendar.month.second();\r\n var daysInMonth = moment([year, month]).daysInMonth();\r\n var firstDay = moment([year, month, 1]);\r\n var lastDay = moment([year, month, daysInMonth]);\r\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\r\n var lastYear = moment(firstDay).subtract(1, 'month').year();\r\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\r\n var dayOfWeek = firstDay.day();\r\n\r\n //initialize a 6 rows x 7 columns array for the calendar\r\n var calendar = [];\r\n calendar.firstDay = firstDay;\r\n calendar.lastDay = lastDay;\r\n\r\n for (var i = 0; i < 6; i++) {\r\n calendar[i] = [];\r\n }\r\n\r\n //populate the calendar with date objects\r\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\r\n if (startDay > daysInLastMonth)\r\n startDay -= 7;\r\n\r\n if (dayOfWeek == this.locale.firstDay)\r\n startDay = daysInLastMonth - 6;\r\n\r\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\r\n\r\n var col, row;\r\n for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\r\n if (i > 0 && col % 7 === 0) {\r\n col = 0;\r\n row++;\r\n }\r\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\r\n curDate.hour(12);\r\n\r\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\r\n calendar[row][col] = this.minDate.clone();\r\n }\r\n\r\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\r\n calendar[row][col] = this.maxDate.clone();\r\n }\r\n\r\n }\r\n\r\n //make the calendar object available to hoverDate/clickDate\r\n if (side == 'left') {\r\n this.leftCalendar.calendar = calendar;\r\n } else {\r\n this.rightCalendar.calendar = calendar;\r\n }\r\n\r\n //\r\n // Display the calendar\r\n //\r\n\r\n var minDate = side == 'left' ? this.minDate : this.startDate;\r\n var maxDate = this.maxDate;\r\n var selected = side == 'left' ? this.startDate : this.endDate;\r\n var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};\r\n\r\n var html = '';\r\n html += '';\r\n html += '';\r\n\r\n // add empty cell for week number\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '';\r\n\r\n if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\r\n\r\n if (this.showDropdowns) {\r\n var currentMonth = calendar[1][1].month();\r\n var currentYear = calendar[1][1].year();\r\n var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\r\n var minYear = (minDate && minDate.year()) || (this.minYear);\r\n var inMinYear = currentYear == minYear;\r\n var inMaxYear = currentYear == maxYear;\r\n\r\n var monthHtml = '\";\r\n\r\n var yearHtml = '';\r\n\r\n dateHtml = monthHtml + yearHtml;\r\n }\r\n\r\n html += '';\r\n if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '';\r\n\r\n // add week number label\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '';\r\n\r\n $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\r\n html += '';\r\n });\r\n\r\n html += '';\r\n html += '';\r\n html += '';\r\n\r\n //adjust maxDate to reflect the maxSpan setting in order to\r\n //grey out end dates beyond the maxSpan\r\n if (this.endDate == null && this.maxSpan) {\r\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\r\n if (!maxDate || maxLimit.isBefore(maxDate)) {\r\n maxDate = maxLimit;\r\n }\r\n }\r\n\r\n for (var row = 0; row < 6; row++) {\r\n html += '';\r\n\r\n // add week number\r\n if (this.showWeekNumbers)\r\n html += '';\r\n else if (this.showISOWeekNumbers)\r\n html += '';\r\n\r\n for (var col = 0; col < 7; col++) {\r\n\r\n var classes = [];\r\n\r\n //highlight today's date\r\n if (calendar[row][col].isSame(new Date(), \"day\"))\r\n classes.push('today');\r\n\r\n //highlight weekends\r\n if (calendar[row][col].isoWeekday() > 5)\r\n classes.push('weekend');\r\n\r\n //grey out the dates in other months displayed at beginning and end of this calendar\r\n if (calendar[row][col].month() != calendar[1][1].month())\r\n classes.push('off', 'ends');\r\n\r\n //don't allow selection of dates before the minimum date\r\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of dates after the maximum date\r\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of date if a custom function decides it's invalid\r\n if (this.isInvalidDate(calendar[row][col]))\r\n classes.push('off', 'disabled');\r\n\r\n //highlight the currently selected start date\r\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'start-date');\r\n\r\n //highlight the currently selected end date\r\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'end-date');\r\n\r\n //highlight dates in-between the selected dates\r\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\r\n classes.push('in-range');\r\n\r\n //apply custom classes for this date\r\n var isCustom = this.isCustomDate(calendar[row][col]);\r\n if (isCustom !== false) {\r\n if (typeof isCustom === 'string')\r\n classes.push(isCustom);\r\n else\r\n Array.prototype.push.apply(classes, isCustom);\r\n }\r\n\r\n var cname = '', disabled = false;\r\n for (var i = 0; i < classes.length; i++) {\r\n cname += classes[i] + ' ';\r\n if (classes[i] == 'disabled')\r\n disabled = true;\r\n }\r\n if (!disabled)\r\n cname += 'available';\r\n\r\n html += '';\r\n\r\n }\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
';\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\r\n\r\n },\r\n\r\n renderTimePicker: function(side) {\r\n\r\n // Don't bother updating the time picker if it's currently disabled\r\n // because an end date hasn't been clicked yet\r\n if (side == 'right' && !this.endDate) return;\r\n\r\n var html, selected, minDate, maxDate = this.maxDate;\r\n\r\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))\r\n maxDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n if (side == 'left') {\r\n selected = this.startDate.clone();\r\n minDate = this.minDate;\r\n } else if (side == 'right') {\r\n selected = this.endDate.clone();\r\n minDate = this.startDate;\r\n\r\n //Preserve the time already selected\r\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\r\n if (timeSelector.html() != '') {\r\n\r\n selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\r\n selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\r\n selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = timeSelector.find('.ampmselect option:selected').val();\r\n if (ampm === 'PM' && selected.hour() < 12)\r\n selected.hour(selected.hour() + 12);\r\n if (ampm === 'AM' && selected.hour() === 12)\r\n selected.hour(0);\r\n }\r\n\r\n }\r\n\r\n if (selected.isBefore(this.startDate))\r\n selected = this.startDate.clone();\r\n\r\n if (maxDate && selected.isAfter(maxDate))\r\n selected = maxDate.clone();\r\n\r\n }\r\n\r\n //\r\n // hours\r\n //\r\n\r\n html = ' ';\r\n\r\n //\r\n // minutes\r\n //\r\n\r\n html += ': ';\r\n\r\n //\r\n // seconds\r\n //\r\n\r\n if (this.timePickerSeconds) {\r\n html += ': ';\r\n }\r\n\r\n //\r\n // AM/PM\r\n //\r\n\r\n if (!this.timePicker24Hour) {\r\n html += '';\r\n }\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\r\n\r\n },\r\n\r\n updateFormInputs: function() {\r\n\r\n if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\r\n this.container.find('button.applyBtn').prop('disabled', false);\r\n } else {\r\n this.container.find('button.applyBtn').prop('disabled', true);\r\n }\r\n\r\n },\r\n\r\n move: function() {\r\n var parentOffset = { top: 0, left: 0 },\r\n containerTop,\r\n drops = this.drops;\r\n\r\n var parentRightEdge = $(window).width();\r\n if (!this.parentEl.is('body')) {\r\n parentOffset = {\r\n top: this.parentEl.offset().top - this.parentEl.scrollTop(),\r\n left: this.parentEl.offset().left - this.parentEl.scrollLeft()\r\n };\r\n parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\r\n }\r\n\r\n switch (drops) {\r\n case 'auto':\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) {\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n drops = 'up';\r\n }\r\n break;\r\n case 'up':\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n break;\r\n default:\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n break;\r\n }\r\n\r\n // Force the container to it's actual width\r\n this.container.css({\r\n top: 0,\r\n left: 0,\r\n right: 'auto'\r\n });\r\n var containerWidth = this.container.outerWidth();\r\n\r\n this.container.toggleClass('drop-up', drops == 'up');\r\n\r\n if (this.opens == 'left') {\r\n var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\r\n if (containerWidth + containerRight > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n right: containerRight,\r\n left: 'auto'\r\n });\r\n }\r\n } else if (this.opens == 'center') {\r\n var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\r\n - containerWidth / 2;\r\n if (containerLeft < 0) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n } else {\r\n var containerLeft = this.element.offset().left - parentOffset.left;\r\n if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n }\r\n },\r\n\r\n show: function(e) {\r\n if (this.isShowing) return;\r\n\r\n // Create a click proxy that is private to this instance of datepicker, for unbinding\r\n this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\r\n\r\n // Bind global datepicker mousedown for hiding and\r\n $(document)\r\n .on('mousedown.daterangepicker', this._outsideClickProxy)\r\n // also support mobile devices\r\n .on('touchend.daterangepicker', this._outsideClickProxy)\r\n // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\r\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\r\n // and also close when focus changes to outside the picker (eg. tabbing between controls)\r\n .on('focusin.daterangepicker', this._outsideClickProxy);\r\n\r\n // Reposition the picker if the window is resized while it's open\r\n $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\r\n\r\n this.oldStartDate = this.startDate.clone();\r\n this.oldEndDate = this.endDate.clone();\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.updateView();\r\n this.container.show();\r\n this.move();\r\n this.element.trigger('show.daterangepicker', this);\r\n this.isShowing = true;\r\n },\r\n\r\n hide: function(e) {\r\n if (!this.isShowing) return;\r\n\r\n //incomplete date selection, revert to last values\r\n if (!this.endDate) {\r\n this.startDate = this.oldStartDate.clone();\r\n this.endDate = this.oldEndDate.clone();\r\n }\r\n\r\n //if a new date range was selected, invoke the user callback function\r\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\r\n this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);\r\n\r\n //if picker is attached to a text input, update it\r\n this.updateElement();\r\n\r\n $(document).off('.daterangepicker');\r\n $(window).off('.daterangepicker');\r\n this.container.hide();\r\n this.element.trigger('hide.daterangepicker', this);\r\n this.isShowing = false;\r\n },\r\n\r\n toggle: function(e) {\r\n if (this.isShowing) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n },\r\n\r\n outsideClick: function(e) {\r\n var target = $(e.target);\r\n // if the page is clicked anywhere except within the daterangerpicker/button\r\n // itself then call this.hide()\r\n if (\r\n // ie modal dialog fix\r\n e.type == \"focusin\" ||\r\n target.closest(this.element).length ||\r\n target.closest(this.container).length ||\r\n target.closest('.calendar-table').length\r\n ) return;\r\n this.hide();\r\n this.element.trigger('outsideClick.daterangepicker', this);\r\n },\r\n\r\n showCalendars: function() {\r\n this.container.addClass('show-calendar');\r\n this.move();\r\n this.element.trigger('showCalendar.daterangepicker', this);\r\n },\r\n\r\n hideCalendars: function() {\r\n this.container.removeClass('show-calendar');\r\n this.element.trigger('hideCalendar.daterangepicker', this);\r\n },\r\n\r\n clickRange: function(e) {\r\n var label = e.target.getAttribute('data-range-key');\r\n this.chosenLabel = label;\r\n if (label == this.locale.customRangeLabel) {\r\n this.showCalendars();\r\n } else {\r\n var dates = this.ranges[label];\r\n this.startDate = dates[0];\r\n this.endDate = dates[1];\r\n\r\n if (!this.timePicker) {\r\n this.startDate.startOf('day');\r\n this.endDate.endOf('day');\r\n }\r\n\r\n if (!this.alwaysShowCalendars)\r\n this.hideCalendars();\r\n this.clickApply();\r\n }\r\n },\r\n\r\n clickPrev: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.subtract(1, 'month');\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month.subtract(1, 'month');\r\n } else {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n clickNext: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.add(1, 'month');\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month.add(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n hoverDate: function(e) {\r\n\r\n //ignore dates that can't be selected\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //highlight the dates between the start date and the date being hovered as a potential end date\r\n var leftCalendar = this.leftCalendar;\r\n var rightCalendar = this.rightCalendar;\r\n var startDate = this.startDate;\r\n if (!this.endDate) {\r\n this.container.find('.drp-calendar tbody td').each(function(index, el) {\r\n\r\n //skip week numbers, only look at dates\r\n if ($(el).hasClass('week')) return;\r\n\r\n var title = $(el).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(el).parents('.drp-calendar');\r\n var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\r\n\r\n if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\r\n $(el).addClass('in-range');\r\n } else {\r\n $(el).removeClass('in-range');\r\n }\r\n\r\n });\r\n }\r\n\r\n },\r\n\r\n clickDate: function(e) {\r\n\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //\r\n // this function needs to do a few things:\r\n // * alternate between selecting a start and end date for the range,\r\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\r\n // * if autoapply is enabled, and an end date was chosen, apply the selection\r\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\r\n // * if one of the inputs above the calendars was focused, cancel that manual input\r\n //\r\n\r\n if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.endDate = null;\r\n this.setStartDate(date.clone());\r\n } else if (!this.endDate && date.isBefore(this.startDate)) {\r\n //special case: clicking the same date for start/end,\r\n //but the time of the end date is before the start date\r\n this.setEndDate(this.startDate.clone());\r\n } else { // picking end\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.setEndDate(date.clone());\r\n if (this.autoApply) {\r\n this.calculateChosenLabel();\r\n this.clickApply();\r\n }\r\n }\r\n\r\n if (this.singleDatePicker) {\r\n this.setEndDate(this.startDate);\r\n if (!this.timePicker && this.autoApply)\r\n this.clickApply();\r\n }\r\n\r\n this.updateView();\r\n\r\n //This is to cancel the blur event handler if the mouse was in one of the inputs\r\n e.stopPropagation();\r\n\r\n },\r\n\r\n calculateChosenLabel: function () {\r\n var customRange = true;\r\n var i = 0;\r\n for (var range in this.ranges) {\r\n if (this.timePicker) {\r\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n //ignore times when comparing dates if time picker seconds is not enabled\r\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n } else {\r\n //ignore times when comparing dates if time picker is not enabled\r\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n }\r\n i++;\r\n }\r\n if (customRange) {\r\n if (this.showCustomRangeLabel) {\r\n this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\r\n } else {\r\n this.chosenLabel = null;\r\n }\r\n this.showCalendars();\r\n }\r\n },\r\n\r\n clickApply: function(e) {\r\n this.hide();\r\n this.element.trigger('apply.daterangepicker', this);\r\n },\r\n\r\n clickCancel: function(e) {\r\n this.startDate = this.oldStartDate;\r\n this.endDate = this.oldEndDate;\r\n this.hide();\r\n this.element.trigger('cancel.daterangepicker', this);\r\n },\r\n\r\n monthOrYearChanged: function(e) {\r\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\r\n leftOrRight = isLeft ? 'left' : 'right',\r\n cal = this.container.find('.drp-calendar.'+leftOrRight);\r\n\r\n // Month must be Number for new moment versions\r\n var month = parseInt(cal.find('.monthselect').val(), 10);\r\n var year = cal.find('.yearselect').val();\r\n\r\n if (!isLeft) {\r\n if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\r\n month = this.startDate.month();\r\n year = this.startDate.year();\r\n }\r\n }\r\n\r\n if (this.minDate) {\r\n if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\r\n month = this.minDate.month();\r\n year = this.minDate.year();\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\r\n month = this.maxDate.month();\r\n year = this.maxDate.year();\r\n }\r\n }\r\n\r\n if (isLeft) {\r\n this.leftCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n timeChanged: function(e) {\r\n\r\n var cal = $(e.target).closest('.drp-calendar'),\r\n isLeft = cal.hasClass('left');\r\n\r\n var hour = parseInt(cal.find('.hourselect').val(), 10);\r\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = cal.find('.ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n\r\n if (isLeft) {\r\n var start = this.startDate.clone();\r\n start.hour(hour);\r\n start.minute(minute);\r\n start.second(second);\r\n this.setStartDate(start);\r\n if (this.singleDatePicker) {\r\n this.endDate = this.startDate.clone();\r\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\r\n this.setEndDate(start.clone());\r\n }\r\n } else if (this.endDate) {\r\n var end = this.endDate.clone();\r\n end.hour(hour);\r\n end.minute(minute);\r\n end.second(second);\r\n this.setEndDate(end);\r\n }\r\n\r\n //update the calendars so all clickable dates reflect the new time component\r\n this.updateCalendars();\r\n\r\n //update the form inputs above the calendars with the new time\r\n this.updateFormInputs();\r\n\r\n //re-render the time pickers because changing one selection can affect what's enabled in another\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n\r\n },\r\n\r\n elementChanged: function() {\r\n if (!this.element.is('input')) return;\r\n if (!this.element.val().length) return;\r\n\r\n var dateString = this.element.val().split(this.locale.separator),\r\n start = null,\r\n end = null;\r\n\r\n if (dateString.length === 2) {\r\n start = moment(dateString[0], this.locale.format);\r\n end = moment(dateString[1], this.locale.format);\r\n }\r\n\r\n if (this.singleDatePicker || start === null || end === null) {\r\n start = moment(this.element.val(), this.locale.format);\r\n end = start;\r\n }\r\n\r\n if (!start.isValid() || !end.isValid()) return;\r\n\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n this.updateView();\r\n },\r\n\r\n keydown: function(e) {\r\n //hide on tab or enter\r\n if ((e.keyCode === 9) || (e.keyCode === 13)) {\r\n this.hide();\r\n }\r\n\r\n //hide on esc and prevent propagation\r\n if (e.keyCode === 27) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.hide();\r\n }\r\n },\r\n\r\n updateElement: function() {\r\n if (this.element.is('input') && this.autoUpdateInput) {\r\n var newValue = this.startDate.format(this.locale.format);\r\n if (!this.singleDatePicker) {\r\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\r\n }\r\n if (newValue !== this.element.val()) {\r\n this.element.val(newValue).trigger('change');\r\n }\r\n }\r\n },\r\n\r\n remove: function() {\r\n this.container.remove();\r\n this.element.off('.daterangepicker');\r\n this.element.removeData();\r\n }\r\n\r\n };\r\n\r\n $.fn.daterangepicker = function(options, callback) {\r\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\r\n this.each(function() {\r\n var el = $(this);\r\n if (el.data('daterangepicker'))\r\n el.data('daterangepicker').remove();\r\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\r\n });\r\n return this;\r\n };\r\n\r\n return DateRangePicker;\r\n\r\n}));\r\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Bit reading helpers\n*/\n\nvar BROTLI_READ_SIZE = 4096;\nvar BROTLI_IBUF_SIZE = (2 * BROTLI_READ_SIZE + 32);\nvar BROTLI_IBUF_MASK = (2 * BROTLI_READ_SIZE - 1);\n\nvar kBitMask = new Uint32Array([\n 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767,\n 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215\n]);\n\n/* Input byte buffer, consist of a ringbuffer and a \"slack\" region where */\n/* bytes from the start of the ringbuffer are copied. */\nfunction BrotliBitReader(input) {\n this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);\n this.input_ = input; /* input callback */\n \n this.reset();\n}\n\nBrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;\nBrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;\n\nBrotliBitReader.prototype.reset = function() {\n this.buf_ptr_ = 0; /* next input will write here */\n this.val_ = 0; /* pre-fetched bits */\n this.pos_ = 0; /* byte position in stream */\n this.bit_pos_ = 0; /* current bit-reading position in val_ */\n this.bit_end_pos_ = 0; /* bit-reading end position from LSB of val_ */\n this.eos_ = 0; /* input stream is finished */\n \n this.readMoreInput();\n for (var i = 0; i < 4; i++) {\n this.val_ |= this.buf_[this.pos_] << (8 * i);\n ++this.pos_;\n }\n \n return this.bit_end_pos_ > 0;\n};\n\n/* Fills up the input ringbuffer by calling the input callback.\n\n Does nothing if there are at least 32 bytes present after current position.\n\n Returns 0 if either:\n - the input callback returned an error, or\n - there is no more input and the position is past the end of the stream.\n\n After encountering the end of the input stream, 32 additional zero bytes are\n copied to the ringbuffer, therefore it is safe to call this function after\n every 32 bytes of input is read.\n*/\nBrotliBitReader.prototype.readMoreInput = function() {\n if (this.bit_end_pos_ > 256) {\n return;\n } else if (this.eos_) {\n if (this.bit_pos_ > this.bit_end_pos_)\n throw new Error('Unexpected end of input ' + this.bit_pos_ + ' ' + this.bit_end_pos_);\n } else {\n var dst = this.buf_ptr_;\n var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);\n if (bytes_read < 0) {\n throw new Error('Unexpected end of input');\n }\n \n if (bytes_read < BROTLI_READ_SIZE) {\n this.eos_ = 1;\n /* Store 32 bytes of zero after the stream end. */\n for (var p = 0; p < 32; p++)\n this.buf_[dst + bytes_read + p] = 0;\n }\n \n if (dst === 0) {\n /* Copy the head of the ringbuffer to the slack region. */\n for (var p = 0; p < 32; p++)\n this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];\n\n this.buf_ptr_ = BROTLI_READ_SIZE;\n } else {\n this.buf_ptr_ = 0;\n }\n \n this.bit_end_pos_ += bytes_read << 3;\n }\n};\n\n/* Guarantees that there are at least 24 bits in the buffer. */\nBrotliBitReader.prototype.fillBitWindow = function() { \n while (this.bit_pos_ >= 8) {\n this.val_ >>>= 8;\n this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;\n ++this.pos_;\n this.bit_pos_ = this.bit_pos_ - 8 >>> 0;\n this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;\n }\n};\n\n/* Reads the specified number of bits from Read Buffer. */\nBrotliBitReader.prototype.readBits = function(n_bits) {\n if (32 - this.bit_pos_ < n_bits) {\n this.fillBitWindow();\n }\n \n var val = ((this.val_ >>> this.bit_pos_) & kBitMask[n_bits]);\n this.bit_pos_ += n_bits;\n return val;\n};\n\nmodule.exports = BrotliBitReader;\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Lookup table to map the previous two bytes to a context id.\n\n There are four different context modeling modes defined here:\n CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\n CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\n CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\n CONTEXT_SIGNED: second-order context model tuned for signed integers.\n\n The context id for the UTF8 context model is calculated as follows. If p1\n and p2 are the previous two bytes, we calcualte the context as\n\n context = kContextLookup[p1] | kContextLookup[p2 + 256].\n\n If the previous two bytes are ASCII characters (i.e. < 128), this will be\n equivalent to\n\n context = 4 * context1(p1) + context2(p2),\n\n where context1 is based on the previous byte in the following way:\n\n 0 : non-ASCII control\n 1 : \\t, \\n, \\r\n 2 : space\n 3 : other punctuation\n 4 : \" '\n 5 : %\n 6 : ( < [ {\n 7 : ) > ] }\n 8 : , ; :\n 9 : .\n 10 : =\n 11 : number\n 12 : upper-case vowel\n 13 : upper-case consonant\n 14 : lower-case vowel\n 15 : lower-case consonant\n\n and context2 is based on the second last byte:\n\n 0 : control, space\n 1 : punctuation\n 2 : upper-case letter, number\n 3 : lower-case letter\n\n If the last byte is ASCII, and the second last byte is not (in a valid UTF8\n stream it will be a continuation byte, value between 128 and 191), the\n context is the same as if the second last byte was an ASCII control or space.\n\n If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\n be a continuation byte and the context id is 2 or 3 depending on the LSB of\n the last byte and to a lesser extent on the second last byte if it is ASCII.\n\n If the last byte is a UTF8 continuation byte, the second last byte can be:\n - continuation byte: the next byte is probably ASCII or lead byte (assuming\n 4-byte UTF8 characters are rare) and the context id is 0 or 1.\n - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\n - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\n\n The possible value combinations of the previous two bytes, the range of\n context ids and the type of the next byte is summarized in the table below:\n\n |--------\\-----------------------------------------------------------------|\n | \\ Last byte |\n | Second \\---------------------------------------------------------------|\n | last byte \\ ASCII | cont. byte | lead byte |\n | \\ (0-127) | (128-191) | (192-) |\n |=============|===================|=====================|==================|\n | ASCII | next: ASCII/lead | not valid | next: cont. |\n | (0-127) | context: 4 - 63 | | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. |\n | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: ASCII/lead | not valid |\n | (192-207) | | context: 0 - 1 | |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: cont. | not valid |\n | (208-) | | context: 2 - 3 | |\n |-------------|-------------------|---------------------|------------------|\n\n The context id for the signed context mode is calculated as:\n\n context = (kContextLookup[512 + p1] << 3) | kContextLookup[512 + p2].\n\n For any context modeling modes, the context ids can be calculated by |-ing\n together two lookups from one table using context model dependent offsets:\n\n context = kContextLookup[offset1 + p1] | kContextLookup[offset2 + p2].\n\n where offset1 and offset2 are dependent on the context mode.\n*/\n\nvar CONTEXT_LSB6 = 0;\nvar CONTEXT_MSB6 = 1;\nvar CONTEXT_UTF8 = 2;\nvar CONTEXT_SIGNED = 3;\n\n/* Common context lookup table for all context modes. */\nexports.lookup = new Uint8Array([\n /* CONTEXT_UTF8, last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,\n 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\n 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,\n 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,\n 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,\n 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0,\n /* UTF8 continuation byte range. */\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n /* UTF8 lead byte range. */\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n /* CONTEXT_UTF8 second last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,\n 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,\n 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\n /* UTF8 continuation byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n /* UTF8 lead byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n /* CONTEXT_SIGNED, second last byte. */\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,\n /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\n 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\n /* CONTEXT_LSB6, last byte. */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n /* CONTEXT_MSB6, last byte. */\n 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,\n 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,\n 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11,\n 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,\n 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\n 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,\n 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,\n 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,\n 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,\n 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,\n 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,\n 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\n 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,\n 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,\n 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,\n 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,\n /* CONTEXT_{M,L}SB6, second last byte, */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n]);\n\nexports.lookupOffsets = new Uint16Array([\n /* CONTEXT_LSB6 */\n 1024, 1536,\n /* CONTEXT_MSB6 */\n 1280, 1536,\n /* CONTEXT_UTF8 */\n 0, 256,\n /* CONTEXT_SIGNED */\n 768, 512,\n]);\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nvar BrotliInput = require('./streams').BrotliInput;\nvar BrotliOutput = require('./streams').BrotliOutput;\nvar BrotliBitReader = require('./bit_reader');\nvar BrotliDictionary = require('./dictionary');\nvar HuffmanCode = require('./huffman').HuffmanCode;\nvar BrotliBuildHuffmanTable = require('./huffman').BrotliBuildHuffmanTable;\nvar Context = require('./context');\nvar Prefix = require('./prefix');\nvar Transform = require('./transform');\n\nvar kDefaultCodeLength = 8;\nvar kCodeLengthRepeatCode = 16;\nvar kNumLiteralCodes = 256;\nvar kNumInsertAndCopyCodes = 704;\nvar kNumBlockLengthCodes = 26;\nvar kLiteralContextBits = 6;\nvar kDistanceContextBits = 2;\n\nvar HUFFMAN_TABLE_BITS = 8;\nvar HUFFMAN_TABLE_MASK = 0xff;\n/* Maximum possible Huffman table size for an alphabet size of 704, max code\n * length 15 and root table bits 8. */\nvar HUFFMAN_MAX_TABLE_SIZE = 1080;\n\nvar CODE_LENGTH_CODES = 18;\nvar kCodeLengthCodeOrder = new Uint8Array([\n 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n]);\n\nvar NUM_DISTANCE_SHORT_CODES = 16;\nvar kDistanceShortCodeIndexOffset = new Uint8Array([\n 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2\n]);\n\nvar kDistanceShortCodeValueOffset = new Int8Array([\n 0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3\n]);\n\nvar kMaxHuffmanTableSize = new Uint16Array([\n 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822,\n 854, 886, 920, 952, 984, 1016, 1048, 1080\n]);\n\nfunction DecodeWindowBits(br) {\n var n;\n if (br.readBits(1) === 0) {\n return 16;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 17 + n;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 8 + n;\n }\n \n return 17;\n}\n\n/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\nfunction DecodeVarLenUint8(br) {\n if (br.readBits(1)) {\n var nbits = br.readBits(3);\n if (nbits === 0) {\n return 1;\n } else {\n return br.readBits(nbits) + (1 << nbits);\n }\n }\n return 0;\n}\n\nfunction MetaBlockLength() {\n this.meta_block_length = 0;\n this.input_end = 0;\n this.is_uncompressed = 0;\n this.is_metadata = false;\n}\n\nfunction DecodeMetaBlockLength(br) {\n var out = new MetaBlockLength; \n var size_nibbles;\n var size_bytes;\n var i;\n \n out.input_end = br.readBits(1);\n if (out.input_end && br.readBits(1)) {\n return out;\n }\n \n size_nibbles = br.readBits(2) + 4;\n if (size_nibbles === 7) {\n out.is_metadata = true;\n \n if (br.readBits(1) !== 0)\n throw new Error('Invalid reserved bit');\n \n size_bytes = br.readBits(2);\n if (size_bytes === 0)\n return out;\n \n for (i = 0; i < size_bytes; i++) {\n var next_byte = br.readBits(8);\n if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0)\n throw new Error('Invalid size byte');\n \n out.meta_block_length |= next_byte << (i * 8);\n }\n } else {\n for (i = 0; i < size_nibbles; ++i) {\n var next_nibble = br.readBits(4);\n if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)\n throw new Error('Invalid size nibble');\n \n out.meta_block_length |= next_nibble << (i * 4);\n }\n }\n \n ++out.meta_block_length;\n \n if (!out.input_end && !out.is_metadata) {\n out.is_uncompressed = br.readBits(1);\n }\n \n return out;\n}\n\n/* Decodes the next Huffman code from bit-stream. */\nfunction ReadSymbol(table, index, br) {\n var start_index = index;\n \n var nbits;\n br.fillBitWindow();\n index += (br.val_ >>> br.bit_pos_) & HUFFMAN_TABLE_MASK;\n nbits = table[index].bits - HUFFMAN_TABLE_BITS;\n if (nbits > 0) {\n br.bit_pos_ += HUFFMAN_TABLE_BITS;\n index += table[index].value;\n index += (br.val_ >>> br.bit_pos_) & ((1 << nbits) - 1);\n }\n br.bit_pos_ += table[index].bits;\n return table[index].value;\n}\n\nfunction ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {\n var symbol = 0;\n var prev_code_len = kDefaultCodeLength;\n var repeat = 0;\n var repeat_code_len = 0;\n var space = 32768;\n \n var table = [];\n for (var i = 0; i < 32; i++)\n table.push(new HuffmanCode(0, 0));\n \n BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);\n\n while (symbol < num_symbols && space > 0) {\n var p = 0;\n var code_len;\n \n br.readMoreInput();\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 31;\n br.bit_pos_ += table[p].bits;\n code_len = table[p].value & 0xff;\n if (code_len < kCodeLengthRepeatCode) {\n repeat = 0;\n code_lengths[symbol++] = code_len;\n if (code_len !== 0) {\n prev_code_len = code_len;\n space -= 32768 >> code_len;\n }\n } else {\n var extra_bits = code_len - 14;\n var old_repeat;\n var repeat_delta;\n var new_len = 0;\n if (code_len === kCodeLengthRepeatCode) {\n new_len = prev_code_len;\n }\n if (repeat_code_len !== new_len) {\n repeat = 0;\n repeat_code_len = new_len;\n }\n old_repeat = repeat;\n if (repeat > 0) {\n repeat -= 2;\n repeat <<= extra_bits;\n }\n repeat += br.readBits(extra_bits) + 3;\n repeat_delta = repeat - old_repeat;\n if (symbol + repeat_delta > num_symbols) {\n throw new Error('[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols');\n }\n \n for (var x = 0; x < repeat_delta; x++)\n code_lengths[symbol + x] = repeat_code_len;\n \n symbol += repeat_delta;\n \n if (repeat_code_len !== 0) {\n space -= repeat_delta << (15 - repeat_code_len);\n }\n }\n }\n if (space !== 0) {\n throw new Error(\"[ReadHuffmanCodeLengths] space = \" + space);\n }\n \n for (; symbol < num_symbols; symbol++)\n code_lengths[symbol] = 0;\n}\n\nfunction ReadHuffmanCode(alphabet_size, tables, table, br) {\n var table_size = 0;\n var simple_code_or_skip;\n var code_lengths = new Uint8Array(alphabet_size);\n \n br.readMoreInput();\n \n /* simple_code_or_skip is used as follows:\n 1 for simple code;\n 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\n simple_code_or_skip = br.readBits(2);\n if (simple_code_or_skip === 1) {\n /* Read symbols, codes & code lengths directly. */\n var i;\n var max_bits_counter = alphabet_size - 1;\n var max_bits = 0;\n var symbols = new Int32Array(4);\n var num_symbols = br.readBits(2) + 1;\n while (max_bits_counter) {\n max_bits_counter >>= 1;\n ++max_bits;\n }\n\n for (i = 0; i < num_symbols; ++i) {\n symbols[i] = br.readBits(max_bits) % alphabet_size;\n code_lengths[symbols[i]] = 2;\n }\n code_lengths[symbols[0]] = 1;\n switch (num_symbols) {\n case 1:\n break;\n case 3:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[1] === symbols[2])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n break;\n case 2:\n if (symbols[0] === symbols[1]) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n code_lengths[symbols[1]] = 1;\n break;\n case 4:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[0] === symbols[3]) ||\n (symbols[1] === symbols[2]) ||\n (symbols[1] === symbols[3]) ||\n (symbols[2] === symbols[3])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n if (br.readBits(1)) {\n code_lengths[symbols[2]] = 3;\n code_lengths[symbols[3]] = 3;\n } else {\n code_lengths[symbols[0]] = 2;\n }\n break;\n }\n } else { /* Decode Huffman-coded code lengths. */\n var i;\n var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);\n var space = 32;\n var num_codes = 0;\n /* Static Huffman code for the code length code lengths */\n var huff = [\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 1),\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 5)\n ];\n for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {\n var code_len_idx = kCodeLengthCodeOrder[i];\n var p = 0;\n var v;\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 15;\n br.bit_pos_ += huff[p].bits;\n v = huff[p].value;\n code_length_code_lengths[code_len_idx] = v;\n if (v !== 0) {\n space -= (32 >> v);\n ++num_codes;\n }\n }\n \n if (!(num_codes === 1 || space === 0))\n throw new Error('[ReadHuffmanCode] invalid num_codes or space');\n \n ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);\n }\n \n table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);\n \n if (table_size === 0) {\n throw new Error(\"[ReadHuffmanCode] BuildHuffmanTable failed: \");\n }\n \n return table_size;\n}\n\nfunction ReadBlockLength(table, index, br) {\n var code;\n var nbits;\n code = ReadSymbol(table, index, br);\n nbits = Prefix.kBlockLengthPrefixCode[code].nbits;\n return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);\n}\n\nfunction TranslateShortCodes(code, ringbuffer, index) {\n var val;\n if (code < NUM_DISTANCE_SHORT_CODES) {\n index += kDistanceShortCodeIndexOffset[code];\n index &= 3;\n val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];\n } else {\n val = code - NUM_DISTANCE_SHORT_CODES + 1;\n }\n return val;\n}\n\nfunction MoveToFront(v, index) {\n var value = v[index];\n var i = index;\n for (; i; --i) v[i] = v[i - 1];\n v[0] = value;\n}\n\nfunction InverseMoveToFrontTransform(v, v_len) {\n var mtf = new Uint8Array(256);\n var i;\n for (i = 0; i < 256; ++i) {\n mtf[i] = i;\n }\n for (i = 0; i < v_len; ++i) {\n var index = v[i];\n v[i] = mtf[index];\n if (index) MoveToFront(mtf, index);\n }\n}\n\n/* Contains a collection of huffman trees with the same alphabet size. */\nfunction HuffmanTreeGroup(alphabet_size, num_htrees) {\n this.alphabet_size = alphabet_size;\n this.num_htrees = num_htrees;\n this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[(alphabet_size + 31) >>> 5]); \n this.htrees = new Uint32Array(num_htrees);\n}\n\nHuffmanTreeGroup.prototype.decode = function(br) {\n var i;\n var table_size;\n var next = 0;\n for (i = 0; i < this.num_htrees; ++i) {\n this.htrees[i] = next;\n table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);\n next += table_size;\n }\n};\n\nfunction DecodeContextMap(context_map_size, br) {\n var out = { num_htrees: null, context_map: null };\n var use_rle_for_zeros;\n var max_run_length_prefix = 0;\n var table;\n var i;\n \n br.readMoreInput();\n var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;\n\n var context_map = out.context_map = new Uint8Array(context_map_size);\n if (num_htrees <= 1) {\n return out;\n }\n\n use_rle_for_zeros = br.readBits(1);\n if (use_rle_for_zeros) {\n max_run_length_prefix = br.readBits(4) + 1;\n }\n \n table = [];\n for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {\n table[i] = new HuffmanCode(0, 0);\n }\n \n ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);\n \n for (i = 0; i < context_map_size;) {\n var code;\n\n br.readMoreInput();\n code = ReadSymbol(table, 0, br);\n if (code === 0) {\n context_map[i] = 0;\n ++i;\n } else if (code <= max_run_length_prefix) {\n var reps = 1 + (1 << code) + br.readBits(code);\n while (--reps) {\n if (i >= context_map_size) {\n throw new Error(\"[DecodeContextMap] i >= context_map_size\");\n }\n context_map[i] = 0;\n ++i;\n }\n } else {\n context_map[i] = code - max_run_length_prefix;\n ++i;\n }\n }\n if (br.readBits(1)) {\n InverseMoveToFrontTransform(context_map, context_map_size);\n }\n \n return out;\n}\n\nfunction DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {\n var ringbuffer = tree_type * 2;\n var index = tree_type;\n var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);\n var block_type;\n if (type_code === 0) {\n block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];\n } else if (type_code === 1) {\n block_type = ringbuffers[ringbuffer + ((indexes[index] - 1) & 1)] + 1;\n } else {\n block_type = type_code - 2;\n }\n if (block_type >= max_block_type) {\n block_type -= max_block_type;\n }\n block_types[tree_type] = block_type;\n ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;\n ++indexes[index];\n}\n\nfunction CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {\n var rb_size = ringbuffer_mask + 1;\n var rb_pos = pos & ringbuffer_mask;\n var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;\n var nbytes;\n\n /* For short lengths copy byte-by-byte */\n if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {\n while (len-- > 0) {\n br.readMoreInput();\n ringbuffer[rb_pos++] = br.readBits(8);\n if (rb_pos === rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos = 0;\n }\n }\n return;\n }\n\n if (br.bit_end_pos_ < 32) {\n throw new Error('[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32');\n }\n\n /* Copy remaining 0-4 bytes from br.val_ to ringbuffer. */\n while (br.bit_pos_ < 32) {\n ringbuffer[rb_pos] = (br.val_ >>> br.bit_pos_);\n br.bit_pos_ += 8;\n ++rb_pos;\n --len;\n }\n\n /* Copy remaining bytes from br.buf_ to ringbuffer. */\n nbytes = (br.bit_end_pos_ - br.bit_pos_) >> 3;\n if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {\n var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;\n for (var x = 0; x < tail; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n nbytes -= tail;\n rb_pos += tail;\n len -= tail;\n br_pos = 0;\n }\n\n for (var x = 0; x < nbytes; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n rb_pos += nbytes;\n len -= nbytes;\n\n /* If we wrote past the logical end of the ringbuffer, copy the tail of the\n ringbuffer to its beginning and flush the ringbuffer to the output. */\n if (rb_pos >= rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos -= rb_size; \n for (var x = 0; x < rb_pos; x++)\n ringbuffer[x] = ringbuffer[rb_size + x];\n }\n\n /* If we have more to copy than the remaining size of the ringbuffer, then we\n first fill the ringbuffer from the input and then flush the ringbuffer to\n the output */\n while (rb_pos + len >= rb_size) {\n nbytes = rb_size - rb_pos;\n if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n output.write(ringbuffer, rb_size);\n len -= nbytes;\n rb_pos = 0;\n }\n\n /* Copy straight from the input onto the ringbuffer. The ringbuffer will be\n flushed to the output at a later time. */\n if (br.input_.read(ringbuffer, rb_pos, len) < len) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n\n /* Restore the state of the bit reader. */\n br.reset();\n}\n\n/* Advances the bit reader position to the next byte boundary and verifies\n that any skipped bits are set to zero. */\nfunction JumpToByteBoundary(br) {\n var new_bit_pos = (br.bit_pos_ + 7) & ~7;\n var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);\n return pad_bits == 0;\n}\n\nfunction BrotliDecompressedSize(buffer) {\n var input = new BrotliInput(buffer);\n var br = new BrotliBitReader(input);\n DecodeWindowBits(br);\n var out = DecodeMetaBlockLength(br);\n return out.meta_block_length;\n}\n\nexports.BrotliDecompressedSize = BrotliDecompressedSize;\n\nfunction BrotliDecompressBuffer(buffer, output_size) {\n var input = new BrotliInput(buffer);\n \n if (output_size == null) {\n output_size = BrotliDecompressedSize(buffer);\n }\n \n var output_buffer = new Uint8Array(output_size);\n var output = new BrotliOutput(output_buffer);\n \n BrotliDecompress(input, output);\n \n if (output.pos < output.buffer.length) {\n output.buffer = output.buffer.subarray(0, output.pos);\n }\n \n return output.buffer;\n}\n\nexports.BrotliDecompressBuffer = BrotliDecompressBuffer;\n\nfunction BrotliDecompress(input, output) {\n var i;\n var pos = 0;\n var input_end = 0;\n var window_bits = 0;\n var max_backward_distance;\n var max_distance = 0;\n var ringbuffer_size;\n var ringbuffer_mask;\n var ringbuffer;\n var ringbuffer_end;\n /* This ring buffer holds a few past copy distances that will be used by */\n /* some special distance codes. */\n var dist_rb = [ 16, 15, 11, 4 ];\n var dist_rb_idx = 0;\n /* The previous 2 bytes used for context. */\n var prev_byte1 = 0;\n var prev_byte2 = 0;\n var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];\n var block_type_trees;\n var block_len_trees;\n var br;\n\n /* We need the slack region for the following reasons:\n - always doing two 8-byte copies for fast backward copying\n - transforms\n - flushing the input ringbuffer when decoding uncompressed blocks */\n var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;\n\n br = new BrotliBitReader(input);\n\n /* Decode window size. */\n window_bits = DecodeWindowBits(br);\n max_backward_distance = (1 << window_bits) - 16;\n\n ringbuffer_size = 1 << window_bits;\n ringbuffer_mask = ringbuffer_size - 1;\n ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);\n ringbuffer_end = ringbuffer_size;\n\n block_type_trees = [];\n block_len_trees = [];\n for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {\n block_type_trees[x] = new HuffmanCode(0, 0);\n block_len_trees[x] = new HuffmanCode(0, 0);\n }\n\n while (!input_end) {\n var meta_block_remaining_len = 0;\n var is_uncompressed;\n var block_length = [ 1 << 28, 1 << 28, 1 << 28 ];\n var block_type = [ 0 ];\n var num_block_types = [ 1, 1, 1 ];\n var block_type_rb = [ 0, 1, 0, 1, 0, 1 ];\n var block_type_rb_index = [ 0 ];\n var distance_postfix_bits;\n var num_direct_distance_codes;\n var distance_postfix_mask;\n var num_distance_codes;\n var context_map = null;\n var context_modes = null;\n var num_literal_htrees;\n var dist_context_map = null;\n var num_dist_htrees;\n var context_offset = 0;\n var context_map_slice = null;\n var literal_htree_index = 0;\n var dist_context_offset = 0;\n var dist_context_map_slice = null;\n var dist_htree_index = 0;\n var context_lookup_offset1 = 0;\n var context_lookup_offset2 = 0;\n var context_mode;\n var htree_command;\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].codes = null;\n hgroup[i].htrees = null;\n }\n\n br.readMoreInput();\n \n var _out = DecodeMetaBlockLength(br);\n meta_block_remaining_len = _out.meta_block_length;\n if (pos + meta_block_remaining_len > output.buffer.length) {\n /* We need to grow the output buffer to fit the additional data. */\n var tmp = new Uint8Array( pos + meta_block_remaining_len );\n tmp.set( output.buffer );\n output.buffer = tmp;\n } \n input_end = _out.input_end;\n is_uncompressed = _out.is_uncompressed;\n \n if (_out.is_metadata) {\n JumpToByteBoundary(br);\n \n for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {\n br.readMoreInput();\n /* Read one byte and ignore it. */\n br.readBits(8);\n }\n \n continue;\n }\n \n if (meta_block_remaining_len === 0) {\n continue;\n }\n \n if (is_uncompressed) {\n br.bit_pos_ = (br.bit_pos_ + 7) & ~7;\n CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos,\n ringbuffer, ringbuffer_mask, br);\n pos += meta_block_remaining_len;\n continue;\n }\n \n for (i = 0; i < 3; ++i) {\n num_block_types[i] = DecodeVarLenUint8(br) + 1;\n if (num_block_types[i] >= 2) {\n ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_type_rb_index[i] = 1;\n }\n }\n \n br.readMoreInput();\n \n distance_postfix_bits = br.readBits(2);\n num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);\n distance_postfix_mask = (1 << distance_postfix_bits) - 1;\n num_distance_codes = (num_direct_distance_codes + (48 << distance_postfix_bits));\n context_modes = new Uint8Array(num_block_types[0]);\n\n for (i = 0; i < num_block_types[0]; ++i) {\n br.readMoreInput();\n context_modes[i] = (br.readBits(2) << 1);\n }\n \n var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);\n num_literal_htrees = _o1.num_htrees;\n context_map = _o1.context_map;\n \n var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);\n num_dist_htrees = _o2.num_htrees;\n dist_context_map = _o2.context_map;\n \n hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);\n hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);\n hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].decode(br);\n }\n\n context_map_slice = 0;\n dist_context_map_slice = 0;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n htree_command = hgroup[1].htrees[0];\n\n while (meta_block_remaining_len > 0) {\n var cmd_code;\n var range_idx;\n var insert_code;\n var copy_code;\n var insert_length;\n var copy_length;\n var distance_code;\n var distance;\n var context;\n var j;\n var copy_dst;\n\n br.readMoreInput();\n \n if (block_length[1] === 0) {\n DecodeBlockType(num_block_types[1],\n block_type_trees, 1, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);\n htree_command = hgroup[1].htrees[block_type[1]];\n }\n --block_length[1];\n cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);\n range_idx = cmd_code >> 6;\n if (range_idx >= 2) {\n range_idx -= 2;\n distance_code = -1;\n } else {\n distance_code = 0;\n }\n insert_code = Prefix.kInsertRangeLut[range_idx] + ((cmd_code >> 3) & 7);\n copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);\n insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset +\n br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);\n copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset +\n br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);\n prev_byte1 = ringbuffer[pos-1 & ringbuffer_mask];\n prev_byte2 = ringbuffer[pos-2 & ringbuffer_mask];\n for (j = 0; j < insert_length; ++j) {\n br.readMoreInput();\n\n if (block_length[0] === 0) {\n DecodeBlockType(num_block_types[0],\n block_type_trees, 0, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[0] = ReadBlockLength(block_len_trees, 0, br);\n context_offset = block_type[0] << kLiteralContextBits;\n context_map_slice = context_offset;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n }\n context = (Context.lookup[context_lookup_offset1 + prev_byte1] |\n Context.lookup[context_lookup_offset2 + prev_byte2]);\n literal_htree_index = context_map[context_map_slice + context];\n --block_length[0];\n prev_byte2 = prev_byte1;\n prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);\n ringbuffer[pos & ringbuffer_mask] = prev_byte1;\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n }\n meta_block_remaining_len -= insert_length;\n if (meta_block_remaining_len <= 0) break;\n\n if (distance_code < 0) {\n var context;\n \n br.readMoreInput();\n if (block_length[2] === 0) {\n DecodeBlockType(num_block_types[2],\n block_type_trees, 2, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);\n dist_context_offset = block_type[2] << kDistanceContextBits;\n dist_context_map_slice = dist_context_offset;\n }\n --block_length[2];\n context = (copy_length > 4 ? 3 : copy_length - 2) & 0xff;\n dist_htree_index = dist_context_map[dist_context_map_slice + context];\n distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);\n if (distance_code >= num_direct_distance_codes) {\n var nbits;\n var postfix;\n var offset;\n distance_code -= num_direct_distance_codes;\n postfix = distance_code & distance_postfix_mask;\n distance_code >>= distance_postfix_bits;\n nbits = (distance_code >> 1) + 1;\n offset = ((2 + (distance_code & 1)) << nbits) - 4;\n distance_code = num_direct_distance_codes +\n ((offset + br.readBits(nbits)) <<\n distance_postfix_bits) + postfix;\n }\n }\n\n /* Convert the distance code to the actual distance by possibly looking */\n /* up past distnaces from the ringbuffer. */\n distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);\n if (distance < 0) {\n throw new Error('[BrotliDecompress] invalid distance');\n }\n\n if (pos < max_backward_distance &&\n max_distance !== max_backward_distance) {\n max_distance = pos;\n } else {\n max_distance = max_backward_distance;\n }\n\n copy_dst = pos & ringbuffer_mask;\n\n if (distance > max_distance) {\n if (copy_length >= BrotliDictionary.minDictionaryWordLength &&\n copy_length <= BrotliDictionary.maxDictionaryWordLength) {\n var offset = BrotliDictionary.offsetsByLength[copy_length];\n var word_id = distance - max_distance - 1;\n var shift = BrotliDictionary.sizeBitsByLength[copy_length];\n var mask = (1 << shift) - 1;\n var word_idx = word_id & mask;\n var transform_idx = word_id >> shift;\n offset += word_idx * copy_length;\n if (transform_idx < Transform.kNumTransforms) {\n var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);\n copy_dst += len;\n pos += len;\n meta_block_remaining_len -= len;\n if (copy_dst >= ringbuffer_end) {\n output.write(ringbuffer, ringbuffer_size);\n \n for (var _x = 0; _x < (copy_dst - ringbuffer_end); _x++)\n ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n if (distance_code > 0) {\n dist_rb[dist_rb_idx & 3] = distance;\n ++dist_rb_idx;\n }\n\n if (copy_length > meta_block_remaining_len) {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n\n for (j = 0; j < copy_length; ++j) {\n ringbuffer[pos & ringbuffer_mask] = ringbuffer[(pos - distance) & ringbuffer_mask];\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n --meta_block_remaining_len;\n }\n }\n\n /* When we get here, we must have inserted at least one literal and */\n /* made a copy of at least length two, therefore accessing the last 2 */\n /* bytes is valid. */\n prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask];\n prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask];\n }\n\n /* Protect pos from overflow, wrap it around at every GB of input data */\n pos &= 0x3fffffff;\n }\n\n output.write(ringbuffer, pos & ringbuffer_mask);\n}\n\nexports.BrotliDecompress = BrotliDecompress;\n\nBrotliDictionary.init();\n","var base64 = require('base64-js');\n\n/**\n * The normal dictionary-data.js is quite large, which makes it \n * unsuitable for browser usage. In order to make it smaller, \n * we read dictionary.bin, which is a compressed version of\n * the dictionary, and on initial load, Brotli decompresses \n * it's own dictionary. 😜\n */\nexports.init = function() {\n var BrotliDecompressBuffer = require('./decode').BrotliDecompressBuffer;\n var compressed = base64.toByteArray(require('./dictionary.bin.js'));\n return BrotliDecompressBuffer(compressed);\n};\n","module.exports=\"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\";\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Collection of static dictionary words.\n*/\n\nvar data = require('./dictionary-data');\nexports.init = function() {\n exports.dictionary = data.init();\n};\n\nexports.offsetsByLength = new Uint32Array([\n 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032,\n 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536,\n 115968, 118528, 119872, 121280, 122016,\n]);\n\nexports.sizeBitsByLength = new Uint8Array([\n 0, 0, 0, 0, 10, 10, 11, 11, 10, 10,\n 10, 10, 10, 9, 9, 8, 7, 7, 8, 7,\n 7, 6, 6, 5, 5,\n]);\n\nexports.minDictionaryWordLength = 4;\nexports.maxDictionaryWordLength = 24;\n","function HuffmanCode(bits, value) {\n this.bits = bits; /* number of bits used for this symbol */\n this.value = value; /* symbol value or table offset */\n}\n\nexports.HuffmanCode = HuffmanCode;\n\nvar MAX_LENGTH = 15;\n\n/* Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the\n bit-wise reversal of the len least significant bits of key. */\nfunction GetNextKey(key, len) {\n var step = 1 << (len - 1);\n while (key & step) {\n step >>= 1;\n }\n return (key & (step - 1)) + step;\n}\n\n/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\n/* Assumes that end is an integer multiple of step */\nfunction ReplicateValue(table, i, step, end, code) {\n do {\n end -= step;\n table[i + end] = new HuffmanCode(code.bits, code.value);\n } while (end > 0);\n}\n\n/* Returns the table width of the next 2nd level table. count is the histogram\n of bit lengths for the remaining symbols, len is the code length of the next\n processed symbol */\nfunction NextTableBitSize(count, len, root_bits) {\n var left = 1 << (len - root_bits);\n while (len < MAX_LENGTH) {\n left -= count[len];\n if (left <= 0) break;\n ++len;\n left <<= 1;\n }\n return len - root_bits;\n}\n\nexports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {\n var start_table = table;\n var code; /* current table entry */\n var len; /* current code length */\n var symbol; /* symbol index in original or sorted table */\n var key; /* reversed prefix code */\n var step; /* step size to replicate values in current table */\n var low; /* low bits for current root entry */\n var mask; /* mask for low bits */\n var table_bits; /* key length of current table */\n var table_size; /* size of current table */\n var total_size; /* sum of root table size and 2nd level table sizes */\n var sorted; /* symbols sorted by code length */\n var count = new Int32Array(MAX_LENGTH + 1); /* number of codes of each length */\n var offset = new Int32Array(MAX_LENGTH + 1); /* offsets in sorted table for each length */\n\n sorted = new Int32Array(code_lengths_size);\n\n /* build histogram of code lengths */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n count[code_lengths[symbol]]++;\n }\n\n /* generate offsets into sorted symbol table by code length */\n offset[1] = 0;\n for (len = 1; len < MAX_LENGTH; len++) {\n offset[len + 1] = offset[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n if (code_lengths[symbol] !== 0) {\n sorted[offset[code_lengths[symbol]]++] = symbol;\n }\n }\n \n table_bits = root_bits;\n table_size = 1 << table_bits;\n total_size = table_size;\n\n /* special case code with only one value */\n if (offset[MAX_LENGTH] === 1) {\n for (key = 0; key < total_size; ++key) {\n root_table[table + key] = new HuffmanCode(0, sorted[0] & 0xffff);\n }\n \n return total_size;\n }\n\n /* fill in root table */\n key = 0;\n symbol = 0;\n for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n code = new HuffmanCode(len & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + key, step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n\n /* fill in 2nd level tables and add pointers to root table */\n mask = total_size - 1;\n low = -1;\n for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n if ((key & mask) !== low) {\n table += table_size;\n table_bits = NextTableBitSize(count, len, root_bits);\n table_size = 1 << table_bits;\n total_size += table_size;\n low = key & mask;\n root_table[start_table + low] = new HuffmanCode((table_bits + root_bits) & 0xff, ((table - start_table) - low) & 0xffff);\n }\n code = new HuffmanCode((len - root_bits) & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n \n return total_size;\n}\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Lookup tables to map prefix codes to value ranges. This is used during\n decoding of the block lengths, literal insertion lengths and copy lengths.\n*/\n\n/* Represents the range of values belonging to a prefix code: */\n/* [offset, offset + 2^nbits) */\nfunction PrefixCodeRange(offset, nbits) {\n this.offset = offset;\n this.nbits = nbits;\n}\n\nexports.kBlockLengthPrefixCode = [\n new PrefixCodeRange(1, 2), new PrefixCodeRange(5, 2), new PrefixCodeRange(9, 2), new PrefixCodeRange(13, 2),\n new PrefixCodeRange(17, 3), new PrefixCodeRange(25, 3), new PrefixCodeRange(33, 3), new PrefixCodeRange(41, 3),\n new PrefixCodeRange(49, 4), new PrefixCodeRange(65, 4), new PrefixCodeRange(81, 4), new PrefixCodeRange(97, 4),\n new PrefixCodeRange(113, 5), new PrefixCodeRange(145, 5), new PrefixCodeRange(177, 5), new PrefixCodeRange(209, 5),\n new PrefixCodeRange(241, 6), new PrefixCodeRange(305, 6), new PrefixCodeRange(369, 7), new PrefixCodeRange(497, 8),\n new PrefixCodeRange(753, 9), new PrefixCodeRange(1265, 10), new PrefixCodeRange(2289, 11), new PrefixCodeRange(4337, 12),\n new PrefixCodeRange(8433, 13), new PrefixCodeRange(16625, 24)\n];\n\nexports.kInsertLengthPrefixCode = [\n new PrefixCodeRange(0, 0), new PrefixCodeRange(1, 0), new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0),\n new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 1), new PrefixCodeRange(8, 1),\n new PrefixCodeRange(10, 2), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 3), new PrefixCodeRange(26, 3),\n new PrefixCodeRange(34, 4), new PrefixCodeRange(50, 4), new PrefixCodeRange(66, 5), new PrefixCodeRange(98, 5),\n new PrefixCodeRange(130, 6), new PrefixCodeRange(194, 7), new PrefixCodeRange(322, 8), new PrefixCodeRange(578, 9),\n new PrefixCodeRange(1090, 10), new PrefixCodeRange(2114, 12), new PrefixCodeRange(6210, 14), new PrefixCodeRange(22594, 24),\n];\n\nexports.kCopyLengthPrefixCode = [\n new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0),\n new PrefixCodeRange(6, 0), new PrefixCodeRange(7, 0), new PrefixCodeRange(8, 0), new PrefixCodeRange(9, 0),\n new PrefixCodeRange(10, 1), new PrefixCodeRange(12, 1), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 2),\n new PrefixCodeRange(22, 3), new PrefixCodeRange(30, 3), new PrefixCodeRange(38, 4), new PrefixCodeRange(54, 4),\n new PrefixCodeRange(70, 5), new PrefixCodeRange(102, 5), new PrefixCodeRange(134, 6), new PrefixCodeRange(198, 7),\n new PrefixCodeRange(326, 8), new PrefixCodeRange(582, 9), new PrefixCodeRange(1094, 10), new PrefixCodeRange(2118, 24),\n];\n\nexports.kInsertRangeLut = [\n 0, 0, 8, 8, 0, 16, 8, 16, 16,\n];\n\nexports.kCopyRangeLut = [\n 0, 8, 0, 8, 16, 0, 16, 8, 16,\n];\n","function BrotliInput(buffer) {\n this.buffer = buffer;\n this.pos = 0;\n}\n\nBrotliInput.prototype.read = function(buf, i, count) {\n if (this.pos + count > this.buffer.length) {\n count = this.buffer.length - this.pos;\n }\n \n for (var p = 0; p < count; p++)\n buf[i + p] = this.buffer[this.pos + p];\n \n this.pos += count;\n return count;\n}\n\nexports.BrotliInput = BrotliInput;\n\nfunction BrotliOutput(buf) {\n this.buffer = buf;\n this.pos = 0;\n}\n\nBrotliOutput.prototype.write = function(buf, count) {\n if (this.pos + count > this.buffer.length)\n throw new Error('Output buffer is not large enough');\n \n this.buffer.set(buf.subarray(0, count), this.pos);\n this.pos += count;\n return count;\n};\n\nexports.BrotliOutput = BrotliOutput;\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Transformations on dictionary words.\n*/\n\nvar BrotliDictionary = require('./dictionary');\n\nvar kIdentity = 0;\nvar kOmitLast1 = 1;\nvar kOmitLast2 = 2;\nvar kOmitLast3 = 3;\nvar kOmitLast4 = 4;\nvar kOmitLast5 = 5;\nvar kOmitLast6 = 6;\nvar kOmitLast7 = 7;\nvar kOmitLast8 = 8;\nvar kOmitLast9 = 9;\nvar kUppercaseFirst = 10;\nvar kUppercaseAll = 11;\nvar kOmitFirst1 = 12;\nvar kOmitFirst2 = 13;\nvar kOmitFirst3 = 14;\nvar kOmitFirst4 = 15;\nvar kOmitFirst5 = 16;\nvar kOmitFirst6 = 17;\nvar kOmitFirst7 = 18;\nvar kOmitFirst8 = 19;\nvar kOmitFirst9 = 20;\n\nfunction Transform(prefix, transform, suffix) {\n this.prefix = new Uint8Array(prefix.length);\n this.transform = transform;\n this.suffix = new Uint8Array(suffix.length);\n \n for (var i = 0; i < prefix.length; i++)\n this.prefix[i] = prefix.charCodeAt(i);\n \n for (var i = 0; i < suffix.length; i++)\n this.suffix[i] = suffix.charCodeAt(i);\n}\n\nvar kTransforms = [\n new Transform( \"\", kIdentity, \"\" ),\n new Transform( \"\", kIdentity, \" \" ),\n new Transform( \" \", kIdentity, \" \" ),\n new Transform( \"\", kOmitFirst1, \"\" ),\n new Transform( \"\", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" the \" ),\n new Transform( \" \", kIdentity, \"\" ),\n new Transform( \"s \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \" of \" ),\n new Transform( \"\", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \" and \" ),\n new Transform( \"\", kOmitFirst2, \"\" ),\n new Transform( \"\", kOmitLast1, \"\" ),\n new Transform( \", \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \", \" ),\n new Transform( \" \", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" in \" ),\n new Transform( \"\", kIdentity, \" to \" ),\n new Transform( \"e \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \"\\\"\" ),\n new Transform( \"\", kIdentity, \".\" ),\n new Transform( \"\", kIdentity, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"\\n\" ),\n new Transform( \"\", kOmitLast3, \"\" ),\n new Transform( \"\", kIdentity, \"]\" ),\n new Transform( \"\", kIdentity, \" for \" ),\n new Transform( \"\", kOmitFirst3, \"\" ),\n new Transform( \"\", kOmitLast2, \"\" ),\n new Transform( \"\", kIdentity, \" a \" ),\n new Transform( \"\", kIdentity, \" that \" ),\n new Transform( \" \", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \". \" ),\n new Transform( \".\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \", \" ),\n new Transform( \"\", kOmitFirst4, \"\" ),\n new Transform( \"\", kIdentity, \" with \" ),\n new Transform( \"\", kIdentity, \"'\" ),\n new Transform( \"\", kIdentity, \" from \" ),\n new Transform( \"\", kIdentity, \" by \" ),\n new Transform( \"\", kOmitFirst5, \"\" ),\n new Transform( \"\", kOmitFirst6, \"\" ),\n new Transform( \" the \", kIdentity, \"\" ),\n new Transform( \"\", kOmitLast4, \"\" ),\n new Transform( \"\", kIdentity, \". The \" ),\n new Transform( \"\", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \" on \" ),\n new Transform( \"\", kIdentity, \" as \" ),\n new Transform( \"\", kIdentity, \" is \" ),\n new Transform( \"\", kOmitLast7, \"\" ),\n new Transform( \"\", kOmitLast1, \"ing \" ),\n new Transform( \"\", kIdentity, \"\\n\\t\" ),\n new Transform( \"\", kIdentity, \":\" ),\n new Transform( \" \", kIdentity, \". \" ),\n new Transform( \"\", kIdentity, \"ed \" ),\n new Transform( \"\", kOmitFirst9, \"\" ),\n new Transform( \"\", kOmitFirst7, \"\" ),\n new Transform( \"\", kOmitLast6, \"\" ),\n new Transform( \"\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \", \" ),\n new Transform( \"\", kOmitLast8, \"\" ),\n new Transform( \"\", kIdentity, \" at \" ),\n new Transform( \"\", kIdentity, \"ly \" ),\n new Transform( \" the \", kIdentity, \" of \" ),\n new Transform( \"\", kOmitLast5, \"\" ),\n new Transform( \"\", kOmitLast9, \"\" ),\n new Transform( \" \", kUppercaseFirst, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\"\" ),\n new Transform( \".\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseAll, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"=\\\"\" ),\n new Transform( \" \", kIdentity, \".\" ),\n new Transform( \".com/\", kIdentity, \"\" ),\n new Transform( \" the \", kIdentity, \" of the \" ),\n new Transform( \"\", kUppercaseFirst, \"'\" ),\n new Transform( \"\", kIdentity, \". This \" ),\n new Transform( \"\", kIdentity, \",\" ),\n new Transform( \".\", kIdentity, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \".\" ),\n new Transform( \"\", kIdentity, \" not \" ),\n new Transform( \" \", kIdentity, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"er \" ),\n new Transform( \" \", kUppercaseAll, \" \" ),\n new Transform( \"\", kIdentity, \"al \" ),\n new Transform( \" \", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseAll, \"\\\"\" ),\n new Transform( \"\", kUppercaseFirst, \". \" ),\n new Transform( \" \", kIdentity, \"(\" ),\n new Transform( \"\", kIdentity, \"ful \" ),\n new Transform( \" \", kUppercaseFirst, \". \" ),\n new Transform( \"\", kIdentity, \"ive \" ),\n new Transform( \"\", kIdentity, \"less \" ),\n new Transform( \"\", kUppercaseAll, \"'\" ),\n new Transform( \"\", kIdentity, \"est \" ),\n new Transform( \" \", kUppercaseFirst, \".\" ),\n new Transform( \"\", kUppercaseAll, \"\\\">\" ),\n new Transform( \" \", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseFirst, \",\" ),\n new Transform( \"\", kIdentity, \"ize \" ),\n new Transform( \"\", kUppercaseAll, \".\" ),\n new Transform( \"\\xc2\\xa0\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \",\" ),\n new Transform( \"\", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \"\", kUppercaseAll, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"ous \" ),\n new Transform( \"\", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \",\" ),\n new Transform( \" \", kUppercaseAll, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseAll, \",\" ),\n new Transform( \"\", kUppercaseAll, \"(\" ),\n new Transform( \"\", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseAll, \".\" ),\n new Transform( \"\", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \"='\" )\n];\n\nexports.kTransforms = kTransforms;\nexports.kNumTransforms = kTransforms.length;\n\nfunction ToUpperCase(p, i) {\n if (p[i] < 0xc0) {\n if (p[i] >= 97 && p[i] <= 122) {\n p[i] ^= 32;\n }\n return 1;\n }\n \n /* An overly simplified uppercasing model for utf-8. */\n if (p[i] < 0xe0) {\n p[i + 1] ^= 32;\n return 2;\n }\n \n /* An arbitrary transform for three byte characters. */\n p[i + 2] ^= 5;\n return 3;\n}\n\nexports.transformDictionaryWord = function(dst, idx, word, len, transform) {\n var prefix = kTransforms[transform].prefix;\n var suffix = kTransforms[transform].suffix;\n var t = kTransforms[transform].transform;\n var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);\n var i = 0;\n var start_idx = idx;\n var uppercase;\n \n if (skip > len) {\n skip = len;\n }\n \n var prefix_pos = 0;\n while (prefix_pos < prefix.length) {\n dst[idx++] = prefix[prefix_pos++];\n }\n \n word += skip;\n len -= skip;\n \n if (t <= kOmitLast9) {\n len -= t;\n }\n \n for (i = 0; i < len; i++) {\n dst[idx++] = BrotliDictionary.dictionary[word + i];\n }\n \n uppercase = idx - len;\n \n if (t === kUppercaseFirst) {\n ToUpperCase(dst, uppercase);\n } else if (t === kUppercaseAll) {\n while (len > 0) {\n var step = ToUpperCase(dst, uppercase);\n uppercase += step;\n len -= step;\n }\n }\n \n var suffix_pos = 0;\n while (suffix_pos < suffix.length) {\n dst[idx++] = suffix[suffix_pos++];\n }\n \n return idx - start_idx;\n}\n","module.exports = require('./dec/decode').BrotliDecompressBuffer;\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","const INITIAL_STATE = 1;\nconst FAIL_STATE = 0;\n\n/**\n * A StateMachine represents a deterministic finite automaton.\n * It can perform matches over a sequence of values, similar to a regular expression.\n */\nexport default class StateMachine {\n constructor(dfa) {\n this.stateTable = dfa.stateTable;\n this.accepting = dfa.accepting;\n this.tags = dfa.tags;\n }\n\n /**\n * Returns an iterable object that yields pattern matches over the input sequence.\n * Matches are of the form [startIndex, endIndex, tags].\n */\n match(str) {\n let self = this;\n return {\n *[Symbol.iterator]() {\n let state = INITIAL_STATE;\n let startRun = null;\n let lastAccepting = null;\n let lastState = null;\n\n for (let p = 0; p < str.length; p++) {\n let c = str[p];\n\n lastState = state;\n state = self.stateTable[state][c];\n\n if (state === FAIL_STATE) {\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[lastState]];\n }\n\n // reset the state as if we started over from the initial state\n state = self.stateTable[INITIAL_STATE][c];\n startRun = null;\n }\n\n // start a run if not in the failure state\n if (state !== FAIL_STATE && startRun == null) {\n startRun = p;\n }\n\n // if accepting, mark the potential match end\n if (self.accepting[state]) {\n lastAccepting = p;\n }\n\n // reset the state to the initial state if we get into the failure state\n if (state === FAIL_STATE) {\n state = INITIAL_STATE;\n }\n }\n\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[state]];\n }\n }\n };\n }\n\n /**\n * For each match over the input sequence, action functions matching\n * the tag definitions in the input pattern are called with the startIndex,\n * endIndex, and sub-match sequence.\n */\n apply(str, actions) {\n for (let [start, end, tags] of this.match(str)) {\n for (let tag of tags) {\n if (typeof actions[tag] === 'function') {\n actions[tag](start, end, str.slice(start, end + 1));\n }\n }\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\n const worksheet = this.workbook.addWorksheet(options.sheetName);\n\n const dateFormats = options.dateFormats || [\n 'YYYY-MM-DD[T]HH:mm:ssZ',\n 'YYYY-MM-DD[T]HH:mm:ss',\n 'MM-DD-YYYY',\n 'YYYY-MM-DD',\n ];\n const map =\n options.map ||\n function(datum) {\n if (datum === '') {\n return null;\n }\n const datumNumber = Number(datum);\n if (!Number.isNaN(datumNumber) && datumNumber !== Infinity) {\n return datumNumber;\n }\n const dt = dateFormats.reduce((matchingDate, currentDateFormat) => {\n if (matchingDate) {\n return matchingDate;\n }\n const dayjsObj = dayjs(datum, currentDateFormat, true);\n if (dayjsObj.isValid()) {\n return dayjsObj;\n }\n return null;\n }, null);\n if (dt) {\n return new Date(dt.valueOf());\n }\n const special = SpecialValues[datum];\n if (special !== undefined) {\n return special;\n }\n return datum;\n };\n\n const csvStream = fastCsv\n .parse(options.parserOptions)\n .on('data', data => {\n worksheet.addRow(data.map(map));\n })\n .on('end', () => {\n csvStream.emit('worksheet', worksheet);\n });\n\n csvStream.on('worksheet', resolve).on('error', reject);\n\n stream.pipe(csvStream);\n });\n }\n\n /**\n * @deprecated since version 4.0. You should use `CSV#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\n */\n createInputStream() {\n throw new Error(\n '`CSV#createInputStream` is deprecated. You should use `CSV#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md'\n );\n }\n\n write(stream, options) {\n return new Promise((resolve, reject) => {\n options = options || {};\n // const encoding = options.encoding || 'utf8';\n // const separator = options.separator || ',';\n // const quoteChar = options.quoteChar || '\\'';\n\n const worksheet = this.workbook.getWorksheet(options.sheetName || options.sheetId);\n\n const csvStream = fastCsv.format(options.formatterOptions);\n stream.on('finish', () => {\n resolve();\n });\n csvStream.on('error', reject);\n csvStream.pipe(stream);\n\n const {dateFormat, dateUTC} = options;\n const map =\n options.map ||\n (value => {\n if (value) {\n if (value.text || value.hyperlink) {\n return value.hyperlink || value.text || '';\n }\n if (value.formula || value.result) {\n return value.result || '';\n }\n if (value instanceof Date) {\n if (dateFormat) {\n return dateUTC\n ? dayjs.utc(value).format(dateFormat)\n : dayjs(value).format(dateFormat);\n }\n return dateUTC ? dayjs.utc(value).format() : dayjs(value).format();\n }\n if (value.error) {\n return value.error;\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n }\n return value;\n });\n\n const includeEmptyRows = options.includeEmptyRows === undefined || options.includeEmptyRows;\n let lastRow = 1;\n if (worksheet) {\n worksheet.eachRow((row, rowNumber) => {\n if (includeEmptyRows) {\n while (lastRow++ < rowNumber - 1) {\n csvStream.write([]);\n }\n }\n const {values} = row;\n values.shift();\n csvStream.write(values.map(map));\n lastRow = rowNumber;\n });\n }\n csvStream.end();\n });\n }\n\n writeFile(filename, options) {\n options = options || {};\n\n const streamOptions = {\n encoding: options.encoding || 'utf8',\n };\n const stream = fs.createWriteStream(filename, streamOptions);\n\n return this.write(stream, options);\n }\n\n async writeBuffer(options) {\n const stream = new StreamBuf();\n await this.write(stream, options);\n return stream.read();\n }\n}\n\nmodule.exports = CSV;\n","'use strict';\n\nconst colCache = require('../utils/col-cache');\n\nclass Anchor {\n constructor(worksheet, address, offset = 0) {\n this.worksheet = worksheet;\n\n if (!address) {\n this.nativeCol = 0;\n this.nativeColOff = 0;\n this.nativeRow = 0;\n this.nativeRowOff = 0;\n } else if (typeof address === 'string') {\n const decoded = colCache.decodeAddress(address);\n this.nativeCol = decoded.col + offset;\n this.nativeColOff = 0;\n this.nativeRow = decoded.row + offset;\n this.nativeRowOff = 0;\n } else if (address.nativeCol !== undefined) {\n this.nativeCol = address.nativeCol || 0;\n this.nativeColOff = address.nativeColOff || 0;\n this.nativeRow = address.nativeRow || 0;\n this.nativeRowOff = address.nativeRowOff || 0;\n } else if (address.col !== undefined) {\n this.col = address.col + offset;\n this.row = address.row + offset;\n } else {\n this.nativeCol = 0;\n this.nativeColOff = 0;\n this.nativeRow = 0;\n this.nativeRowOff = 0;\n }\n }\n\n static asInstance(model) {\n return model instanceof Anchor || model == null ? model : new Anchor(model);\n }\n\n get col() {\n return this.nativeCol + (Math.min(this.colWidth - 1, this.nativeColOff) / this.colWidth);\n }\n\n set col(v) {\n this.nativeCol = Math.floor(v);\n this.nativeColOff = Math.floor((v - this.nativeCol) * this.colWidth);\n }\n\n get row() {\n return this.nativeRow + (Math.min(this.rowHeight - 1, this.nativeRowOff) / this.rowHeight);\n }\n\n set row(v) {\n this.nativeRow = Math.floor(v);\n this.nativeRowOff = Math.floor((v - this.nativeRow) * this.rowHeight);\n }\n\n get colWidth() {\n return this.worksheet &&\n this.worksheet.getColumn(this.nativeCol + 1) &&\n this.worksheet.getColumn(this.nativeCol + 1).isCustomWidth\n ? Math.floor(this.worksheet.getColumn(this.nativeCol + 1).width * 10000)\n : 640000;\n }\n\n get rowHeight() {\n return this.worksheet &&\n this.worksheet.getRow(this.nativeRow + 1) &&\n this.worksheet.getRow(this.nativeRow + 1).height\n ? Math.floor(this.worksheet.getRow(this.nativeRow + 1).height * 10000)\n : 180000;\n }\n\n get model() {\n return {\n nativeCol: this.nativeCol,\n nativeColOff: this.nativeColOff,\n nativeRow: this.nativeRow,\n nativeRowOff: this.nativeRowOff,\n };\n }\n\n set model(value) {\n this.nativeCol = value.nativeCol;\n this.nativeColOff = value.nativeColOff;\n this.nativeRow = value.nativeRow;\n this.nativeRowOff = value.nativeRowOff;\n }\n}\n\nmodule.exports = Anchor;\n","/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\nconst _ = require('../utils/under-dash');\nconst Enums = require('./enums');\nconst {slideFormula} = require('../utils/shared-formula');\nconst Note = require('./note');\n// Cell requirements\n// Operate inside a worksheet\n// Store and retrieve a value with a range of types: text, number, date, hyperlink, reference, formula, etc.\n// Manage/use and manipulate cell format either as local to cell or inherited from column or row.\n\nclass Cell {\n constructor(row, column, address) {\n if (!row || !column) {\n throw new Error('A Cell needs a Row');\n }\n\n this._row = row;\n this._column = column;\n\n colCache.validateAddress(address);\n this._address = address;\n\n // TODO: lazy evaluation of this._value\n this._value = Value.create(Cell.Types.Null, this);\n\n this.style = this._mergeStyle(row.style, column.style, {});\n\n this._mergeCount = 0;\n }\n\n get worksheet() {\n return this._row.worksheet;\n }\n\n get workbook() {\n return this._row.worksheet.workbook;\n }\n\n // help GC by removing cyclic (and other) references\n destroy() {\n delete this.style;\n delete this._value;\n delete this._row;\n delete this._column;\n delete this._address;\n }\n\n // =========================================================================\n // Styles stuff\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this.style.numFmt = value;\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this.style.font = value;\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this.style.alignment = value;\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this.style.border = value;\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this.style.fill = value;\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this.style.protection = value;\n }\n\n _mergeStyle(rowStyle, colStyle, style) {\n const numFmt = (rowStyle && rowStyle.numFmt) || (colStyle && colStyle.numFmt);\n if (numFmt) style.numFmt = numFmt;\n\n const font = (rowStyle && rowStyle.font) || (colStyle && colStyle.font);\n if (font) style.font = font;\n\n const alignment = (rowStyle && rowStyle.alignment) || (colStyle && colStyle.alignment);\n if (alignment) style.alignment = alignment;\n\n const border = (rowStyle && rowStyle.border) || (colStyle && colStyle.border);\n if (border) style.border = border;\n\n const fill = (rowStyle && rowStyle.fill) || (colStyle && colStyle.fill);\n if (fill) style.fill = fill;\n\n const protection = (rowStyle && rowStyle.protection) || (colStyle && colStyle.protection);\n if (protection) style.protection = protection;\n\n return style;\n }\n\n // =========================================================================\n // return the address for this cell\n get address() {\n return this._address;\n }\n\n get row() {\n return this._row.number;\n }\n\n get col() {\n return this._column.number;\n }\n\n get $col$row() {\n return `$${this._column.letter}$${this.row}`;\n }\n\n // =========================================================================\n // Value stuff\n\n get type() {\n return this._value.type;\n }\n\n get effectiveType() {\n return this._value.effectiveType;\n }\n\n toCsvString() {\n return this._value.toCsvString();\n }\n\n // =========================================================================\n // Merge stuff\n\n addMergeRef() {\n this._mergeCount++;\n }\n\n releaseMergeRef() {\n this._mergeCount--;\n }\n\n get isMerged() {\n return this._mergeCount > 0 || this.type === Cell.Types.Merge;\n }\n\n merge(master, ignoreStyle) {\n this._value.release();\n this._value = Value.create(Cell.Types.Merge, this, master);\n if (!ignoreStyle) {\n this.style = master.style;\n }\n }\n\n unmerge() {\n if (this.type === Cell.Types.Merge) {\n this._value.release();\n this._value = Value.create(Cell.Types.Null, this);\n this.style = this._mergeStyle(this._row.style, this._column.style, {});\n }\n }\n\n isMergedTo(master) {\n if (this._value.type !== Cell.Types.Merge) return false;\n return this._value.isMergedTo(master);\n }\n\n get master() {\n if (this.type === Cell.Types.Merge) {\n return this._value.master;\n }\n return this; // an unmerged cell is its own master\n }\n\n get isHyperlink() {\n return this._value.type === Cell.Types.Hyperlink;\n }\n\n get hyperlink() {\n return this._value.hyperlink;\n }\n\n // return the value\n get value() {\n return this._value.value;\n }\n\n // set the value - can be number, string or raw\n set value(v) {\n // special case - merge cells set their master's value\n if (this.type === Cell.Types.Merge) {\n this._value.master.value = v;\n return;\n }\n\n this._value.release();\n\n // assign value\n this._value = Value.create(Value.getType(v), this, v);\n }\n\n get note() {\n return this._comment && this._comment.note;\n }\n\n set note(note) {\n this._comment = new Note(note);\n }\n\n get text() {\n return this._value.toString();\n }\n\n get html() {\n return _.escapeHtml(this.text);\n }\n\n toString() {\n return this.text;\n }\n\n _upgradeToHyperlink(hyperlink) {\n // if this cell is a string, turn it into a Hyperlink\n if (this.type === Cell.Types.String) {\n this._value = Value.create(Cell.Types.Hyperlink, this, {\n text: this._value.value,\n hyperlink,\n });\n }\n }\n\n // =========================================================================\n // Formula stuff\n get formula() {\n return this._value.formula;\n }\n\n get result() {\n return this._value.result;\n }\n\n get formulaType() {\n return this._value.formulaType;\n }\n\n // =========================================================================\n // Name stuff\n get fullAddress() {\n const {worksheet} = this._row;\n return {\n sheetName: worksheet.name,\n address: this.address,\n row: this.row,\n col: this.col,\n };\n }\n\n get name() {\n return this.names[0];\n }\n\n set name(value) {\n this.names = [value];\n }\n\n get names() {\n return this.workbook.definedNames.getNamesEx(this.fullAddress);\n }\n\n set names(value) {\n const {definedNames} = this.workbook;\n definedNames.removeAllNames(this.fullAddress);\n value.forEach(name => {\n definedNames.addEx(this.fullAddress, name);\n });\n }\n\n addName(name) {\n this.workbook.definedNames.addEx(this.fullAddress, name);\n }\n\n removeName(name) {\n this.workbook.definedNames.removeEx(this.fullAddress, name);\n }\n\n removeAllNames() {\n this.workbook.definedNames.removeAllNames(this.fullAddress);\n }\n\n // =========================================================================\n // Data Validation stuff\n get _dataValidations() {\n return this.worksheet.dataValidations;\n }\n\n get dataValidation() {\n return this._dataValidations.find(this.address);\n }\n\n set dataValidation(value) {\n this._dataValidations.add(this.address, value);\n }\n\n // =========================================================================\n // Model stuff\n\n get model() {\n const {model} = this._value;\n model.style = this.style;\n if (this._comment) {\n model.comment = this._comment.model;\n }\n return model;\n }\n\n set model(value) {\n this._value.release();\n this._value = Value.create(value.type, this);\n this._value.model = value;\n\n if (value.comment) {\n switch (value.comment.type) {\n case 'note':\n this._comment = Note.fromModel(value.comment);\n break;\n }\n }\n\n if (value.style) {\n this.style = value.style;\n } else {\n this.style = {};\n }\n }\n}\nCell.Types = Enums.ValueType;\n\n// =============================================================================\n// Internal Value Types\n\nclass NullValue {\n constructor(cell) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Null,\n };\n }\n\n get value() {\n return null;\n }\n\n set value(value) {\n // nothing to do\n }\n\n get type() {\n return Cell.Types.Null;\n }\n\n get effectiveType() {\n return Cell.Types.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {}\n\n toString() {\n return '';\n }\n}\n\nclass NumberValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Number,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Number;\n }\n\n get effectiveType() {\n return Cell.Types.Number;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass StringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.model.value.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\nclass RichTextValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n toString() {\n return this.model.value.richText.map(t => t.text).join('');\n }\n\n get type() {\n return Cell.Types.RichText;\n }\n\n get effectiveType() {\n return Cell.Types.RichText;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.text.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n}\n\nclass DateValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Date,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Date;\n }\n\n get effectiveType() {\n return Cell.Types.Date;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toISOString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass HyperlinkValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Hyperlink,\n text: value ? value.text : undefined,\n hyperlink: value ? value.hyperlink : undefined,\n };\n if (value && value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get value() {\n const v = {\n text: this.model.text,\n hyperlink: this.model.hyperlink,\n };\n if (this.model.tooltip) {\n v.tooltip = this.model.tooltip;\n }\n return v;\n }\n\n set value(value) {\n this.model = {\n text: value.text,\n hyperlink: value.hyperlink,\n };\n if (value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get text() {\n return this.model.text;\n }\n\n set text(value) {\n this.model.text = value;\n }\n\n /*\n get tooltip() {\n return this.model.tooltip;\n }\n\n set tooltip(value) {\n this.model.tooltip = value;\n } */\n\n get hyperlink() {\n return this.model.hyperlink;\n }\n\n set hyperlink(value) {\n this.model.hyperlink = value;\n }\n\n get type() {\n return Cell.Types.Hyperlink;\n }\n\n get effectiveType() {\n return Cell.Types.Hyperlink;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.hyperlink;\n }\n\n release() {}\n\n toString() {\n return this.model.text;\n }\n}\n\nclass MergeValue {\n constructor(cell, master) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Merge,\n master: master ? master.address : undefined,\n };\n this._master = master;\n if (master) {\n master.addMergeRef();\n }\n }\n\n get value() {\n return this._master.value;\n }\n\n set value(value) {\n if (value instanceof Cell) {\n if (this._master) {\n this._master.releaseMergeRef();\n }\n value.addMergeRef();\n this._master = value;\n } else {\n this._master.value = value;\n }\n }\n\n isMergedTo(master) {\n return master === this._master;\n }\n\n get master() {\n return this._master;\n }\n\n get type() {\n return Cell.Types.Merge;\n }\n\n get effectiveType() {\n return this._master.effectiveType;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {\n this._master.releaseMergeRef();\n }\n\n toString() {\n return this.value.toString();\n }\n}\n\nclass FormulaValue {\n constructor(cell, value) {\n this.cell = cell;\n\n this.model = {\n address: cell.address,\n type: Cell.Types.Formula,\n shareType: value ? value.shareType : undefined,\n ref: value ? value.ref : undefined,\n formula: value ? value.formula : undefined,\n sharedFormula: value ? value.sharedFormula : undefined,\n result: value ? value.result : undefined,\n };\n }\n\n _copyModel(model) {\n const copy = {};\n const cp = name => {\n const value = model[name];\n if (value) {\n copy[name] = value;\n }\n };\n cp('formula');\n cp('result');\n cp('ref');\n cp('shareType');\n cp('sharedFormula');\n return copy;\n }\n\n get value() {\n return this._copyModel(this.model);\n }\n\n set value(value) {\n this.model = this._copyModel(value);\n }\n\n validate(value) {\n switch (Value.getType(value)) {\n case Cell.Types.Null:\n case Cell.Types.String:\n case Cell.Types.Number:\n case Cell.Types.Date:\n break;\n case Cell.Types.Hyperlink:\n case Cell.Types.Formula:\n default:\n throw new Error('Cannot process that type of result value');\n }\n }\n\n get dependencies() {\n // find all the ranges and cells mentioned in the formula\n const ranges = this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g);\n const cells = this.formula\n .replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g, '')\n .match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g);\n return {\n ranges,\n cells,\n };\n }\n\n get formula() {\n return this.model.formula || this._getTranslatedFormula();\n }\n\n set formula(value) {\n this.model.formula = value;\n }\n\n get formulaType() {\n if (this.model.formula) {\n return Enums.FormulaType.Master;\n }\n if (this.model.sharedFormula) {\n return Enums.FormulaType.Shared;\n }\n return Enums.FormulaType.None;\n }\n\n get result() {\n return this.model.result;\n }\n\n set result(value) {\n this.model.result = value;\n }\n\n get type() {\n return Cell.Types.Formula;\n }\n\n get effectiveType() {\n const v = this.model.result;\n if (v === null || v === undefined) {\n return Enums.ValueType.Null;\n }\n if (v instanceof String || typeof v === 'string') {\n return Enums.ValueType.String;\n }\n if (typeof v === 'number') {\n return Enums.ValueType.Number;\n }\n if (v instanceof Date) {\n return Enums.ValueType.Date;\n }\n if (v.text && v.hyperlink) {\n return Enums.ValueType.Hyperlink;\n }\n if (v.formula) {\n return Enums.ValueType.Formula;\n }\n\n return Enums.ValueType.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n _getTranslatedFormula() {\n if (!this._translatedFormula && this.model.sharedFormula) {\n const {worksheet} = this.cell;\n const master = worksheet.findCell(this.model.sharedFormula);\n this._translatedFormula =\n master && slideFormula(master.formula, master.address, this.model.address);\n }\n return this._translatedFormula;\n }\n\n toCsvString() {\n return `${this.model.result || ''}`;\n }\n\n release() {}\n\n toString() {\n return this.model.result ? this.model.result.toString() : '';\n }\n}\n\nclass SharedStringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.SharedString,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.SharedString;\n }\n\n get effectiveType() {\n return Cell.Types.SharedString;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass BooleanValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Boolean,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Boolean;\n }\n\n get effectiveType() {\n return Cell.Types.Boolean;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value ? 1 : 0;\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass ErrorValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Error,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Error;\n }\n\n get effectiveType() {\n return Cell.Types.Error;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.error.toString();\n }\n}\n\nclass JSONValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value: JSON.stringify(value),\n rawValue: value,\n };\n }\n\n get value() {\n return this.model.rawValue;\n }\n\n set value(value) {\n this.model.rawValue = value;\n this.model.value = JSON.stringify(value);\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\n// Value is a place to hold common static Value type functions\nconst Value = {\n getType(value) {\n if (value === null || value === undefined) {\n return Cell.Types.Null;\n }\n if (value instanceof String || typeof value === 'string') {\n return Cell.Types.String;\n }\n if (typeof value === 'number') {\n return Cell.Types.Number;\n }\n if (typeof value === 'boolean') {\n return Cell.Types.Boolean;\n }\n if (value instanceof Date) {\n return Cell.Types.Date;\n }\n if (value.text && value.hyperlink) {\n return Cell.Types.Hyperlink;\n }\n if (value.formula || value.sharedFormula) {\n return Cell.Types.Formula;\n }\n if (value.richText) {\n return Cell.Types.RichText;\n }\n if (value.sharedString) {\n return Cell.Types.SharedString;\n }\n if (value.error) {\n return Cell.Types.Error;\n }\n return Cell.Types.JSON;\n },\n\n // map valueType to constructor\n types: [\n {t: Cell.Types.Null, f: NullValue},\n {t: Cell.Types.Number, f: NumberValue},\n {t: Cell.Types.String, f: StringValue},\n {t: Cell.Types.Date, f: DateValue},\n {t: Cell.Types.Hyperlink, f: HyperlinkValue},\n {t: Cell.Types.Formula, f: FormulaValue},\n {t: Cell.Types.Merge, f: MergeValue},\n {t: Cell.Types.JSON, f: JSONValue},\n {t: Cell.Types.SharedString, f: SharedStringValue},\n {t: Cell.Types.RichText, f: RichTextValue},\n {t: Cell.Types.Boolean, f: BooleanValue},\n {t: Cell.Types.Error, f: ErrorValue},\n ].reduce((p, t) => {\n p[t.t] = t.f;\n return p;\n }, []),\n\n create(type, cell, value) {\n const T = this.types[type];\n if (!T) {\n throw new Error(`Could not create Value of type ${type}`);\n }\n return new T(cell, value);\n },\n};\n\nmodule.exports = Cell;\n","'use strict';\n\nconst _ = require('../utils/under-dash');\n\nconst Enums = require('./enums');\nconst colCache = require('../utils/col-cache');\n\nconst DEFAULT_COLUMN_WIDTH = 9;\n\n// Column defines the column properties for 1 column.\n// This includes header rows, widths, key, (style), etc.\n// Worksheet will condense the columns as appropriate during serialization\nclass Column {\n constructor(worksheet, number, defn) {\n this._worksheet = worksheet;\n this._number = number;\n if (defn !== false) {\n // sometimes defn will follow\n this.defn = defn;\n }\n }\n\n get number() {\n return this._number;\n }\n\n get worksheet() {\n return this._worksheet;\n }\n\n get letter() {\n return colCache.n2l(this._number);\n }\n\n get isCustomWidth() {\n return this.width !== undefined && this.width !== DEFAULT_COLUMN_WIDTH;\n }\n\n get defn() {\n return {\n header: this._header,\n key: this.key,\n width: this.width,\n style: this.style,\n hidden: this.hidden,\n outlineLevel: this.outlineLevel,\n };\n }\n\n set defn(value) {\n if (value) {\n this.key = value.key;\n this.width = value.width !== undefined ? value.width : DEFAULT_COLUMN_WIDTH;\n this.outlineLevel = value.outlineLevel;\n if (value.style) {\n this.style = value.style;\n } else {\n this.style = {};\n }\n\n // headers must be set after style\n this.header = value.header;\n this._hidden = !!value.hidden;\n } else {\n delete this._header;\n delete this._key;\n delete this.width;\n this.style = {};\n this.outlineLevel = 0;\n }\n }\n\n get headers() {\n return this._header && this._header instanceof Array ? this._header : [this._header];\n }\n\n get header() {\n return this._header;\n }\n\n set header(value) {\n if (value !== undefined) {\n this._header = value;\n this.headers.forEach((text, index) => {\n this._worksheet.getCell(index + 1, this.number).value = text;\n });\n } else {\n this._header = undefined;\n }\n }\n\n get key() {\n return this._key;\n }\n\n set key(value) {\n const column = this._key && this._worksheet.getColumnKey(this._key);\n if (column === this) {\n this._worksheet.deleteColumnKey(this._key);\n }\n\n this._key = value;\n if (value) {\n this._worksheet.setColumnKey(this._key, this);\n }\n }\n\n get hidden() {\n return !!this._hidden;\n }\n\n set hidden(value) {\n this._hidden = value;\n }\n\n get outlineLevel() {\n return this._outlineLevel || 0;\n }\n\n set outlineLevel(value) {\n this._outlineLevel = value;\n }\n\n get collapsed() {\n return !!(\n this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelCol\n );\n }\n\n toString() {\n return JSON.stringify({\n key: this.key,\n width: this.width,\n headers: this.headers.length ? this.headers : undefined,\n });\n }\n\n equivalentTo(other) {\n return (\n this.width === other.width &&\n this.hidden === other.hidden &&\n this.outlineLevel === other.outlineLevel &&\n _.isEqual(this.style, other.style)\n );\n }\n\n get isDefault() {\n if (this.isCustomWidth) {\n return false;\n }\n if (this.hidden) {\n return false;\n }\n if (this.outlineLevel) {\n return false;\n }\n const s = this.style;\n if (s && (s.font || s.numFmt || s.alignment || s.border || s.fill || s.protection)) {\n return false;\n }\n return true;\n }\n\n get headerCount() {\n return this.headers.length;\n }\n\n eachCell(options, iteratee) {\n const colNumber = this.number;\n if (!iteratee) {\n iteratee = options;\n options = null;\n }\n this._worksheet.eachRow(options, (row, rowNumber) => {\n iteratee(row.getCell(colNumber), rowNumber);\n });\n }\n\n get values() {\n const v = [];\n this.eachCell((cell, rowNumber) => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n v[rowNumber] = cell.value;\n }\n });\n return v;\n }\n\n set values(v) {\n if (!v) {\n return;\n }\n const colNumber = this.number;\n let offset = 0;\n if (v.hasOwnProperty('0')) {\n // assume contiguous array, start at row 1\n offset = 1;\n }\n v.forEach((value, index) => {\n this._worksheet.getCell(index + offset, colNumber).value = value;\n });\n }\n\n // =========================================================================\n // styles\n _applyStyle(name, value) {\n this.style[name] = value;\n this.eachCell(cell => {\n cell[name] = value;\n });\n return value;\n }\n\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this._applyStyle('numFmt', value);\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this._applyStyle('font', value);\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this._applyStyle('alignment', value);\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this._applyStyle('protection', value);\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this._applyStyle('border', value);\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this._applyStyle('fill', value);\n }\n\n // =============================================================================\n // static functions\n\n static toModel(columns) {\n // Convert array of Column into compressed list cols\n const cols = [];\n let col = null;\n if (columns) {\n columns.forEach((column, index) => {\n if (column.isDefault) {\n if (col) {\n col = null;\n }\n } else if (!col || !column.equivalentTo(col)) {\n col = {\n min: index + 1,\n max: index + 1,\n width: column.width !== undefined ? column.width : DEFAULT_COLUMN_WIDTH,\n style: column.style,\n isCustomWidth: column.isCustomWidth,\n hidden: column.hidden,\n outlineLevel: column.outlineLevel,\n collapsed: column.collapsed,\n };\n cols.push(col);\n } else {\n col.max = index + 1;\n }\n });\n }\n return cols.length ? cols : undefined;\n }\n\n static fromModel(worksheet, cols) {\n cols = cols || [];\n const columns = [];\n let count = 1;\n let index = 0;\n /**\n * sort cols by min\n * If it is not sorted, the subsequent column configuration will be overwritten\n * */\n cols = cols.sort(function(pre, next) {\n return pre.min - next.min;\n });\n while (index < cols.length) {\n const col = cols[index++];\n while (count < col.min) {\n columns.push(new Column(worksheet, count++));\n }\n while (count <= col.max) {\n columns.push(new Column(worksheet, count++, col));\n }\n }\n return columns.length ? columns : null;\n }\n}\n\nmodule.exports = Column;\n","class DataValidations {\n constructor(model) {\n this.model = model || {};\n }\n\n add(address, validation) {\n return (this.model[address] = validation);\n }\n\n find(address) {\n return this.model[address];\n }\n\n remove(address) {\n this.model[address] = undefined;\n }\n}\n\nmodule.exports = DataValidations;\n","'use strict';\n\nconst _ = require('../utils/under-dash');\nconst colCache = require('../utils/col-cache');\nconst CellMatrix = require('../utils/cell-matrix');\nconst Range = require('./range');\n\nconst rangeRegexp = /[$](\\w+)[$](\\d+)(:[$](\\w+)[$](\\d+))?/;\n\nclass DefinedNames {\n constructor() {\n this.matrixMap = {};\n }\n\n getMatrix(name) {\n const matrix = this.matrixMap[name] || (this.matrixMap[name] = new CellMatrix());\n return matrix;\n }\n\n // add a name to a cell. locStr in the form SheetName!$col$row or SheetName!$c1$r1:$c2:$r2\n add(locStr, name) {\n const location = colCache.decodeEx(locStr);\n this.addEx(location, name);\n }\n\n addEx(location, name) {\n const matrix = this.getMatrix(name);\n if (location.top) {\n for (let col = location.left; col <= location.right; col++) {\n for (let row = location.top; row <= location.bottom; row++) {\n const address = {\n sheetName: location.sheetName,\n address: colCache.n2l(col) + row,\n row,\n col,\n };\n\n matrix.addCellEx(address);\n }\n }\n } else {\n matrix.addCellEx(location);\n }\n }\n\n remove(locStr, name) {\n const location = colCache.decodeEx(locStr);\n this.removeEx(location, name);\n }\n\n removeEx(location, name) {\n const matrix = this.getMatrix(name);\n matrix.removeCellEx(location);\n }\n\n removeAllNames(location) {\n _.each(this.matrixMap, matrix => {\n matrix.removeCellEx(location);\n });\n }\n\n forEach(callback) {\n _.each(this.matrixMap, (matrix, name) => {\n matrix.forEach(cell => {\n callback(name, cell);\n });\n });\n }\n\n // get all the names of a cell\n getNames(addressStr) {\n return this.getNamesEx(colCache.decodeEx(addressStr));\n }\n\n getNamesEx(address) {\n return _.map(this.matrixMap, (matrix, name) => matrix.findCellEx(address) && name).filter(\n Boolean\n );\n }\n\n _explore(matrix, cell) {\n cell.mark = false;\n const {sheetName} = cell;\n\n const range = new Range(cell.row, cell.col, cell.row, cell.col, sheetName);\n let x;\n let y;\n\n // grow vertical - only one col to worry about\n function vGrow(yy, edge) {\n const c = matrix.findCellAt(sheetName, yy, cell.col);\n if (!c || !c.mark) {\n return false;\n }\n range[edge] = yy;\n c.mark = false;\n return true;\n }\n for (y = cell.row - 1; vGrow(y, 'top'); y--);\n for (y = cell.row + 1; vGrow(y, 'bottom'); y++);\n\n // grow horizontal - ensure all rows can grow\n function hGrow(xx, edge) {\n const cells = [];\n for (y = range.top; y <= range.bottom; y++) {\n const c = matrix.findCellAt(sheetName, y, xx);\n if (c && c.mark) {\n cells.push(c);\n } else {\n return false;\n }\n }\n range[edge] = xx;\n for (let i = 0; i < cells.length; i++) {\n cells[i].mark = false;\n }\n return true;\n }\n for (x = cell.col - 1; hGrow(x, 'left'); x--);\n for (x = cell.col + 1; hGrow(x, 'right'); x++);\n\n return range;\n }\n\n getRanges(name, matrix) {\n matrix = matrix || this.matrixMap[name];\n\n if (!matrix) {\n return {name, ranges: []};\n }\n\n // mark and sweep!\n matrix.forEach(cell => {\n cell.mark = true;\n });\n const ranges = matrix\n .map(cell => cell.mark && this._explore(matrix, cell))\n .filter(Boolean)\n .map(range => range.$shortRange);\n\n return {\n name,\n ranges,\n };\n }\n\n normaliseMatrix(matrix, sheetName) {\n // some of the cells might have shifted on specified sheet\n // need to reassign rows, cols\n matrix.forEachInSheet(sheetName, (cell, row, col) => {\n if (cell) {\n if (cell.row !== row || cell.col !== col) {\n cell.row = row;\n cell.col = col;\n cell.address = colCache.n2l(col) + row;\n }\n }\n });\n }\n\n spliceRows(sheetName, start, numDelete, numInsert) {\n _.each(this.matrixMap, matrix => {\n matrix.spliceRows(sheetName, start, numDelete, numInsert);\n this.normaliseMatrix(matrix, sheetName);\n });\n }\n\n spliceColumns(sheetName, start, numDelete, numInsert) {\n _.each(this.matrixMap, matrix => {\n matrix.spliceColumns(sheetName, start, numDelete, numInsert);\n this.normaliseMatrix(matrix, sheetName);\n });\n }\n\n get model() {\n // To get names per cell - just iterate over all names finding cells if they exist\n return _.map(this.matrixMap, (matrix, name) => this.getRanges(name, matrix)).filter(\n definedName => definedName.ranges.length\n );\n }\n\n set model(value) {\n // value is [ { name, ranges }, ... ]\n const matrixMap = (this.matrixMap = {});\n value.forEach(definedName => {\n const matrix = (matrixMap[definedName.name] = new CellMatrix());\n definedName.ranges.forEach(rangeStr => {\n if (rangeRegexp.test(rangeStr.split('!').pop() || '')) {\n matrix.addCell(rangeStr);\n }\n });\n });\n }\n}\n\nmodule.exports = DefinedNames;\n","'use strict';\n\nmodule.exports = {\n ValueType: {\n Null: 0,\n Merge: 1,\n Number: 2,\n String: 3,\n Date: 4,\n Hyperlink: 5,\n Formula: 6,\n SharedString: 7,\n RichText: 8,\n Boolean: 9,\n Error: 10,\n },\n FormulaType: {\n None: 0,\n Master: 1,\n Shared: 2,\n },\n RelationshipType: {\n None: 0,\n OfficeDocument: 1,\n Worksheet: 2,\n CalcChain: 3,\n SharedStrings: 4,\n Styles: 5,\n Theme: 6,\n Hyperlink: 7,\n },\n DocumentType: {\n Xlsx: 1,\n },\n ReadingOrder: {\n LeftToRight: 1,\n RightToLeft: 2,\n },\n ErrorValue: {\n NotApplicable: '#N/A',\n Ref: '#REF!',\n Name: '#NAME?',\n DivZero: '#DIV/0!',\n Null: '#NULL!',\n Value: '#VALUE!',\n Num: '#NUM!',\n },\n};\n","const colCache = require('../utils/col-cache');\nconst Anchor = require('./anchor');\n\nclass Image {\n constructor(worksheet, model) {\n this.worksheet = worksheet;\n this.model = model;\n }\n\n get model() {\n switch (this.type) {\n case 'background':\n return {\n type: this.type,\n imageId: this.imageId,\n };\n case 'image':\n return {\n type: this.type,\n imageId: this.imageId,\n hyperlinks: this.range.hyperlinks,\n range: {\n tl: this.range.tl.model,\n br: this.range.br && this.range.br.model,\n ext: this.range.ext,\n editAs: this.range.editAs,\n },\n };\n default:\n throw new Error('Invalid Image Type');\n }\n }\n\n set model({type, imageId, range, hyperlinks}) {\n this.type = type;\n this.imageId = imageId;\n\n if (type === 'image') {\n if (typeof range === 'string') {\n const decoded = colCache.decode(range);\n this.range = {\n tl: new Anchor(this.worksheet, {col: decoded.left, row: decoded.top}, -1),\n br: new Anchor(this.worksheet, {col: decoded.right, row: decoded.bottom}, 0),\n editAs: 'oneCell',\n };\n } else {\n this.range = {\n tl: new Anchor(this.worksheet, range.tl, 0),\n br: range.br && new Anchor(this.worksheet, range.br, 0),\n ext: range.ext,\n editAs: range.editAs,\n hyperlinks: hyperlinks || range.hyperlinks,\n };\n }\n }\n }\n}\n\nmodule.exports = Image;\n","const _ = require('../utils/under-dash');\n\nclass Note {\n constructor(note) {\n this.note = note;\n }\n\n get model() {\n let value = null;\n switch (typeof this.note) {\n case 'string':\n value = {\n type: 'note',\n note: {\n texts: [\n {\n text: this.note,\n },\n ],\n },\n };\n break;\n default:\n value = {\n type: 'note',\n note: this.note,\n };\n break;\n }\n // Suitable for all cell comments\n return _.deepMerge({}, Note.DEFAULT_CONFIGS, value);\n }\n\n set model(value) {\n const {note} = value;\n const {texts} = note;\n if (texts.length === 1 && Object.keys(texts[0]).length === 1) {\n this.note = texts[0].text;\n } else {\n this.note = note;\n }\n }\n\n static fromModel(model) {\n const note = new Note();\n note.model = model;\n return note;\n }\n}\n\nNote.DEFAULT_CONFIGS = {\n note: {\n margins: {\n insetmode: 'auto',\n inset: [0.13, 0.13, 0.25, 0.25],\n },\n protection: {\n locked: 'True',\n lockText: 'True',\n },\n editAs: 'absolute',\n },\n};\n\nmodule.exports = Note;\n","const colCache = require('../utils/col-cache');\n\n// used by worksheet to calculate sheet dimensions\nclass Range {\n constructor() {\n this.decode(arguments);\n }\n\n setTLBR(t, l, b, r, s) {\n if (arguments.length < 4) {\n // setTLBR(tl, br, s)\n const tl = colCache.decodeAddress(t);\n const br = colCache.decodeAddress(l);\n this.model = {\n top: Math.min(tl.row, br.row),\n left: Math.min(tl.col, br.col),\n bottom: Math.max(tl.row, br.row),\n right: Math.max(tl.col, br.col),\n sheetName: b,\n };\n\n this.setTLBR(tl.row, tl.col, br.row, br.col, s);\n } else {\n // setTLBR(t, l, b, r, s)\n this.model = {\n top: Math.min(t, b),\n left: Math.min(l, r),\n bottom: Math.max(t, b),\n right: Math.max(l, r),\n sheetName: s,\n };\n }\n }\n\n decode(argv) {\n switch (argv.length) {\n case 5: // [t,l,b,r,s]\n this.setTLBR(argv[0], argv[1], argv[2], argv[3], argv[4]);\n break;\n case 4: // [t,l,b,r]\n this.setTLBR(argv[0], argv[1], argv[2], argv[3]);\n break;\n\n case 3: // [tl,br,s]\n this.setTLBR(argv[0], argv[1], argv[2]);\n break;\n case 2: // [tl,br]\n this.setTLBR(argv[0], argv[1]);\n break;\n\n case 1: {\n const value = argv[0];\n if (value instanceof Range) {\n // copy constructor\n this.model = {\n top: value.model.top,\n left: value.model.left,\n bottom: value.model.bottom,\n right: value.model.right,\n sheetName: value.sheetName,\n };\n } else if (value instanceof Array) {\n // an arguments array\n this.decode(value);\n } else if (value.top && value.left && value.bottom && value.right) {\n // a model\n this.model = {\n top: value.top,\n left: value.left,\n bottom: value.bottom,\n right: value.right,\n sheetName: value.sheetName,\n };\n } else {\n // [sheetName!]tl:br\n const tlbr = colCache.decodeEx(value);\n if (tlbr.top) {\n this.model = {\n top: tlbr.top,\n left: tlbr.left,\n bottom: tlbr.bottom,\n right: tlbr.right,\n sheetName: tlbr.sheetName,\n };\n } else {\n this.model = {\n top: tlbr.row,\n left: tlbr.col,\n bottom: tlbr.row,\n right: tlbr.col,\n sheetName: tlbr.sheetName,\n };\n }\n }\n break;\n }\n\n case 0:\n this.model = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n };\n break;\n\n default:\n throw new Error(`Invalid number of arguments to _getDimensions() - ${argv.length}`);\n }\n }\n\n get top() {\n return this.model.top || 1;\n }\n\n set top(value) {\n this.model.top = value;\n }\n\n get left() {\n return this.model.left || 1;\n }\n\n set left(value) {\n this.model.left = value;\n }\n\n get bottom() {\n return this.model.bottom || 1;\n }\n\n set bottom(value) {\n this.model.bottom = value;\n }\n\n get right() {\n return this.model.right || 1;\n }\n\n set right(value) {\n this.model.right = value;\n }\n\n get sheetName() {\n return this.model.sheetName;\n }\n\n set sheetName(value) {\n this.model.sheetName = value;\n }\n\n get _serialisedSheetName() {\n const {sheetName} = this.model;\n if (sheetName) {\n if (/^[a-zA-Z0-9]*$/.test(sheetName)) {\n return `${sheetName}!`;\n }\n return `'${sheetName}'!`;\n }\n return '';\n }\n\n expand(top, left, bottom, right) {\n if (!this.model.top || top < this.top) this.top = top;\n if (!this.model.left || left < this.left) this.left = left;\n if (!this.model.bottom || bottom > this.bottom) this.bottom = bottom;\n if (!this.model.right || right > this.right) this.right = right;\n }\n\n expandRow(row) {\n if (row) {\n const {dimensions, number} = row;\n if (dimensions) {\n this.expand(number, dimensions.min, number, dimensions.max);\n }\n }\n }\n\n expandToAddress(addressStr) {\n const address = colCache.decodeEx(addressStr);\n this.expand(address.row, address.col, address.row, address.col);\n }\n\n get tl() {\n return colCache.n2l(this.left) + this.top;\n }\n\n get $t$l() {\n return `$${colCache.n2l(this.left)}$${this.top}`;\n }\n\n get br() {\n return colCache.n2l(this.right) + this.bottom;\n }\n\n get $b$r() {\n return `$${colCache.n2l(this.right)}$${this.bottom}`;\n }\n\n get range() {\n return `${this._serialisedSheetName + this.tl}:${this.br}`;\n }\n\n get $range() {\n return `${this._serialisedSheetName + this.$t$l}:${this.$b$r}`;\n }\n\n get shortRange() {\n return this.count > 1 ? this.range : this._serialisedSheetName + this.tl;\n }\n\n get $shortRange() {\n return this.count > 1 ? this.$range : this._serialisedSheetName + this.$t$l;\n }\n\n get count() {\n return (1 + this.bottom - this.top) * (1 + this.right - this.left);\n }\n\n toString() {\n return this.range;\n }\n\n intersects(other) {\n if (other.sheetName && this.sheetName && other.sheetName !== this.sheetName) return false;\n if (other.bottom < this.top) return false;\n if (other.top > this.bottom) return false;\n if (other.right < this.left) return false;\n if (other.left > this.right) return false;\n return true;\n }\n\n contains(addressStr) {\n const address = colCache.decodeEx(addressStr);\n return this.containsEx(address);\n }\n\n containsEx(address) {\n if (address.sheetName && this.sheetName && address.sheetName !== this.sheetName) return false;\n return (\n address.row >= this.top &&\n address.row <= this.bottom &&\n address.col >= this.left &&\n address.col <= this.right\n );\n }\n\n forEachAddress(cb) {\n for (let col = this.left; col <= this.right; col++) {\n for (let row = this.top; row <= this.bottom; row++) {\n cb(colCache.encodeAddress(row, col), row, col);\n }\n }\n }\n}\n\nmodule.exports = Range;\n","'use strict';\n\nconst _ = require('../utils/under-dash');\n\nconst Enums = require('./enums');\nconst colCache = require('../utils/col-cache');\nconst Cell = require('./cell');\n\nclass Row {\n constructor(worksheet, number) {\n this._worksheet = worksheet;\n this._number = number;\n this._cells = [];\n this.style = {};\n this.outlineLevel = 0;\n }\n\n // return the row number\n get number() {\n return this._number;\n }\n\n get worksheet() {\n return this._worksheet;\n }\n\n // Inform Streaming Writer that this row (and all rows before it) are complete\n // and ready to write. Has no effect on Worksheet document\n commit() {\n this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle\n }\n\n // helps GC by breaking cyclic references\n destroy() {\n delete this._worksheet;\n delete this._cells;\n delete this.style;\n }\n\n findCell(colNumber) {\n return this._cells[colNumber - 1];\n }\n\n // given {address, row, col}, find or create new cell\n getCellEx(address) {\n let cell = this._cells[address.col - 1];\n if (!cell) {\n const column = this._worksheet.getColumn(address.col);\n cell = new Cell(this, column, address.address);\n this._cells[address.col - 1] = cell;\n }\n return cell;\n }\n\n // get cell by key, letter or column number\n getCell(col) {\n if (typeof col === 'string') {\n // is it a key?\n const column = this._worksheet.getColumnKey(col);\n if (column) {\n col = column.number;\n } else {\n col = colCache.l2n(col);\n }\n }\n return (\n this._cells[col - 1] ||\n this.getCellEx({\n address: colCache.encodeAddress(this._number, col),\n row: this._number,\n col,\n })\n );\n }\n\n // remove cell(s) and shift all higher cells down by count\n splice(start, count, ...inserts) {\n const nKeep = start + count;\n const nExpand = inserts.length - count;\n const nEnd = this._cells.length;\n let i;\n let cSrc;\n let cDst;\n\n if (nExpand < 0) {\n // remove cells\n for (i = start + inserts.length; i <= nEnd; i++) {\n cDst = this._cells[i - 1];\n cSrc = this._cells[i - nExpand - 1];\n if (cSrc) {\n cDst = this.getCell(i);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else if (cDst) {\n cDst.value = null;\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n } else if (nExpand > 0) {\n // insert new cells\n for (i = nEnd; i >= nKeep; i--) {\n cSrc = this._cells[i - 1];\n if (cSrc) {\n cDst = this.getCell(i + nExpand);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else {\n this._cells[i + nExpand - 1] = undefined;\n }\n }\n }\n\n // now add the new values\n for (i = 0; i < inserts.length; i++) {\n cDst = this.getCell(start + i);\n cDst.value = inserts[i];\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n\n // Iterate over all non-null cells in this row\n eachCell(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = null;\n }\n if (options && options.includeEmpty) {\n const n = this._cells.length;\n for (let i = 1; i <= n; i++) {\n iteratee(this.getCell(i), i);\n }\n } else {\n this._cells.forEach((cell, index) => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n iteratee(cell, index + 1);\n }\n });\n }\n }\n\n // ===========================================================================\n // Page Breaks\n addPageBreak(lft, rght) {\n const ws = this._worksheet;\n const left = Math.max(0, lft - 1) || 0;\n const right = Math.max(0, rght - 1) || 16838;\n const pb = {\n id: this._number,\n max: right,\n man: 1,\n };\n if (left) pb.min = left;\n\n ws.rowBreaks.push(pb);\n }\n\n // return a sparse array of cell values\n get values() {\n const values = [];\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n values[cell.col] = cell.value;\n }\n });\n return values;\n }\n\n // set the values by contiguous or sparse array, or by key'd object literal\n set values(value) {\n // this operation is not additive - any prior cells are removed\n this._cells = [];\n if (!value) {\n // empty row\n } else if (value instanceof Array) {\n let offset = 0;\n if (value.hasOwnProperty('0')) {\n // contiguous array - start at column 1\n offset = 1;\n }\n value.forEach((item, index) => {\n if (item !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, index + offset),\n row: this._number,\n col: index + offset,\n }).value = item;\n }\n });\n } else {\n // assume object with column keys\n this._worksheet.eachColumnKey((column, key) => {\n if (value[key] !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, column.number),\n row: this._number,\n col: column.number,\n }).value = value[key];\n }\n });\n }\n }\n\n // returns true if the row includes at least one cell with a value\n get hasValues() {\n return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);\n }\n\n get cellCount() {\n return this._cells.length;\n }\n\n get actualCellCount() {\n let count = 0;\n this.eachCell(() => {\n count++;\n });\n return count;\n }\n\n // get the min and max column number for the non-null cells in this row or null\n get dimensions() {\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n }\n });\n return min > 0\n ? {\n min,\n max,\n }\n : null;\n }\n\n // =========================================================================\n // styles\n _applyStyle(name, value) {\n this.style[name] = value;\n this._cells.forEach(cell => {\n if (cell) {\n cell[name] = value;\n }\n });\n return value;\n }\n\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this._applyStyle('numFmt', value);\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this._applyStyle('font', value);\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this._applyStyle('alignment', value);\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this._applyStyle('protection', value);\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this._applyStyle('border', value);\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this._applyStyle('fill', value);\n }\n\n get hidden() {\n return !!this._hidden;\n }\n\n set hidden(value) {\n this._hidden = value;\n }\n\n get outlineLevel() {\n return this._outlineLevel || 0;\n }\n\n set outlineLevel(value) {\n this._outlineLevel = value;\n }\n\n get collapsed() {\n return !!(\n this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow\n );\n }\n\n // =========================================================================\n get model() {\n const cells = [];\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell) {\n const cellModel = cell.model;\n if (cellModel) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n cells.push(cellModel);\n }\n }\n });\n\n return this.height || cells.length\n ? {\n cells,\n number: this.number,\n min,\n max,\n height: this.height,\n style: this.style,\n hidden: this.hidden,\n outlineLevel: this.outlineLevel,\n collapsed: this.collapsed,\n }\n : null;\n }\n\n set model(value) {\n if (value.number !== this._number) {\n throw new Error('Invalid row number in model');\n }\n this._cells = [];\n let previousAddress;\n value.cells.forEach(cellModel => {\n switch (cellModel.type) {\n case Cell.Types.Merge:\n // special case - don't add this types\n break;\n default: {\n let address;\n if (cellModel.address) {\n address = colCache.decodeAddress(cellModel.address);\n } else if (previousAddress) {\n // This is a element without an r attribute\n // Assume that it's the cell for the next column\n const {row} = previousAddress;\n const col = previousAddress.col + 1;\n address = {\n row,\n col,\n address: colCache.encodeAddress(row, col),\n $col$row: `$${colCache.n2l(col)}$${row}`,\n };\n }\n previousAddress = address;\n const cell = this.getCellEx(address);\n cell.model = cellModel;\n break;\n }\n }\n });\n\n if (value.height) {\n this.height = value.height;\n } else {\n delete this.height;\n }\n\n this.hidden = value.hidden;\n this.outlineLevel = value.outlineLevel || 0;\n\n this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};\n }\n}\n\nmodule.exports = Row;\n","/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\n\nclass Column {\n // wrapper around column model, allowing access and manipulation\n constructor(table, column, index) {\n this.table = table;\n this.column = column;\n this.index = index;\n }\n\n _set(name, value) {\n this.table.cacheState();\n this.column[name] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get name() {\n return this.column.name;\n }\n set name(value) {\n this._set('name', value);\n }\n\n get filterButton() {\n return this.column.filterButton;\n }\n set filterButton(value) {\n this.column.filterButton = value;\n }\n\n get style() {\n return this.column.style;\n }\n set style(value) {\n this.column.style = value;\n }\n\n get totalsRowLabel() {\n return this.column.totalsRowLabel;\n }\n set totalsRowLabel(value) {\n this._set('totalsRowLabel', value);\n }\n\n get totalsRowFunction() {\n return this.column.totalsRowFunction;\n }\n set totalsRowFunction(value) {\n this._set('totalsRowFunction', value);\n }\n\n get totalsRowResult() {\n return this.column.totalsRowResult;\n }\n set totalsRowResult(value) {\n this._set('totalsRowResult', value);\n }\n\n get totalsRowFormula() {\n return this.column.totalsRowFormula;\n }\n set totalsRowFormula(value) {\n this._set('totalsRowFormula', value);\n }\n /* eslint-enable lines-between-class-members */\n}\n\nclass Table {\n constructor(worksheet, table) {\n this.worksheet = worksheet;\n if (table) {\n this.table = table;\n // check things are ok first\n this.validate();\n\n this.store();\n }\n }\n\n getFormula(column) {\n // get the correct formula to apply to the totals row\n switch (column.totalsRowFunction) {\n case 'none':\n return null;\n case 'average':\n return `SUBTOTAL(101,${this.table.name}[${column.name}])`;\n case 'countNums':\n return `SUBTOTAL(102,${this.table.name}[${column.name}])`;\n case 'count':\n return `SUBTOTAL(103,${this.table.name}[${column.name}])`;\n case 'max':\n return `SUBTOTAL(104,${this.table.name}[${column.name}])`;\n case 'min':\n return `SUBTOTAL(105,${this.table.name}[${column.name}])`;\n case 'stdDev':\n return `SUBTOTAL(106,${this.table.name}[${column.name}])`;\n case 'var':\n return `SUBTOTAL(107,${this.table.name}[${column.name}])`;\n case 'sum':\n return `SUBTOTAL(109,${this.table.name}[${column.name}])`;\n case 'custom':\n return column.totalsRowFormula;\n default:\n throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);\n }\n }\n\n get width() {\n // width of the table\n return this.table.columns.length;\n }\n\n get height() {\n // height of the table data\n return this.table.rows.length;\n }\n\n get filterHeight() {\n // height of the table data plus optional header row\n return this.height + (this.table.headerRow ? 1 : 0);\n }\n\n get tableHeight() {\n // full height of the table on the sheet\n return this.filterHeight + (this.table.totalsRow ? 1 : 0);\n }\n\n validate() {\n const {table} = this;\n // set defaults and check is valid\n const assign = (o, name, dflt) => {\n if (o[name] === undefined) {\n o[name] = dflt;\n }\n };\n assign(table, 'headerRow', true);\n assign(table, 'totalsRow', false);\n\n assign(table, 'style', {});\n assign(table.style, 'theme', 'TableStyleMedium2');\n assign(table.style, 'showFirstColumn', false);\n assign(table.style, 'showLastColumn', false);\n assign(table.style, 'showRowStripes', false);\n assign(table.style, 'showColumnStripes', false);\n\n const assert = (test, message) => {\n if (!test) {\n throw new Error(message);\n }\n };\n assert(table.ref, 'Table must have ref');\n assert(table.columns, 'Table must have column definitions');\n assert(table.rows, 'Table must have row definitions');\n\n table.tl = colCache.decodeAddress(table.ref);\n const {row, col} = table.tl;\n assert(row > 0, 'Table must be on valid row');\n assert(col > 0, 'Table must be on valid col');\n\n const {width, filterHeight, tableHeight} = this;\n\n // autoFilterRef is a range that includes optional headers only\n table.autoFilterRef = colCache.encode(row, col, row + filterHeight - 1, col + width - 1);\n\n // tableRef is a range that includes optional headers and totals\n table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);\n\n table.columns.forEach((column, i) => {\n assert(column.name, `Column ${i} must have a name`);\n if (i === 0) {\n assign(column, 'totalsRowLabel', 'Total');\n } else {\n assign(column, 'totalsRowFunction', 'none');\n column.totalsRowFormula = this.getFormula(column);\n }\n });\n }\n\n store() {\n // where the table needs to store table data, headers, footers in\n // the sheet...\n const assignStyle = (cell, style) => {\n if (style) {\n Object.keys(style).forEach(key => {\n cell[key] = style[key];\n });\n }\n };\n\n const {worksheet, table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const {style, name} = column;\n const cell = r.getCell(col + j);\n cell.value = name;\n assignStyle(cell, style);\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n\n assignStyle(cell, table.columns[j].style);\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n } else {\n cell.value = null;\n }\n }\n\n assignStyle(cell, column.style);\n });\n }\n }\n\n load(worksheet) {\n // where the table will read necessary features from a loaded sheet\n const {table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n cell.value = column.name;\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n }\n }\n });\n }\n }\n\n get model() {\n return this.table;\n }\n\n set model(value) {\n this.table = value;\n }\n\n // ================================================================\n // TODO: Mutating methods\n cacheState() {\n if (!this._cache) {\n this._cache = {\n ref: this.ref,\n width: this.width,\n tableHeight: this.tableHeight,\n };\n }\n }\n\n commit() {\n // changes may have been made that might have on-sheet effects\n if (!this._cache) {\n return;\n }\n\n // check things are ok first\n this.validate();\n\n const ref = colCache.decodeAddress(this._cache.ref);\n if (this.ref !== this._cache.ref) {\n // wipe out whole table footprint at previous location\n for (let i = 0; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n } else {\n // clear out below table if it has shrunk\n for (let i = this.tableHeight; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n\n // clear out to right of table if it has lost columns\n for (let i = 0; i < this.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = this.width; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n }\n\n this.store();\n }\n\n addRow(values, rowNumber) {\n // Add a row of data, either insert at rowNumber or append\n this.cacheState();\n\n if (rowNumber === undefined) {\n this.table.rows.push(values);\n } else {\n this.table.rows.splice(rowNumber, 0, values);\n }\n }\n\n removeRows(rowIndex, count = 1) {\n // Remove a rows of data\n this.cacheState();\n this.table.rows.splice(rowIndex, count);\n }\n\n getColumn(colIndex) {\n const column = this.table.columns[colIndex];\n return new Column(this, column, colIndex);\n }\n\n addColumn(column, values, colIndex) {\n // Add a new column, including column defn and values\n // Inserts at colNumber or adds to the right\n this.cacheState();\n\n if (colIndex === undefined) {\n this.table.columns.push(column);\n this.table.rows.forEach((row, i) => {\n row.push(values[i]);\n });\n } else {\n this.table.columns.splice(colIndex, 0, column);\n this.table.rows.forEach((row, i) => {\n row.splice(colIndex, 0, values[i]);\n });\n }\n }\n\n removeColumns(colIndex, count = 1) {\n // Remove a column with data\n this.cacheState();\n\n this.table.columns.splice(colIndex, count);\n this.table.rows.forEach(row => {\n row.splice(colIndex, count);\n });\n }\n\n _assign(target, prop, value) {\n this.cacheState();\n target[prop] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get ref() {\n return this.table.ref;\n }\n set ref(value) {\n this._assign(this.table, 'ref', value);\n }\n\n get name() {\n return this.table.name;\n }\n set name(value) {\n this.table.name = value;\n }\n\n get displayName() {\n return this.table.displyName || this.table.name;\n }\n set displayNamename(value) {\n this.table.displayName = value;\n }\n\n get headerRow() {\n return this.table.headerRow;\n }\n set headerRow(value) {\n this._assign(this.table, 'headerRow', value);\n }\n\n get totalsRow() {\n return this.table.totalsRow;\n }\n set totalsRow(value) {\n this._assign(this.table, 'totalsRow', value);\n }\n\n get theme() {\n return this.table.style.name;\n }\n set theme(value) {\n this.table.style.name = value;\n }\n\n get showFirstColumn() {\n return this.table.style.showFirstColumn;\n }\n set showFirstColumn(value) {\n this.table.style.showFirstColumn = value;\n }\n\n get showLastColumn() {\n return this.table.style.showLastColumn;\n }\n set showLastColumn(value) {\n this.table.style.showLastColumn = value;\n }\n\n get showRowStripes() {\n return this.table.style.showRowStripes;\n }\n set showRowStripes(value) {\n this.table.style.showRowStripes = value;\n }\n\n get showColumnStripes() {\n return this.table.style.showColumnStripes;\n }\n set showColumnStripes(value) {\n this.table.style.showColumnStripes = value;\n }\n /* eslint-enable lines-between-class-members */\n}\n\nmodule.exports = Table;\n","'use strict';\n\nconst Worksheet = require('./worksheet');\nconst DefinedNames = require('./defined-names');\nconst XLSX = require('../xlsx/xlsx');\nconst CSV = require('../csv/csv');\n\n// Workbook requirements\n// Load and Save from file and stream\n// Access/Add/Delete individual worksheets\n// Manage String table, Hyperlink table, etc.\n// Manage scaffolding for contained objects to write to/read from\n\nclass Workbook {\n constructor() {\n this.category = '';\n this.company = '';\n this.created = new Date();\n this.description = '';\n this.keywords = '';\n this.manager = '';\n this.modified = this.created;\n this.properties = {};\n this.calcProperties = {};\n this._worksheets = [];\n this.subject = '';\n this.title = '';\n this.views = [];\n this.media = [];\n this._definedNames = new DefinedNames();\n }\n\n get xlsx() {\n if (!this._xlsx) this._xlsx = new XLSX(this);\n return this._xlsx;\n }\n\n get csv() {\n if (!this._csv) this._csv = new CSV(this);\n return this._csv;\n }\n\n get nextId() {\n // find the next unique spot to add worksheet\n for (let i = 1; i < this._worksheets.length; i++) {\n if (!this._worksheets[i]) {\n return i;\n }\n }\n return this._worksheets.length || 1;\n }\n\n addWorksheet(name, options) {\n const id = this.nextId;\n\n // if options is a color, call it tabColor (and signal deprecated message)\n if (options) {\n if (typeof options === 'string') {\n // eslint-disable-next-line no-console\n console.trace(\n 'tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { argb: \"rbg value\" } }'\n );\n options = {\n properties: {\n tabColor: {argb: options},\n },\n };\n } else if (options.argb || options.theme || options.indexed) {\n // eslint-disable-next-line no-console\n console.trace(\n 'tabColor argument is now deprecated. Please use workbook.addWorksheet(name, {properties: { tabColor: { ... } }'\n );\n options = {\n properties: {\n tabColor: options,\n },\n };\n }\n }\n\n const lastOrderNo = this._worksheets.reduce((acc, ws) => ((ws && ws.orderNo) > acc ? ws.orderNo : acc), 0);\n const worksheetOptions = Object.assign({}, options, {\n id,\n name,\n orderNo: lastOrderNo + 1,\n workbook: this,\n });\n\n const worksheet = new Worksheet(worksheetOptions);\n\n this._worksheets[id] = worksheet;\n return worksheet;\n }\n\n removeWorksheetEx(worksheet) {\n delete this._worksheets[worksheet.id];\n }\n\n removeWorksheet(id) {\n const worksheet = this.getWorksheet(id);\n if (worksheet) {\n worksheet.destroy();\n }\n }\n\n getWorksheet(id) {\n if (id === undefined) {\n return this._worksheets.find(Boolean);\n }\n if (typeof id === 'number') {\n return this._worksheets[id];\n }\n if (typeof id === 'string') {\n return this._worksheets.find(worksheet => worksheet && worksheet.name === id);\n }\n return undefined;\n }\n\n get worksheets() {\n // return a clone of _worksheets\n return this._worksheets\n .slice(1)\n .sort((a, b) => a.orderNo - b.orderNo)\n .filter(Boolean);\n }\n\n eachSheet(iteratee) {\n this.worksheets.forEach(sheet => {\n iteratee(sheet, sheet.id);\n });\n }\n\n get definedNames() {\n return this._definedNames;\n }\n\n clearThemes() {\n // Note: themes are not an exposed feature, meddle at your peril!\n this._themes = undefined;\n }\n\n addImage(image) {\n // TODO: validation?\n const id = this.media.length;\n this.media.push(Object.assign({}, image, {type: 'image'}));\n return id;\n }\n\n getImage(id) {\n return this.media[id];\n }\n\n get model() {\n return {\n creator: this.creator || 'Unknown',\n lastModifiedBy: this.lastModifiedBy || 'Unknown',\n lastPrinted: this.lastPrinted,\n created: this.created,\n modified: this.modified,\n properties: this.properties,\n worksheets: this.worksheets.map(worksheet => worksheet.model),\n sheets: this.worksheets.map(ws => ws.model).filter(Boolean),\n definedNames: this._definedNames.model,\n views: this.views,\n company: this.company,\n manager: this.manager,\n title: this.title,\n subject: this.subject,\n keywords: this.keywords,\n category: this.category,\n description: this.description,\n language: this.language,\n revision: this.revision,\n contentStatus: this.contentStatus,\n themes: this._themes,\n media: this.media,\n calcProperties: this.calcProperties,\n };\n }\n\n set model(value) {\n this.creator = value.creator;\n this.lastModifiedBy = value.lastModifiedBy;\n this.lastPrinted = value.lastPrinted;\n this.created = value.created;\n this.modified = value.modified;\n this.company = value.company;\n this.manager = value.manager;\n this.title = value.title;\n this.subject = value.subject;\n this.keywords = value.keywords;\n this.category = value.category;\n this.description = value.description;\n this.language = value.language;\n this.revision = value.revision;\n this.contentStatus = value.contentStatus;\n\n this.properties = value.properties;\n this.calcProperties = value.calcProperties;\n this._worksheets = [];\n value.worksheets.forEach(worksheetModel => {\n const {id, name, state} = worksheetModel;\n const orderNo = value.sheets && value.sheets.findIndex(ws => ws.id === id);\n const worksheet = (this._worksheets[id] = new Worksheet({\n id,\n name,\n orderNo,\n state,\n workbook: this,\n }));\n worksheet.model = worksheetModel;\n });\n\n this._definedNames.model = value.definedNames;\n this.views = value.views;\n this._themes = value.themes;\n this.media = value.media || [];\n }\n}\n\nmodule.exports = Workbook;\n","const _ = require('../utils/under-dash');\n\nconst colCache = require('../utils/col-cache');\nconst Range = require('./range');\nconst Row = require('./row');\nconst Column = require('./column');\nconst Enums = require('./enums');\nconst Image = require('./image');\nconst Table = require('./table');\nconst DataValidations = require('./data-validations');\nconst Encryptor = require('../utils/encryptor');\nconst {copyStyle} = require('../utils/copy-style');\n\n// Worksheet requirements\n// Operate as sheet inside workbook or standalone\n// Load and Save from file and stream\n// Access/Add/Delete individual cells\n// Manage column widths and row heights\n\nclass Worksheet {\n constructor(options) {\n options = options || {};\n this._workbook = options.workbook;\n\n // in a workbook, each sheet will have a number\n this.id = options.id;\n this.orderNo = options.orderNo;\n\n // and a name\n this.name = options.name;\n\n // add a state\n this.state = options.state || 'visible';\n\n // rows allows access organised by row. Sparse array of arrays indexed by row-1, col\n // Note: _rows is zero based. Must subtract 1 to go from cell.row to index\n this._rows = [];\n\n // column definitions\n this._columns = null;\n\n // column keys (addRow convenience): key ==> this._collumns index\n this._keys = {};\n\n // keep record of all merges\n this._merges = {};\n\n // record of all row and column pageBreaks\n this.rowBreaks = [];\n\n // for tabColor, default row height, outline levels, etc\n this.properties = Object.assign(\n {},\n {\n defaultRowHeight: 15,\n dyDescent: 55,\n outlineLevelCol: 0,\n outlineLevelRow: 0,\n },\n options.properties\n );\n\n // for all things printing\n this.pageSetup = Object.assign(\n {},\n {\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\n orientation: 'portrait',\n horizontalDpi: 4294967295,\n verticalDpi: 4294967295,\n fitToPage: !!(\n options.pageSetup &&\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\n !options.pageSetup.scale\n ),\n pageOrder: 'downThenOver',\n blackAndWhite: false,\n draft: false,\n cellComments: 'None',\n errors: 'displayed',\n scale: 100,\n fitToWidth: 1,\n fitToHeight: 1,\n paperSize: undefined,\n showRowColHeaders: false,\n showGridLines: false,\n firstPageNumber: undefined,\n horizontalCentered: false,\n verticalCentered: false,\n rowBreaks: null,\n colBreaks: null,\n },\n options.pageSetup\n );\n\n this.headerFooter = Object.assign(\n {},\n {\n differentFirst: false,\n differentOddEven: false,\n oddHeader: null,\n oddFooter: null,\n evenHeader: null,\n evenFooter: null,\n firstHeader: null,\n firstFooter: null,\n },\n options.headerFooter\n );\n\n this.dataValidations = new DataValidations();\n\n // for freezepanes, split, zoom, gridlines, etc\n this.views = options.views || [];\n\n this.autoFilter = options.autoFilter || null;\n\n // for images, etc\n this._media = [];\n\n // worksheet protection\n this.sheetProtection = null;\n\n // for tables\n this.tables = {};\n\n this.conditionalFormattings = [];\n }\n\n get name() {\n return this._name;\n }\n\n set name(name) {\n if (name === undefined) {\n name = `sheet${this.id}`;\n }\n\n if (this._name === name) return;\n\n if (typeof name !== 'string') {\n throw new Error('The name has to be a string.');\n }\n\n if (name === '') {\n throw new Error('The name can\\'t be empty.');\n }\n\n if (name === 'History') {\n throw new Error('The name \"History\" is protected. Please use a different name.');\n }\n\n // Illegal character in worksheet name: asterisk (*), question mark (?),\n // colon (:), forward slash (/ \\), or bracket ([])\n if (/[*?:/\\\\[\\]]/.test(name)) {\n throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\\\ / [ ]`);\n }\n\n if (/(^')|('$)/.test(name)) {\n throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);\n }\n\n if (name && name.length > 31) {\n // eslint-disable-next-line no-console\n console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);\n name = name.substring(0, 31);\n }\n\n if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {\n throw new Error(`Worksheet name already exists: ${name}`);\n }\n\n this._name = name;\n }\n\n get workbook() {\n return this._workbook;\n }\n\n // when you're done with this worksheet, call this to remove from workbook\n destroy() {\n this._workbook.removeWorksheetEx(this);\n }\n\n // Get the bounding range of the cells in this worksheet\n get dimensions() {\n const dimensions = new Range();\n this._rows.forEach(row => {\n if (row) {\n const rowDims = row.dimensions;\n if (rowDims) {\n dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);\n }\n }\n });\n return dimensions;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // set the columns from an array of column definitions.\n // Note: any headers defined will overwrite existing values.\n set columns(value) {\n // calculate max header row count\n this._headerRowCount = value.reduce((pv, cv) => {\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\n return Math.max(pv, headerCount);\n }, 0);\n\n // construct Column objects\n let count = 1;\n const columns = (this._columns = []);\n value.forEach(defn => {\n const column = new Column(this, count++, false);\n columns.push(column);\n column.defn = defn;\n });\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n // get a single column by col number. If it doesn't exist, create it and any gaps before it\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) return col;\n\n // otherwise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n spliceColumns(start, count, ...inserts) {\n const rows = this._rows;\n const nRows = rows.length;\n if (inserts.length > 0) {\n // must iterate over all rows whether they exist yet or not\n for (let i = 0; i < nRows; i++) {\n const rowArguments = [start, count];\n // eslint-disable-next-line no-loop-func\n inserts.forEach(insert => {\n rowArguments.push(insert[i] || null);\n });\n const row = this.getRow(i + 1);\n // eslint-disable-next-line prefer-spread\n row.splice.apply(row, rowArguments);\n }\n } else {\n // nothing to insert, so just splice all rows\n this._rows.forEach(r => {\n if (r) {\n r.splice(start, count);\n }\n });\n }\n\n // splice column definitions\n const nExpand = inserts.length - count;\n const nKeep = start + count;\n const nEnd = this._columns.length;\n if (nExpand < 0) {\n for (let i = start + inserts.length; i <= nEnd; i++) {\n this.getColumn(i).defn = this.getColumn(i - nExpand).defn;\n }\n } else if (nExpand > 0) {\n for (let i = nEnd; i >= nKeep; i--) {\n this.getColumn(i + nExpand).defn = this.getColumn(i).defn;\n }\n }\n for (let i = start; i < start + inserts.length; i++) {\n this.getColumn(i).defn = null;\n }\n\n // account for defined names\n this.workbook.definedNames.spliceColumns(this.name, start, count, inserts.length);\n }\n\n get lastColumn() {\n return this.getColumn(this.columnCount);\n }\n\n get columnCount() {\n let maxCount = 0;\n this.eachRow(row => {\n maxCount = Math.max(maxCount, row.cellCount);\n });\n return maxCount;\n }\n\n get actualColumnCount() {\n // performance nightmare - for each row, counts all the columns used\n const counts = [];\n let count = 0;\n this.eachRow(row => {\n row.eachCell(({col}) => {\n if (!counts[col]) {\n counts[col] = true;\n count++;\n }\n });\n });\n return count;\n }\n\n // =========================================================================\n // Rows\n\n _commitRow() {\n // nop - allows streaming reader to fill a document\n }\n\n get _lastRowNumber() {\n // need to cope with results of splice\n const rows = this._rows;\n let n = rows.length;\n while (n > 0 && rows[n - 1] === undefined) {\n n--;\n }\n return n;\n }\n\n get _nextRow() {\n return this._lastRowNumber + 1;\n }\n\n get lastRow() {\n if (this._rows.length) {\n return this._rows[this._rows.length - 1];\n }\n return undefined;\n }\n\n // find a row (if exists) by row number\n findRow(r) {\n return this._rows[r - 1];\n }\n\n // find multiple rows (if exists) by row number\n findRows(start, length) {\n return this._rows.slice(start - 1, start - 1 + length);\n }\n\n get rowCount() {\n return this._lastRowNumber;\n }\n\n get actualRowCount() {\n // counts actual rows that have actual data\n let count = 0;\n this.eachRow(() => {\n count++;\n });\n return count;\n }\n\n // get a row by row number.\n getRow(r) {\n let row = this._rows[r - 1];\n if (!row) {\n row = this._rows[r - 1] = new Row(this, r);\n }\n return row;\n }\n\n // get multiple rows by row number.\n getRows(start, length) {\n if (length < 1) return undefined;\n const rows = [];\n for (let i = start; i < start + length; i++) {\n rows.push(this.getRow(i));\n }\n return rows;\n }\n\n addRow(value, style = 'n') {\n const rowNo = this._nextRow;\n const row = this.getRow(rowNo);\n row.values = value;\n this._setStyleOption(rowNo, style[0] === 'i' ? style : 'n');\n return row;\n }\n\n addRows(value, style = 'n') {\n const rows = [];\n value.forEach(row => {\n rows.push(this.addRow(row, style));\n });\n return rows;\n }\n\n insertRow(pos, value, style = 'n') {\n this.spliceRows(pos, 0, value);\n this._setStyleOption(pos, style);\n return this.getRow(pos);\n }\n\n insertRows(pos, values, style = 'n') {\n this.spliceRows(pos, 0, ...values);\n if (style !== 'n') {\n // copy over the styles\n for (let i = 0; i < values.length; i++) {\n if (style[0] === 'o' && this.findRow(values.length + pos + i) !== undefined) {\n this._copyStyle(values.length + pos + i, pos + i, style[1] === '+');\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\n this._copyStyle(pos - 1, pos + i, style[1] === '+');\n }\n }\n }\n return this.getRows(pos, values.length);\n }\n\n // set row at position to same style as of either pervious row (option 'i') or next row (option 'o')\n _setStyleOption(pos, style = 'n') {\n if (style[0] === 'o' && this.findRow(pos + 1) !== undefined) {\n this._copyStyle(pos + 1, pos, style[1] === '+');\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\n this._copyStyle(pos - 1, pos, style[1] === '+');\n }\n }\n\n _copyStyle(src, dest, styleEmpty = false) {\n const rSrc = this.getRow(src);\n const rDst = this.getRow(dest);\n rDst.style = copyStyle(rSrc.style);\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: styleEmpty}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = copyStyle(cell.style);\n });\n rDst.height = rSrc.height;\n }\n\n duplicateRow(rowNum, count, insert = false) {\n // create count duplicates of rowNum\n // either inserting new or overwriting existing rows\n\n const rSrc = this._rows[rowNum - 1];\n const inserts = new Array(count).fill(rSrc.values);\n this.spliceRows(rowNum + 1, insert ? 0 : count, ...inserts);\n\n // now copy styles...\n for (let i = 0; i < count; i++) {\n const rDst = this._rows[rowNum + i];\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n });\n }\n }\n\n spliceRows(start, count, ...inserts) {\n // same problem as row.splice, except worse.\n const nKeep = start + count;\n const nInserts = inserts.length;\n const nExpand = nInserts - count;\n const nEnd = this._rows.length;\n let i;\n let rSrc;\n if (nExpand < 0) {\n // remove rows\n if (start === nEnd) {\n this._rows[nEnd - 1] = undefined;\n }\n for (i = nKeep; i <= nEnd; i++) {\n rSrc = this._rows[i - 1];\n if (rSrc) {\n const rDst = this.getRow(i + nExpand);\n rDst.values = rSrc.values;\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n });\n this._rows[i - 1] = undefined;\n } else {\n this._rows[i + nExpand - 1] = undefined;\n }\n }\n } else if (nExpand > 0) {\n // insert new cells\n for (i = nEnd; i >= nKeep; i--) {\n rSrc = this._rows[i - 1];\n if (rSrc) {\n const rDst = this.getRow(i + nExpand);\n rDst.values = rSrc.values;\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n\n // remerge cells accounting for insert offset\n if (cell._value.constructor.name === 'MergeValue') {\n const cellToBeMerged = this.getRow(cell._row._number + nInserts).getCell(colNumber);\n const prevMaster = cell._value._master;\n const newMaster = this.getRow(prevMaster._row._number + nInserts).getCell(prevMaster._column._number);\n cellToBeMerged.merge(newMaster);\n }\n });\n } else {\n this._rows[i + nExpand - 1] = undefined;\n }\n }\n }\n\n // now copy over the new values\n for (i = 0; i < nInserts; i++) {\n const rDst = this.getRow(start + i);\n rDst.style = {};\n rDst.values = inserts[i];\n }\n\n // account for defined names\n this.workbook.definedNames.spliceRows(this.name, start, count, nInserts);\n }\n\n // iterate over every row in the worksheet, including maybe empty rows\n eachRow(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = undefined;\n }\n if (options && options.includeEmpty) {\n const n = this._rows.length;\n for (let i = 1; i <= n; i++) {\n iteratee(this.getRow(i), i);\n }\n } else {\n this._rows.forEach(row => {\n if (row && row.hasValues) {\n iteratee(row, row.number);\n }\n });\n }\n }\n\n // return all rows as sparse array\n getSheetValues() {\n const rows = [];\n this._rows.forEach(row => {\n if (row) {\n rows[row.number] = row.values;\n }\n });\n return rows;\n }\n\n // =========================================================================\n // Cells\n\n // returns the cell at [r,c] or address given by r. If not found, return undefined\n findCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this._rows[address.row - 1];\n return row ? row.findCell(address.col) : undefined;\n }\n\n // return the cell at [r,c] or address given by r. If not found, create a new one.\n getCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.getRow(address.row);\n return row.getCellEx(address);\n }\n\n // =========================================================================\n // Merge\n\n // convert the range defined by ['tl:br'], [tl,br] or [t,l,b,r] into a single 'merged' cell\n mergeCells(...cells) {\n const dimensions = new Range(cells);\n this._mergeCellsInternal(dimensions);\n }\n\n mergeCellsWithoutStyle(...cells) {\n const dimensions = new Range(cells);\n this._mergeCellsInternal(dimensions, true);\n }\n\n _mergeCellsInternal(dimensions, ignoreStyle) {\n // check cells aren't already merged\n _.each(this._merges, merge => {\n if (merge.intersects(dimensions)) {\n throw new Error('Cannot merge already merged cells');\n }\n });\n\n // apply merge\n const master = this.getCell(dimensions.top, dimensions.left);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n // merge all but the master cell\n if (i > dimensions.top || j > dimensions.left) {\n this.getCell(i, j).merge(master, ignoreStyle);\n }\n }\n }\n\n // index merge\n this._merges[master.address] = dimensions;\n }\n\n _unMergeMaster(master) {\n // master is always top left of a rectangle\n const merge = this._merges[master.address];\n if (merge) {\n for (let i = merge.top; i <= merge.bottom; i++) {\n for (let j = merge.left; j <= merge.right; j++) {\n this.getCell(i, j).unmerge();\n }\n }\n delete this._merges[master.address];\n }\n }\n\n get hasMerges() {\n // return true if this._merges has a merge object\n return _.some(this._merges, Boolean);\n }\n\n // scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge,\n // un-merge the group. Note this function can affect multiple merges and merge-blocks are\n // atomic - either they're all merged or all un-merged.\n unMergeCells(...cells) {\n const dimensions = new Range(cells);\n\n // find any cells in that range and unmerge them\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n const cell = this.findCell(i, j);\n if (cell) {\n if (cell.type === Enums.ValueType.Merge) {\n // this cell merges to another master\n this._unMergeMaster(cell.master);\n } else if (this._merges[cell.address]) {\n // this cell is a master\n this._unMergeMaster(cell);\n }\n }\n }\n }\n }\n\n // ===========================================================================\n // Shared/Array Formula\n fillFormula(range, formula, results, shareType = 'shared') {\n // Define formula for top-left cell and share to rest\n const decoded = colCache.decode(range);\n const {top, left, bottom, right} = decoded;\n const width = right - left + 1;\n const masterAddress = colCache.encodeAddress(top, left);\n const isShared = shareType === 'shared';\n\n // work out result accessor\n let getResult;\n if (typeof results === 'function') {\n getResult = results;\n } else if (Array.isArray(results)) {\n if (Array.isArray(results[0])) {\n getResult = (row, col) => results[row - top][col - left];\n } else {\n // eslint-disable-next-line no-mixed-operators\n getResult = (row, col) => results[(row - top) * width + (col - left)];\n }\n } else {\n getResult = () => undefined;\n }\n let first = true;\n for (let r = top; r <= bottom; r++) {\n for (let c = left; c <= right; c++) {\n if (first) {\n this.getCell(r, c).value = {\n shareType,\n formula,\n ref: range,\n result: getResult(r, c),\n };\n first = false;\n } else {\n this.getCell(r, c).value = isShared\n ? {\n sharedFormula: masterAddress,\n result: getResult(r, c),\n }\n : getResult(r, c);\n }\n }\n }\n }\n\n // =========================================================================\n // Images\n addImage(imageId, range) {\n const model = {\n type: 'image',\n imageId,\n range,\n };\n this._media.push(new Image(this, model));\n }\n\n getImages() {\n return this._media.filter(m => m.type === 'image');\n }\n\n addBackgroundImage(imageId) {\n const model = {\n type: 'background',\n imageId,\n };\n this._media.push(new Image(this, model));\n }\n\n getBackgroundImageId() {\n const image = this._media.find(m => m.type === 'background');\n return image && image.imageId;\n }\n\n // =========================================================================\n // Worksheet Protection\n protect(password, options) {\n // TODO: make this function truly async\n // perhaps marshal to worker thread or something\n return new Promise(resolve => {\n this.sheetProtection = {\n sheet: true,\n };\n if (options && 'spinCount' in options) {\n // force spinCount to be integer >= 0\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\n }\n if (password) {\n this.sheetProtection.algorithmName = 'SHA-512';\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\n password,\n 'SHA512',\n this.sheetProtection.saltValue,\n this.sheetProtection.spinCount\n );\n }\n if (options) {\n this.sheetProtection = Object.assign(this.sheetProtection, options);\n if (!password && 'spinCount' in options) {\n delete this.sheetProtection.spinCount;\n }\n }\n resolve();\n });\n }\n\n unprotect() {\n this.sheetProtection = null;\n }\n\n // =========================================================================\n // Tables\n addTable(model) {\n const table = new Table(this, model);\n this.tables[model.name] = table;\n return table;\n }\n\n getTable(name) {\n return this.tables[name];\n }\n\n removeTable(name) {\n delete this.tables[name];\n }\n\n getTables() {\n return Object.values(this.tables);\n }\n\n // ===========================================================================\n // Conditional Formatting\n addConditionalFormatting(cf) {\n this.conditionalFormattings.push(cf);\n }\n\n removeConditionalFormatting(filter) {\n if (typeof filter === 'number') {\n this.conditionalFormattings.splice(filter, 1);\n } else if (filter instanceof Function) {\n this.conditionalFormattings = this.conditionalFormattings.filter(filter);\n } else {\n this.conditionalFormattings = [];\n }\n }\n\n // ===========================================================================\n // Deprecated\n get tabColor() {\n // eslint-disable-next-line no-console\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\n return this.properties.tabColor;\n }\n\n set tabColor(value) {\n // eslint-disable-next-line no-console\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\n this.properties.tabColor = value;\n }\n\n // ===========================================================================\n // Model\n\n get model() {\n const model = {\n id: this.id,\n name: this.name,\n dataValidations: this.dataValidations.model,\n properties: this.properties,\n state: this.state,\n pageSetup: this.pageSetup,\n headerFooter: this.headerFooter,\n rowBreaks: this.rowBreaks,\n views: this.views,\n autoFilter: this.autoFilter,\n media: this._media.map(medium => medium.model),\n sheetProtection: this.sheetProtection,\n tables: Object.values(this.tables).map(table => table.model),\n conditionalFormattings: this.conditionalFormattings,\n };\n\n // =================================================\n // columns\n model.cols = Column.toModel(this.columns);\n\n // ==========================================================\n // Rows\n const rows = (model.rows = []);\n const dimensions = (model.dimensions = new Range());\n this._rows.forEach(row => {\n const rowModel = row && row.model;\n if (rowModel) {\n dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);\n rows.push(rowModel);\n }\n });\n\n // ==========================================================\n // Merges\n model.merges = [];\n _.each(this._merges, merge => {\n model.merges.push(merge.range);\n });\n\n return model;\n }\n\n _parseRows(model) {\n this._rows = [];\n model.rows.forEach(rowModel => {\n const row = new Row(this, rowModel.number);\n this._rows[row.number - 1] = row;\n row.model = rowModel;\n });\n }\n\n _parseMergeCells(model) {\n _.each(model.mergeCells, merge => {\n // Do not merge styles when importing an Excel file\n // since each cell may have different styles intentionally.\n this.mergeCellsWithoutStyle(merge);\n });\n }\n\n set model(value) {\n this.name = value.name;\n this._columns = Column.fromModel(this, value.cols);\n this._parseRows(value);\n\n this._parseMergeCells(value);\n this.dataValidations = new DataValidations(value.dataValidations);\n this.properties = value.properties;\n this.pageSetup = value.pageSetup;\n this.headerFooter = value.headerFooter;\n this.views = value.views;\n this.autoFilter = value.autoFilter;\n this._media = value.media.map(medium => new Image(this, medium));\n this.sheetProtection = value.sheetProtection;\n this.tables = value.tables.reduce((tables, table) => {\n const t = new Table();\n t.model = table;\n tables[table.name] = t;\n return tables;\n }, {});\n this.conditionalFormattings = value.conditionalFormattings;\n }\n}\n\nmodule.exports = Worksheet;\n","/* eslint-disable import/no-extraneous-dependencies,node/no-unpublished-require */\nrequire('core-js/modules/es.promise');\nrequire('core-js/modules/es.promise.finally');\nrequire('core-js/modules/es.object.assign');\nrequire('core-js/modules/es.object.keys');\nrequire('core-js/modules/es.object.values');\nrequire('core-js/modules/es.symbol');\nrequire('core-js/modules/es.symbol.async-iterator');\n// required by core-js/modules/es.promise Promise.all\nrequire('core-js/modules/es.array.iterator');\n// required by node_modules/saxes/saxes.js SaxesParser.captureTo\nrequire('core-js/modules/es.array.includes');\n// required by lib/doc/workbook.js Workbook.model\nrequire('core-js/modules/es.array.find-index');\n// required by lib/doc/workbook.js Workbook.addWorksheet and Workbook.getWorksheet\nrequire('core-js/modules/es.array.find');\n// required by node_modules/saxes/saxes.js SaxesParser.getCode10\nrequire('core-js/modules/es.string.from-code-point');\n// required by lib/xlsx/xform/sheet/data-validations-xform.js DataValidationsXform.parseClose\nrequire('core-js/modules/es.string.includes');\n// required by lib/utils/utils.js utils.validInt and lib/csv/csv.js CSV.read\nrequire('core-js/modules/es.number.is-nan');\nrequire('regenerator-runtime/runtime');\n\nconst ExcelJS = {\n Workbook: require('./doc/workbook'),\n};\n\n// Object.assign mono-fill\nconst Enums = require('./doc/enums');\n\nObject.keys(Enums).forEach(key => {\n ExcelJS[key] = Enums[key];\n});\n\nmodule.exports = ExcelJS;\n","// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');\n\nfunction bufferToString(chunk) {\n if (typeof chunk === 'string') {\n return chunk;\n }\n if (textDecoder) {\n return textDecoder.decode(chunk);\n }\n return chunk.toString();\n}\n\nexports.bufferToString = bufferToString;\n","// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst textEncoder = typeof TextEncoder === 'undefined' ? null : new TextEncoder('utf-8');\nconst {Buffer} = require('buffer');\n\nfunction stringToBuffer(str) {\n if (typeof str !== 'string') {\n return str;\n }\n if (textEncoder) {\n return Buffer.from(textEncoder.encode(str).buffer);\n }\n return Buffer.from(str);\n}\n\nexports.stringToBuffer = stringToBuffer;\n","const _ = require('./under-dash');\nconst colCache = require('./col-cache');\n\nclass CellMatrix {\n constructor(template) {\n this.template = template;\n this.sheets = {};\n }\n\n addCell(addressStr) {\n this.addCellEx(colCache.decodeEx(addressStr));\n }\n\n getCell(addressStr) {\n return this.findCellEx(colCache.decodeEx(addressStr), true);\n }\n\n findCell(addressStr) {\n return this.findCellEx(colCache.decodeEx(addressStr), false);\n }\n\n findCellAt(sheetName, rowNumber, colNumber) {\n const sheet = this.sheets[sheetName];\n const row = sheet && sheet[rowNumber];\n return row && row[colNumber];\n }\n\n addCellEx(address) {\n if (address.top) {\n for (let row = address.top; row <= address.bottom; row++) {\n for (let col = address.left; col <= address.right; col++) {\n this.getCellAt(address.sheetName, row, col);\n }\n }\n } else {\n this.findCellEx(address, true);\n }\n }\n\n getCellEx(address) {\n return this.findCellEx(address, true);\n }\n\n findCellEx(address, create) {\n const sheet = this.findSheet(address, create);\n const row = this.findSheetRow(sheet, address, create);\n return this.findRowCell(row, address, create);\n }\n\n getCellAt(sheetName, rowNumber, colNumber) {\n const sheet = this.sheets[sheetName] || (this.sheets[sheetName] = []);\n const row = sheet[rowNumber] || (sheet[rowNumber] = []);\n const cell =\n row[colNumber] ||\n (row[colNumber] = {\n sheetName,\n address: colCache.n2l(colNumber) + rowNumber,\n row: rowNumber,\n col: colNumber,\n });\n return cell;\n }\n\n removeCellEx(address) {\n const sheet = this.findSheet(address);\n if (!sheet) {\n return;\n }\n const row = this.findSheetRow(sheet, address);\n if (!row) {\n return;\n }\n delete row[address.col];\n }\n\n forEachInSheet(sheetName, callback) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n sheet.forEach((row, rowNumber) => {\n if (row) {\n row.forEach((cell, colNumber) => {\n if (cell) {\n callback(cell, rowNumber, colNumber);\n }\n });\n }\n });\n }\n }\n\n forEach(callback) {\n _.each(this.sheets, (sheet, sheetName) => {\n this.forEachInSheet(sheetName, callback);\n });\n }\n\n map(callback) {\n const results = [];\n this.forEach(cell => {\n results.push(callback(cell));\n });\n return results;\n }\n\n findSheet(address, create) {\n const name = address.sheetName;\n if (this.sheets[name]) {\n return this.sheets[name];\n }\n if (create) {\n return (this.sheets[name] = []);\n }\n return undefined;\n }\n\n findSheetRow(sheet, address, create) {\n const {row} = address;\n if (sheet && sheet[row]) {\n return sheet[row];\n }\n if (create) {\n return (sheet[row] = []);\n }\n return undefined;\n }\n\n findRowCell(row, address, create) {\n const {col} = address;\n if (row && row[col]) {\n return row[col];\n }\n if (create) {\n return (row[col] = this.template\n ? Object.assign(address, JSON.parse(JSON.stringify(this.template)))\n : address);\n }\n return undefined;\n }\n\n spliceRows(sheetName, start, numDelete, numInsert) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n const inserts = [];\n for (let i = 0; i < numInsert; i++) {\n inserts.push([]);\n }\n sheet.splice(start, numDelete, ...inserts);\n }\n }\n\n spliceColumns(sheetName, start, numDelete, numInsert) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n const inserts = [];\n for (let i = 0; i < numInsert; i++) {\n inserts.push(null);\n }\n _.each(sheet, row => {\n row.splice(start, numDelete, ...inserts);\n });\n }\n }\n}\n\nmodule.exports = CellMatrix;\n","const addressRegex = /^[A-Z]+\\d+$/;\n// =========================================================================\n// Column Letter to Number conversion\nconst colCache = {\n _dictionary: [\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n ],\n _l2nFill: 0,\n _l2n: {},\n _n2l: [],\n _level(n) {\n if (n <= 26) {\n return 1;\n }\n if (n <= 26 * 26) {\n return 2;\n }\n return 3;\n },\n _fill(level) {\n let c;\n let v;\n let l1;\n let l2;\n let l3;\n let n = 1;\n if (level >= 4) {\n throw new Error('Out of bounds. Excel supports columns from 1 to 16384');\n }\n if (this._l2nFill < 1 && level >= 1) {\n while (n <= 26) {\n c = this._dictionary[n - 1];\n this._n2l[n] = c;\n this._l2n[c] = n;\n n++;\n }\n this._l2nFill = 1;\n }\n if (this._l2nFill < 2 && level >= 2) {\n n = 27;\n while (n <= 26 + (26 * 26)) {\n v = n - (26 + 1);\n l1 = v % 26;\n l2 = Math.floor(v / 26);\n c = this._dictionary[l2] + this._dictionary[l1];\n this._n2l[n] = c;\n this._l2n[c] = n;\n n++;\n }\n this._l2nFill = 2;\n }\n if (this._l2nFill < 3 && level >= 3) {\n n = 26 + (26 * 26) + 1;\n while (n <= 16384) {\n v = n - ((26 * 26) + 26 + 1);\n l1 = v % 26;\n l2 = Math.floor(v / 26) % 26;\n l3 = Math.floor(v / (26 * 26));\n c = this._dictionary[l3] + this._dictionary[l2] + this._dictionary[l1];\n this._n2l[n] = c;\n this._l2n[c] = n;\n n++;\n }\n this._l2nFill = 3;\n }\n },\n l2n(l) {\n if (!this._l2n[l]) {\n this._fill(l.length);\n }\n if (!this._l2n[l]) {\n throw new Error(`Out of bounds. Invalid column letter: ${l}`);\n }\n return this._l2n[l];\n },\n n2l(n) {\n if (n < 1 || n > 16384) {\n throw new Error(`${n} is out of bounds. Excel supports columns from 1 to 16384`);\n }\n if (!this._n2l[n]) {\n this._fill(this._level(n));\n }\n return this._n2l[n];\n },\n\n // =========================================================================\n // Address processing\n _hash: {},\n\n // check if value looks like an address\n validateAddress(value) {\n if (!addressRegex.test(value)) {\n throw new Error(`Invalid Address: ${value}`);\n }\n return true;\n },\n\n // convert address string into structure\n decodeAddress(value) {\n const addr = value.length < 5 && this._hash[value];\n if (addr) {\n return addr;\n }\n let hasCol = false;\n let col = '';\n let colNumber = 0;\n let hasRow = false;\n let row = '';\n let rowNumber = 0;\n for (let i = 0, char; i < value.length; i++) {\n char = value.charCodeAt(i);\n // col should before row\n if (!hasRow && char >= 65 && char <= 90) {\n // 65 = 'A'.charCodeAt(0)\n // 90 = 'Z'.charCodeAt(0)\n hasCol = true;\n col += value[i];\n // colNumber starts from 1\n colNumber = (colNumber * 26) + char - 64;\n } else if (char >= 48 && char <= 57) {\n // 48 = '0'.charCodeAt(0)\n // 57 = '9'.charCodeAt(0)\n hasRow = true;\n row += value[i];\n // rowNumber starts from 0\n rowNumber = (rowNumber * 10) + char - 48;\n } else if (hasRow && hasCol && char !== 36) {\n // 36 = '$'.charCodeAt(0)\n break;\n }\n }\n if (!hasCol) {\n colNumber = undefined;\n } else if (colNumber > 16384) {\n throw new Error(`Out of bounds. Invalid column letter: ${col}`);\n }\n if (!hasRow) {\n rowNumber = undefined;\n }\n\n // in case $row$col\n value = col + row;\n\n const address = {\n address: value,\n col: colNumber,\n row: rowNumber,\n $col$row: `$${col}$${row}`,\n };\n\n // mem fix - cache only the tl 100x100 square\n if (colNumber <= 100 && rowNumber <= 100) {\n this._hash[value] = address;\n this._hash[address.$col$row] = address;\n }\n\n return address;\n },\n\n // convert r,c into structure (if only 1 arg, assume r is address string)\n getAddress(r, c) {\n if (c) {\n const address = this.n2l(c) + r;\n return this.decodeAddress(address);\n }\n return this.decodeAddress(r);\n },\n\n // convert [address], [tl:br] into address structures\n decode(value) {\n const parts = value.split(':');\n if (parts.length === 2) {\n const tl = this.decodeAddress(parts[0]);\n const br = this.decodeAddress(parts[1]);\n const result = {\n top: Math.min(tl.row, br.row),\n left: Math.min(tl.col, br.col),\n bottom: Math.max(tl.row, br.row),\n right: Math.max(tl.col, br.col),\n };\n // reconstruct tl, br and dimensions\n result.tl = this.n2l(result.left) + result.top;\n result.br = this.n2l(result.right) + result.bottom;\n result.dimensions = `${result.tl}:${result.br}`;\n return result;\n }\n return this.decodeAddress(value);\n },\n\n // convert [sheetName!][$]col[$]row[[$]col[$]row] into address or range structures\n decodeEx(value) {\n const groups = value.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/);\n\n const sheetName = groups[1] || groups[2]; // Qouted and unqouted groups\n const reference = groups[3]; // Remaining address\n\n const parts = reference.split(':');\n if (parts.length > 1) {\n let tl = this.decodeAddress(parts[0]);\n let br = this.decodeAddress(parts[1]);\n const top = Math.min(tl.row, br.row);\n const left = Math.min(tl.col, br.col);\n const bottom = Math.max(tl.row, br.row);\n const right = Math.max(tl.col, br.col);\n\n tl = this.n2l(left) + top;\n br = this.n2l(right) + bottom;\n\n return {\n top,\n left,\n bottom,\n right,\n sheetName,\n tl: {address: tl, col: left, row: top, $col$row: `$${this.n2l(left)}$${top}`, sheetName},\n br: {\n address: br,\n col: right,\n row: bottom,\n $col$row: `$${this.n2l(right)}$${bottom}`,\n sheetName,\n },\n dimensions: `${tl}:${br}`,\n };\n }\n if (reference.startsWith('#')) {\n return sheetName ? {sheetName, error: reference} : {error: reference};\n }\n\n const address = this.decodeAddress(reference);\n return sheetName ? {sheetName, ...address} : address;\n },\n\n // convert row,col into address string\n encodeAddress(row, col) {\n return colCache.n2l(col) + row;\n },\n\n // convert row,col into string address or t,l,b,r into range\n encode() {\n switch (arguments.length) {\n case 2:\n return colCache.encodeAddress(arguments[0], arguments[1]);\n case 4:\n return `${colCache.encodeAddress(arguments[0], arguments[1])}:${colCache.encodeAddress(\n arguments[2],\n arguments[3]\n )}`;\n default:\n throw new Error('Can only encode with 2 or 4 arguments');\n }\n },\n\n // return true if address is contained within range\n inRange(range, address) {\n const [left, top, , right, bottom] = range;\n const [col, row] = address;\n return col >= left && col <= right && row >= top && row <= bottom;\n },\n};\n\nmodule.exports = colCache;\n","const oneDepthCopy = (obj, nestKeys) => ({\n ...obj,\n ...nestKeys.reduce((memo, key) => {\n if (obj[key]) memo[key] = {...obj[key]};\n return memo;\n }, {}),\n});\n\nconst setIfExists = (src, dst, key, nestKeys = []) => {\n if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);\n};\n\nconst isEmptyObj = obj => Object.keys(obj).length === 0;\n\nconst copyStyle = style => {\n if (!style) return style;\n if (isEmptyObj(style)) return {};\n\n const copied = {...style};\n\n setIfExists(style, copied, 'font', ['color']);\n setIfExists(style, copied, 'alignment');\n setIfExists(style, copied, 'protection');\n if (style.border) {\n setIfExists(style, copied, 'border');\n setIfExists(style.border, copied.border, 'top', ['color']);\n setIfExists(style.border, copied.border, 'left', ['color']);\n setIfExists(style.border, copied.border, 'bottom', ['color']);\n setIfExists(style.border, copied.border, 'right', ['color']);\n setIfExists(style.border, copied.border, 'diagonal', ['color']);\n }\n\n if (style.fill) {\n setIfExists(style, copied, 'fill', ['fgColor', 'bgColor', 'center']);\n if (style.fill.stops) {\n copied.fill.stops = style.fill.stops.map(s => oneDepthCopy(s, ['color']));\n }\n }\n\n return copied;\n};\n\nexports.copyStyle = copyStyle;\n","'use strict';\n\nconst crypto = require('crypto');\n\nconst Encryptor = {\n /**\n * Calculate a hash of the concatenated buffers with the given algorithm.\n * @param {string} algorithm - The hash algorithm.\n * @returns {Buffer} The hash\n */\n hash(algorithm, ...buffers) {\n const hash = crypto.createHash(algorithm);\n hash.update(Buffer.concat(buffers));\n return hash.digest();\n },\n /**\n * Convert a password into an encryption key\n * @param {string} password - The password\n * @param {string} hashAlgorithm - The hash algoritm\n * @param {string} saltValue - The salt value\n * @param {number} spinCount - The spin count\n * @param {number} keyBits - The length of the key in bits\n * @param {Buffer} blockKey - The block key\n * @returns {Buffer} The encryption key\n */\n convertPasswordToHash(password, hashAlgorithm, saltValue, spinCount) {\n hashAlgorithm = hashAlgorithm.toLowerCase();\n const hashes = crypto.getHashes();\n if (hashes.indexOf(hashAlgorithm) < 0) {\n throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);\n }\n\n // Password must be in unicode buffer\n const passwordBuffer = Buffer.from(password, 'utf16le');\n // Generate the initial hash\n let key = this.hash(hashAlgorithm, Buffer.from(saltValue, 'base64'), passwordBuffer);\n // Now regenerate until spin count\n for (let i = 0; i < spinCount; i++) {\n const iterator = Buffer.alloc(4);\n // this is the 'special' element of Excel password hashing\n // that stops us from using crypto.pbkdf2()\n iterator.writeUInt32LE(i, 0);\n key = this.hash(hashAlgorithm, key, iterator);\n }\n return key.toString('base64');\n },\n /**\n * Generates cryptographically strong pseudo-random data.\n * @param size The size argument is a number indicating the number of bytes to generate.\n */\n randomBytes(size) {\n return crypto.randomBytes(size);\n },\n};\nmodule.exports = Encryptor;\n","const {SaxesParser} = require('saxes');\nconst {PassThrough} = require('readable-stream');\nconst {bufferToString} = require('./browser-buffer-decode');\n\nmodule.exports = async function* (iterable) {\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old streams\n if (iterable.pipe && !iterable[Symbol.asyncIterator]) {\n iterable = iterable.pipe(new PassThrough());\n }\n const saxesParser = new SaxesParser();\n let error;\n saxesParser.on('error', err => {\n error = err;\n });\n let events = [];\n saxesParser.on('opentag', value => events.push({eventType: 'opentag', value}));\n saxesParser.on('text', value => events.push({eventType: 'text', value}));\n saxesParser.on('closetag', value => events.push({eventType: 'closetag', value}));\n for await (const chunk of iterable) {\n saxesParser.write(bufferToString(chunk));\n // saxesParser.write and saxesParser.on() are synchronous,\n // so we can only reach the below line once all events have been emitted\n if (error) throw error;\n // As a performance optimization, we gather all events instead of passing\n // them one by one, which would cause each event to go through the event queue\n yield events;\n events = [];\n }\n};\n","const colCache = require('./col-cache');\n\n// const cellRefRegex = /(([a-z_\\-0-9]*)!)?[$]?([a-z]+)[$]?([1-9][0-9]*)/i;\nconst replacementCandidateRx = /(([a-z_\\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi;\nconst CRrx = /^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;\n\nfunction slideFormula(formula, fromCell, toCell) {\n const offset = colCache.decode(fromCell);\n const to = colCache.decode(toCell);\n return formula.replace(\n replacementCandidateRx,\n (refMatch, sheet, sheetMaybe, addrPart, trailingParen) => {\n if (trailingParen) {\n return refMatch;\n }\n const match = CRrx.exec(addrPart);\n if (match) {\n const colDollar = match[1];\n const colStr = match[2].toUpperCase();\n const rowDollar = match[3];\n const rowStr = match[4];\n if (colStr.length > 3 || (colStr.length === 3 && colStr > 'XFD')) {\n // > XFD is the highest col number in excel 2007 and beyond, so this is a named range\n return refMatch;\n }\n let col = colCache.l2n(colStr);\n let row = parseInt(rowStr, 10);\n if (!colDollar) {\n col += to.col - offset.col;\n }\n if (!rowDollar) {\n row += to.row - offset.row;\n }\n const res = (sheet || '') + (colDollar || '') + colCache.n2l(col) + (rowDollar || '') + row;\n return res;\n }\n return refMatch;\n }\n );\n}\n\nmodule.exports = {\n slideFormula,\n};\n","/* eslint-disable max-classes-per-file */\nconst Stream = require('readable-stream');\n\nconst utils = require('./utils');\nconst StringBuf = require('./string-buf');\n\n// =============================================================================\n// data chunks - encapsulating incoming data\nclass StringChunk {\n constructor(data, encoding) {\n this._data = data;\n this._encoding = encoding;\n }\n\n get length() {\n return this.toBuffer().length;\n }\n\n // copy to target buffer\n copy(target, targetOffset, offset, length) {\n return this.toBuffer().copy(target, targetOffset, offset, length);\n }\n\n toBuffer() {\n if (!this._buffer) {\n this._buffer = Buffer.from(this._data, this._encoding);\n }\n return this._buffer;\n }\n}\n\nclass StringBufChunk {\n constructor(data) {\n this._data = data;\n }\n\n get length() {\n return this._data.length;\n }\n\n // copy to target buffer\n copy(target, targetOffset, offset, length) {\n // eslint-disable-next-line no-underscore-dangle\n return this._data._buf.copy(target, targetOffset, offset, length);\n }\n\n toBuffer() {\n return this._data.toBuffer();\n }\n}\n\nclass BufferChunk {\n constructor(data) {\n this._data = data;\n }\n\n get length() {\n return this._data.length;\n }\n\n // copy to target buffer\n copy(target, targetOffset, offset, length) {\n this._data.copy(target, targetOffset, offset, length);\n }\n\n toBuffer() {\n return this._data;\n }\n}\n\n// =============================================================================\n// ReadWriteBuf - a single buffer supporting simple read-write\nclass ReadWriteBuf {\n constructor(size) {\n this.size = size;\n // the buffer\n this.buffer = Buffer.alloc(size);\n // read index\n this.iRead = 0;\n // write index\n this.iWrite = 0;\n }\n\n toBuffer() {\n if (this.iRead === 0 && this.iWrite === this.size) {\n return this.buffer;\n }\n\n const buf = Buffer.alloc(this.iWrite - this.iRead);\n this.buffer.copy(buf, 0, this.iRead, this.iWrite);\n return buf;\n }\n\n get length() {\n return this.iWrite - this.iRead;\n }\n\n get eod() {\n return this.iRead === this.iWrite;\n }\n\n get full() {\n return this.iWrite === this.size;\n }\n\n read(size) {\n let buf;\n // read size bytes from buffer and return buffer\n if (size === 0) {\n // special case - return null if no data requested\n return null;\n }\n\n if (size === undefined || size >= this.length) {\n // if no size specified or size is at least what we have then return all of the bytes\n buf = this.toBuffer();\n this.iRead = this.iWrite;\n return buf;\n }\n\n // otherwise return a chunk\n buf = Buffer.alloc(size);\n this.buffer.copy(buf, 0, this.iRead, size);\n this.iRead += size;\n return buf;\n }\n\n write(chunk, offset, length) {\n // write as many bytes from data from optional source offset\n // and return number of bytes written\n const size = Math.min(length, this.size - this.iWrite);\n chunk.copy(this.buffer, this.iWrite, offset, offset + size);\n this.iWrite += size;\n return size;\n }\n}\n\n// =============================================================================\n// StreamBuf - a multi-purpose read-write stream\n// As MemBuf - write as much data as you like. Then call toBuffer() to consolidate\n// As StreamHub - pipe to multiple writables\n// As readable stream - feed data into the writable part and have some other code read from it.\n\n// Note: Not sure why but StreamBuf does not like JS \"class\" sugar. It fails the\n// integration tests\nconst StreamBuf = function(options) {\n options = options || {};\n this.bufSize = options.bufSize || 1024 * 1024;\n this.buffers = [];\n\n // batch mode fills a buffer completely before passing the data on\n // to pipes or 'readable' event listeners\n this.batch = options.batch || false;\n\n this.corked = false;\n // where in the current writable buffer we're up to\n this.inPos = 0;\n\n // where in the current readable buffer we've read up to\n this.outPos = 0;\n\n // consuming pipe streams go here\n this.pipes = [];\n\n // controls emit('data')\n this.paused = false;\n\n this.encoding = null;\n};\n\nutils.inherits(StreamBuf, Stream.Duplex, {\n toBuffer() {\n switch (this.buffers.length) {\n case 0:\n return null;\n case 1:\n return this.buffers[0].toBuffer();\n default:\n return Buffer.concat(this.buffers.map(rwBuf => rwBuf.toBuffer()));\n }\n },\n\n // writable\n // event drain - if write returns false (which it won't), indicates when safe to write again.\n // finish - end() has been called\n // pipe(src) - pipe() has been called on readable\n // unpipe(src) - unpipe() has been called on readable\n // error - duh\n\n _getWritableBuffer() {\n if (this.buffers.length) {\n const last = this.buffers[this.buffers.length - 1];\n if (!last.full) {\n return last;\n }\n }\n const buf = new ReadWriteBuf(this.bufSize);\n this.buffers.push(buf);\n return buf;\n },\n\n async _pipe(chunk) {\n const write = function(pipe) {\n return new Promise(resolve => {\n pipe.write(chunk.toBuffer(), () => {\n resolve();\n });\n });\n };\n await Promise.all(this.pipes.map(write));\n },\n _writeToBuffers(chunk) {\n let inPos = 0;\n const inLen = chunk.length;\n while (inPos < inLen) {\n // find writable buffer\n const buffer = this._getWritableBuffer();\n\n // write some data\n inPos += buffer.write(chunk, inPos, inLen - inPos);\n }\n },\n async write(data, encoding, callback) {\n if (encoding instanceof Function) {\n callback = encoding;\n encoding = 'utf8';\n }\n callback = callback || utils.nop;\n\n // encapsulate data into a chunk\n let chunk;\n if (data instanceof StringBuf) {\n chunk = new StringBufChunk(data);\n } else if (data instanceof Buffer) {\n chunk = new BufferChunk(data);\n } else if (typeof data === 'string' || data instanceof String || data instanceof ArrayBuffer) {\n chunk = new StringChunk(data, encoding);\n } else {\n throw new Error('Chunk must be one of type String, Buffer or StringBuf.');\n }\n\n // now, do something with the chunk\n if (this.pipes.length) {\n if (this.batch) {\n this._writeToBuffers(chunk);\n while (!this.corked && this.buffers.length > 1) {\n this._pipe(this.buffers.shift());\n }\n } else if (!this.corked) {\n await this._pipe(chunk);\n callback();\n } else {\n this._writeToBuffers(chunk);\n process.nextTick(callback);\n }\n } else {\n if (!this.paused) {\n this.emit('data', chunk.toBuffer());\n }\n\n this._writeToBuffers(chunk);\n this.emit('readable');\n }\n\n return true;\n },\n cork() {\n this.corked = true;\n },\n _flush(/* destination */) {\n // if we have comsumers...\n if (this.pipes.length) {\n // and there's stuff not written\n while (this.buffers.length) {\n this._pipe(this.buffers.shift());\n }\n }\n },\n uncork() {\n this.corked = false;\n this._flush();\n },\n end(chunk, encoding, callback) {\n const writeComplete = error => {\n if (error) {\n callback(error);\n } else {\n this._flush();\n this.pipes.forEach(pipe => {\n pipe.end();\n });\n this.emit('finish');\n }\n };\n if (chunk) {\n this.write(chunk, encoding, writeComplete);\n } else {\n writeComplete();\n }\n },\n\n // readable\n // event readable - some data is now available\n // event data - switch to flowing mode - feeds chunks to handler\n // event end - no more data\n // event close - optional, indicates upstream close\n // event error - duh\n read(size) {\n let buffers;\n // read min(buffer, size || infinity)\n if (size) {\n buffers = [];\n while (size && this.buffers.length && !this.buffers[0].eod) {\n const first = this.buffers[0];\n const buffer = first.read(size);\n size -= buffer.length;\n buffers.push(buffer);\n if (first.eod && first.full) {\n this.buffers.shift();\n }\n }\n return Buffer.concat(buffers);\n }\n\n buffers = this.buffers.map(buf => buf.toBuffer()).filter(Boolean);\n this.buffers = [];\n return Buffer.concat(buffers);\n },\n setEncoding(encoding) {\n // causes stream.read or stream.on('data) to return strings of encoding instead of Buffer objects\n this.encoding = encoding;\n },\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n isPaused() {\n return !!this.paused;\n },\n pipe(destination) {\n // add destination to pipe list & write current buffer\n this.pipes.push(destination);\n if (!this.paused && this.buffers.length) {\n this.end();\n }\n },\n unpipe(destination) {\n // remove destination from pipe list\n this.pipes = this.pipes.filter(pipe => pipe !== destination);\n },\n unshift(/* chunk */) {\n // some numpty has read some data that's not for them and they want to put it back!\n // Might implement this some day\n throw new Error('Not Implemented');\n },\n wrap(/* stream */) {\n // not implemented\n throw new Error('Not Implemented');\n },\n});\n\nmodule.exports = StreamBuf;\n","// StringBuf - a way to keep string memory operations to a minimum\n// while building the strings for the xml files\nclass StringBuf {\n constructor(options) {\n this._buf = Buffer.alloc((options && options.size) || 16384);\n this._encoding = (options && options.encoding) || 'utf8';\n\n // where in the buffer we are at\n this._inPos = 0;\n\n // for use by toBuffer()\n this._buffer = undefined;\n }\n\n get length() {\n return this._inPos;\n }\n\n get capacity() {\n return this._buf.length;\n }\n\n get buffer() {\n return this._buf;\n }\n\n toBuffer() {\n // return the current data as a single enclosing buffer\n if (!this._buffer) {\n this._buffer = Buffer.alloc(this.length);\n this._buf.copy(this._buffer, 0, 0, this.length);\n }\n return this._buffer;\n }\n\n reset(position) {\n position = position || 0;\n this._buffer = undefined;\n this._inPos = position;\n }\n\n _grow(min) {\n let size = this._buf.length * 2;\n while (size < min) {\n size *= 2;\n }\n const buf = Buffer.alloc(size);\n this._buf.copy(buf, 0);\n this._buf = buf;\n }\n\n addText(text) {\n this._buffer = undefined;\n\n let inPos = this._inPos + this._buf.write(text, this._inPos, this._encoding);\n\n // if we've hit (or nearing capacity), grow the buf\n while (inPos >= this._buf.length - 4) {\n this._grow(this._inPos + text.length);\n\n // keep trying to write until we've completely written the text\n inPos = this._inPos + this._buf.write(text, this._inPos, this._encoding);\n }\n\n this._inPos = inPos;\n }\n\n addStringBuf(inBuf) {\n if (inBuf.length) {\n this._buffer = undefined;\n\n if (this.length + inBuf.length > this.capacity) {\n this._grow(this.length + inBuf.length);\n }\n // eslint-disable-next-line no-underscore-dangle\n inBuf._buf.copy(this._buf, this._inPos, 0, inBuf.length);\n this._inPos += inBuf.length;\n }\n }\n}\n\nmodule.exports = StringBuf;\n","const {toString} = Object.prototype;\nconst escapeHtmlRegex = /[\"&<>]/;\nconst _ = {\n each: function each(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n obj.forEach(cb);\n } else {\n Object.keys(obj).forEach(key => {\n cb(obj[key], key);\n });\n }\n }\n },\n\n some: function some(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.some(cb);\n }\n return Object.keys(obj).some(key => cb(obj[key], key));\n }\n return false;\n },\n\n every: function every(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.every(cb);\n }\n return Object.keys(obj).every(key => cb(obj[key], key));\n }\n return true;\n },\n\n map: function map(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.map(cb);\n }\n return Object.keys(obj).map(key => cb(obj[key], key));\n }\n return [];\n },\n\n keyBy(a, p) {\n return a.reduce((o, v) => {\n o[v[p]] = v;\n return o;\n }, {});\n },\n\n isEqual: function isEqual(a, b) {\n const aType = typeof a;\n const bType = typeof b;\n const aArray = Array.isArray(a);\n const bArray = Array.isArray(b);\n let keys;\n\n if (aType !== bType) {\n return false;\n }\n switch (typeof a) {\n case 'object':\n if (aArray || bArray) {\n if (aArray && bArray) {\n return (\n a.length === b.length &&\n a.every((aValue, index) => {\n const bValue = b[index];\n return _.isEqual(aValue, bValue);\n })\n );\n }\n return false;\n }\n\n if (a === null || b === null) {\n return a === b;\n }\n\n // Compare object keys and values\n keys = Object.keys(a);\n\n if (Object.keys(b).length !== keys.length) {\n return false;\n }\n\n for (const key of keys) {\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return _.every(a, (aValue, key) => {\n const bValue = b[key];\n return _.isEqual(aValue, bValue);\n });\n\n default:\n return a === b;\n }\n },\n\n escapeHtml(html) {\n const regexResult = escapeHtmlRegex.exec(html);\n if (!regexResult) return html;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < html.length; i++) {\n switch (html.charAt(i)) {\n case '\"':\n escape = '"';\n break;\n case '&':\n escape = '&';\n break;\n case '\\'':\n escape = ''';\n break;\n case '<':\n escape = '<';\n break;\n case '>':\n escape = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) result += html.substring(lastIndex, i);\n lastIndex = i + 1;\n result += escape;\n }\n if (lastIndex !== i) return result + html.substring(lastIndex, i);\n return result;\n },\n\n strcmp(a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n return 0;\n },\n\n isUndefined(val) {\n return toString.call(val) === '[object Undefined]';\n },\n\n isObject(val) {\n return toString.call(val) === '[object Object]';\n },\n\n deepMerge() {\n const target = arguments[0] || {};\n const {length} = arguments;\n // eslint-disable-next-line one-var\n let src, clone, copyIsArray;\n\n function assignValue(val, key) {\n src = target[key];\n copyIsArray = Array.isArray(val);\n if (_.isObject(val) || copyIsArray) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n } else {\n clone = src && _.isObject(src) ? src : {};\n }\n target[key] = _.deepMerge(clone, val);\n } else if (!_.isUndefined(val)) {\n target[key] = val;\n }\n }\n\n for (let i = 0; i < length; i++) {\n _.each(arguments[i], assignValue);\n }\n return target;\n },\n};\n\nmodule.exports = _;\n","const fs = require('fs');\n\n// useful stuff\nconst inherits = function(cls, superCtor, statics, prototype) {\n // eslint-disable-next-line no-underscore-dangle\n cls.super_ = superCtor;\n\n if (!prototype) {\n prototype = statics;\n statics = null;\n }\n\n if (statics) {\n Object.keys(statics).forEach(i => {\n Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));\n });\n }\n\n const properties = {\n constructor: {\n value: cls,\n enumerable: false,\n writable: false,\n configurable: true,\n },\n };\n if (prototype) {\n Object.keys(prototype).forEach(i => {\n properties[i] = Object.getOwnPropertyDescriptor(prototype, i);\n });\n }\n\n cls.prototype = Object.create(superCtor.prototype, properties);\n};\n\n// eslint-disable-next-line no-control-regex\nconst xmlDecodeRegex = /[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/;\nconst utils = {\n nop() {},\n promiseImmediate(value) {\n return new Promise(resolve => {\n if (global.setImmediate) {\n setImmediate(() => {\n resolve(value);\n });\n } else {\n // poorman's setImmediate - must wait at least 1ms\n setTimeout(() => {\n resolve(value);\n }, 1);\n }\n });\n },\n inherits,\n dateToExcel(d, date1904) {\n return 25569 + ( d.getTime() / (24 * 3600 * 1000) ) - (date1904 ? 1462 : 0);\n },\n excelToDate(v, date1904) {\n const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);\n return new Date(millisecondSinceEpoch);\n },\n parsePath(filepath) {\n const last = filepath.lastIndexOf('/');\n return {\n path: filepath.substring(0, last),\n name: filepath.substring(last + 1),\n };\n },\n getRelsPath(filepath) {\n const path = utils.parsePath(filepath);\n return `${path.path}/_rels/${path.name}.rels`;\n },\n xmlEncode(text) {\n const regexResult = xmlDecodeRegex.exec(text);\n if (!regexResult) return text;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n switch (charCode) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n case 127:\n escape = '';\n break;\n default: {\n if (charCode <= 31 && (charCode <= 8 || (charCode >= 11 && charCode !== 13))) {\n escape = '';\n break;\n }\n continue;\n }\n }\n if (lastIndex !== i) result += text.substring(lastIndex, i);\n lastIndex = i + 1;\n if (escape) result += escape;\n }\n if (lastIndex !== i) return result + text.substring(lastIndex, i);\n return result;\n },\n xmlDecode(text) {\n return text.replace(/&([a-z]*);/g, c => {\n switch (c) {\n case '<':\n return '<';\n case '>':\n return '>';\n case '&':\n return '&';\n case ''':\n return '\\'';\n case '"':\n return '\"';\n default:\n return c;\n }\n });\n },\n validInt(value) {\n const i = parseInt(value, 10);\n return !Number.isNaN(i) ? i : 0;\n },\n\n isDateFmt(fmt) {\n if (!fmt) {\n return false;\n }\n\n // must remove all chars inside quotes and []\n fmt = fmt.replace(/\\[[^\\]]*]/g, '');\n fmt = fmt.replace(/\"[^\"]*\"/g, '');\n // then check for date formatting chars\n const result = fmt.match(/[ymdhMsb]+/) !== null;\n return result;\n },\n\n fs: {\n exists(path) {\n return new Promise(resolve => {\n fs.access(path, fs.constants.F_OK, err => {\n resolve(!err);\n });\n });\n },\n },\n\n toIsoDateString(dt) {\n return dt.toIsoString().subsstr(0, 10);\n },\n\n parseBoolean(value) {\n return value === true || value === 'true' || value === 1 || value === '1';\n },\n};\n\nmodule.exports = utils;\n","const _ = require('./under-dash');\n\nconst utils = require('./utils');\n\n// constants\nconst OPEN_ANGLE = '<';\nconst CLOSE_ANGLE = '>';\nconst OPEN_ANGLE_SLASH = '';\n\nfunction pushAttribute(xml, name, value) {\n xml.push(` ${name}=\"${utils.xmlEncode(value.toString())}\"`);\n}\nfunction pushAttributes(xml, attributes) {\n if (attributes) {\n const tmp = [];\n _.each(attributes, (value, name) => {\n if (value !== undefined) {\n pushAttribute(tmp, name, value);\n }\n });\n xml.push(tmp.join(\"\"));\n }\n}\n\nclass XmlStream {\n constructor() {\n this._xml = [];\n this._stack = [];\n this._rollbacks = [];\n }\n\n get tos() {\n return this._stack.length ? this._stack[this._stack.length - 1] : undefined;\n }\n\n get cursor() {\n // handy way to track whether anything has been added\n return this._xml.length;\n }\n\n openXml(docAttributes) {\n const xml = this._xml;\n // \n xml.push('\\n');\n }\n\n openNode(name, attributes) {\n const parent = this.tos;\n const xml = this._xml;\n if (parent && this.open) {\n xml.push(CLOSE_ANGLE);\n }\n\n this._stack.push(name);\n\n // start streaming node\n xml.push(OPEN_ANGLE);\n xml.push(name);\n pushAttributes(xml, attributes);\n this.leaf = true;\n this.open = true;\n }\n\n addAttribute(name, value) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n if (value !== undefined) {\n pushAttribute(this._xml, name, value);\n }\n }\n\n addAttributes(attrs) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n pushAttributes(this._xml, attrs);\n }\n\n writeText(text) {\n const xml = this._xml;\n if (this.open) {\n xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n xml.push(utils.xmlEncode(text.toString()));\n }\n\n writeXml(xml) {\n if (this.open) {\n this._xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n this._xml.push(xml);\n }\n\n closeNode() {\n const node = this._stack.pop();\n const xml = this._xml;\n if (this.leaf) {\n xml.push(CLOSE_SLASH_ANGLE);\n } else {\n xml.push(OPEN_ANGLE_SLASH);\n xml.push(node);\n xml.push(CLOSE_ANGLE);\n }\n this.open = false;\n this.leaf = false;\n }\n\n leafNode(name, attributes, text) {\n this.openNode(name, attributes);\n if (text !== undefined) {\n // zeros need to be written\n this.writeText(text);\n }\n this.closeNode();\n }\n\n closeAll() {\n while (this._stack.length) {\n this.closeNode();\n }\n }\n\n addRollback() {\n this._rollbacks.push({\n xml: this._xml.length,\n stack: this._stack.length,\n leaf: this.leaf,\n open: this.open,\n });\n return this.cursor;\n }\n\n commit() {\n this._rollbacks.pop();\n }\n\n rollback() {\n const r = this._rollbacks.pop();\n if (this._xml.length > r.xml) {\n this._xml.splice(r.xml, this._xml.length - r.xml);\n }\n if (this._stack.length > r.stack) {\n this._stack.splice(r.stack, this._stack.length - r.stack);\n }\n this.leaf = r.leaf;\n this.open = r.open;\n }\n\n get xml() {\n this.closeAll();\n return this._xml.join('');\n }\n}\n\nXmlStream.StdDocAttributes = {\n version: '1.0',\n encoding: 'UTF-8',\n standalone: 'yes',\n};\n\nmodule.exports = XmlStream;\n","const events = require('events');\nconst JSZip = require('jszip');\n\nconst StreamBuf = require('./stream-buf');\nconst {stringToBuffer} = require('./browser-buffer-encode');\n\n// =============================================================================\n// The ZipWriter class\n// Packs streamed data into an output zip stream\nclass ZipWriter extends events.EventEmitter {\n constructor(options) {\n super();\n this.options = Object.assign(\n {\n type: 'nodebuffer',\n compression: 'DEFLATE',\n },\n options\n );\n\n this.zip = new JSZip();\n this.stream = new StreamBuf();\n }\n\n append(data, options) {\n if (options.hasOwnProperty('base64') && options.base64) {\n this.zip.file(options.name, data, {base64: true});\n } else {\n // https://www.npmjs.com/package/process\n if (process.browser && typeof data === 'string') {\n // use TextEncoder in browser\n data = stringToBuffer(data);\n }\n this.zip.file(options.name, data);\n }\n }\n\n async finalize() {\n const content = await this.zip.generateAsync(this.options);\n this.stream.end(content);\n this.emit('finish');\n }\n\n // ==========================================================================\n // Stream.Readable interface\n read(size) {\n return this.stream.read(size);\n }\n\n setEncoding(encoding) {\n return this.stream.setEncoding(encoding);\n }\n\n pause() {\n return this.stream.pause();\n }\n\n resume() {\n return this.stream.resume();\n }\n\n isPaused() {\n return this.stream.isPaused();\n }\n\n pipe(destination, options) {\n return this.stream.pipe(destination, options);\n }\n\n unpipe(destination) {\n return this.stream.unpipe(destination);\n }\n\n unshift(chunk) {\n return this.stream.unshift(chunk);\n }\n\n wrap(stream) {\n return this.stream.wrap(stream);\n }\n}\n\n// =============================================================================\n\nmodule.exports = {\n ZipWriter,\n};\n","module.exports = {\n 0: {f: 'General'},\n 1: {f: '0'},\n 2: {f: '0.00'},\n 3: {f: '#,##0'},\n 4: {f: '#,##0.00'},\n 9: {f: '0%'},\n 10: {f: '0.00%'},\n 11: {f: '0.00E+00'},\n 12: {f: '# ?/?'},\n 13: {f: '# ??/??'},\n 14: {f: 'mm-dd-yy'},\n 15: {f: 'd-mmm-yy'},\n 16: {f: 'd-mmm'},\n 17: {f: 'mmm-yy'},\n 18: {f: 'h:mm AM/PM'},\n 19: {f: 'h:mm:ss AM/PM'},\n 20: {f: 'h:mm'},\n 21: {f: 'h:mm:ss'},\n 22: {f: 'm/d/yy \"h\":mm'},\n\n 27: {\n 'zh-tw': '[$-404]e/m/d',\n 'zh-cn': 'yyyy\"年\"m\"月\"',\n 'ja-jp': '[$-411]ge.m.d',\n 'ko-kr': 'yyyy\"年\" mm\"月\" dd\"日\"',\n },\n 28: {\n 'zh-tw': '[$-404]e\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': '[$-411]ggge\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'mm-dd',\n },\n 29: {\n 'zh-tw': '[$-404]e\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': '[$-411]ggge\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'mm-dd',\n },\n 30: {'zh-tw': 'm/d/yy ', 'zh-cn': 'm-d-yy', 'ja-jp': 'm/d/yy', 'ko-kr': 'mm-dd-yy'},\n 31: {\n 'zh-tw': 'yyyy\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'yyyy\"年\"m\"月\"d\"日\"',\n 'ja-jp': 'yyyy\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'yyyy\"년\" mm\"월\" dd\"일\"',\n },\n 32: {\n 'zh-tw': 'hh\"時\"mm\"分\"',\n 'zh-cn': 'h\"时\"mm\"分\"',\n 'ja-jp': 'h\"時\"mm\"分\"',\n 'ko-kr': 'h\"시\" mm\"분\"',\n },\n 33: {\n 'zh-tw': 'hh\"時\"mm\"分\"ss\"秒\"',\n 'zh-cn': 'h\"时\"mm\"分\"ss\"秒\"',\n 'ja-jp': 'h\"時\"mm\"分\"ss\"秒\"',\n 'ko-kr': 'h\"시\" mm\"분\" ss\"초\"',\n },\n 34: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"',\n 'zh-cn': '上午/下午 h\"时\"mm\"分\"',\n 'ja-jp': 'yyyy\"年\"m\"月\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 35: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"ss\"秒\"',\n 'zh-cn': '上午/下午 h\"时\"mm\"分\"ss\"秒\"',\n 'ja-jp': 'm\"月\"d\"日\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 36: {\n 'zh-tw': '[$-404]e/m/d',\n 'zh-cn': 'yyyy\"年\"m\"月\"',\n 'ja-jp': '[$-411]ge.m.d',\n 'ko-kr': 'yyyy\"年\" mm\"月\" dd\"日\"',\n },\n\n 37: {f: '#,##0 ;(#,##0)'},\n 38: {f: '#,##0 ;[Red](#,##0)'},\n 39: {f: '#,##0.00 ;(#,##0.00)'},\n 40: {f: '#,##0.00 ;[Red](#,##0.00)'},\n 45: {f: 'mm:ss'},\n 46: {f: '[h]:mm:ss'},\n 47: {f: 'mmss.0'},\n 48: {f: '##0.0E+0'},\n 49: {f: '@'},\n\n 50: {\n 'zh-tw': '[$-404]e/m/d',\n 'zh-cn': 'yyyy\"年\"m\"月\"',\n 'ja-jp': '[$-411]ge.m.d',\n 'ko-kr': 'yyyy\"年\" mm\"月\" dd\"日\"',\n },\n 51: {\n 'zh-tw': '[$-404]e\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': '[$-411]ggge\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'mm-dd',\n },\n 52: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"',\n 'zh-cn': 'yyyy\"年\"m\"月\"',\n 'ja-jp': 'yyyy\"年\"m\"月\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 53: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"ss\"秒\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': 'm\"月\"d\"日\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 54: {\n 'zh-tw': '[$-404]e\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': '[$-411]ggge\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'mm-dd',\n },\n 55: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"',\n 'zh-cn': '上午/下午 h\"时\"mm\"分\"',\n 'ja-jp': 'yyyy\"年\"m\"月\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 56: {\n 'zh-tw': '上午/下午 hh\"時\"mm\"分\"ss\"秒\"',\n 'zh-cn': '上午/下午 h\"时\"mm\"分\"ss\"秒\"',\n 'ja-jp': 'm\"月\"d\"日\"',\n 'ko-kr': 'yyyy-mm-dd',\n },\n 57: {\n 'zh-tw': '[$-404]e/m/d',\n 'zh-cn': 'yyyy\"年\"m\"月\"',\n 'ja-jp': '[$-411]ge.m.d',\n 'ko-kr': 'yyyy\"年\" mm\"月\" dd\"日\"',\n },\n 58: {\n 'zh-tw': '[$-404]e\"年\"m\"月\"d\"日\"',\n 'zh-cn': 'm\"月\"d\"日\"',\n 'ja-jp': '[$-411]ggge\"年\"m\"月\"d\"日\"',\n 'ko-kr': 'mm-dd',\n },\n\n 59: {'th-th': 't0'},\n 60: {'th-th': 't0.00'},\n 61: {'th-th': 't#,##0'},\n 62: {'th-th': 't#,##0.00'},\n 67: {'th-th': 't0%'},\n 68: {'th-th': 't0.00%'},\n 69: {'th-th': 't# ?/?'},\n 70: {'th-th': 't# ??/??'},\n\n 81: {'th-th': 'd/m/bb'},\n};\n","'use strict';\n\nmodule.exports = {\n OfficeDocument:\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',\n Worksheet: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',\n CalcChain: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain',\n SharedStrings:\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',\n Styles: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',\n Theme: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',\n Hyperlink: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',\n Image: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\n CoreProperties:\n 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',\n ExtenderProperties:\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n Comments: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments',\n VmlDrawing: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',\n Table: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table',\n};\n","const parseSax = require('../../utils/parse-sax');\nconst XmlStream = require('../../utils/xml-stream');\n\n/* 'virtual' methods used as a form of documentation */\n/* eslint-disable class-methods-use-this */\n\n// Base class for Xforms\nclass BaseXform {\n // constructor(/* model, name */) {}\n\n // ============================================================\n // Virtual Interface\n prepare(/* model, options */) {\n // optional preparation (mutation) of model so it is ready for write\n }\n\n render(/* xmlStream, model */) {\n // convert model to xml\n }\n\n parseOpen(node) {\n // XML node opened\n }\n\n parseText(text) {\n // chunk of text encountered for current node\n }\n\n parseClose(name) {\n // XML node closed\n }\n\n reconcile(model, options) {\n // optional post-parse step (opposite to prepare)\n }\n\n // ============================================================\n reset() {\n // to make sure parses don't bleed to next iteration\n this.model = null;\n\n // if we have a map - reset them too\n if (this.map) {\n Object.values(this.map).forEach(xform => {\n if (xform instanceof BaseXform) {\n xform.reset();\n } else if (xform.xform) {\n xform.xform.reset();\n }\n });\n }\n }\n\n mergeModel(obj) {\n // set obj's props to this.model\n this.model = Object.assign(this.model || {}, obj);\n }\n\n async parse(saxParser) {\n for await (const events of saxParser) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n this.parseOpen(value);\n } else if (eventType === 'text') {\n this.parseText(value);\n } else if (eventType === 'closetag') {\n if (!this.parseClose(value.name)) {\n return this.model;\n }\n }\n }\n }\n return this.model;\n }\n\n async parseStream(stream) {\n return this.parse(parseSax(stream));\n }\n\n get xml() {\n // convenience function to get the xml of this.model\n // useful for manager types that are built during the prepare phase\n return this.toXml(this.model);\n }\n\n toXml(model) {\n const xmlStream = new XmlStream();\n this.render(xmlStream, model);\n return xmlStream.xml;\n }\n\n // ============================================================\n // Useful Utilities\n static toAttribute(value, dflt, always = false) {\n if (value === undefined) {\n if (always) {\n return dflt;\n }\n } else if (always || value !== dflt) {\n return value.toString();\n }\n return undefined;\n }\n\n static toStringAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toStringValue(attr, dflt) {\n return attr === undefined ? dflt : attr;\n }\n\n static toBoolAttribute(value, dflt, always = false) {\n if (value === undefined) {\n if (always) {\n return dflt;\n }\n } else if (always || value !== dflt) {\n return value ? '1' : '0';\n }\n return undefined;\n }\n\n static toBoolValue(attr, dflt) {\n return attr === undefined ? dflt : attr === '1';\n }\n\n static toIntAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toIntValue(attr, dflt) {\n return attr === undefined ? dflt : parseInt(attr, 10);\n }\n\n static toFloatAttribute(value, dflt, always = false) {\n return BaseXform.toAttribute(value, dflt, always);\n }\n\n static toFloatValue(attr, dflt) {\n return attr === undefined ? dflt : parseFloat(attr);\n }\n}\n\nmodule.exports = BaseXform;\n","const BaseXform = require('../base-xform');\nconst colCache = require('../../../utils/col-cache');\n\nclass DefinedNamesXform extends BaseXform {\n render(xmlStream, model) {\n // \n // name.ranges.join(',')\n // name.ranges.join(',')\n // \n xmlStream.openNode('definedName', {\n name: model.name,\n localSheetId: model.localSheetId,\n });\n xmlStream.writeText(model.ranges.join(','));\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'definedName':\n this._parsedName = node.attributes.name;\n this._parsedLocalSheetId = node.attributes.localSheetId;\n this._parsedText = [];\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n this._parsedText.push(text);\n }\n\n parseClose() {\n this.model = {\n name: this._parsedName,\n ranges: extractRanges(this._parsedText.join('')),\n };\n if (this._parsedLocalSheetId !== undefined) {\n this.model.localSheetId = parseInt(this._parsedLocalSheetId, 10);\n }\n return false;\n }\n}\n\nfunction isValidRange(range) {\n try {\n colCache.decodeEx(range);\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction extractRanges(parsedText) {\n const ranges = [];\n let quotesOpened = false;\n let last = '';\n parsedText.split(',').forEach(item => {\n if (!item) {\n return;\n }\n const quotes = (item.match(/'/g) || []).length;\n\n if (!quotes) {\n if (quotesOpened) {\n last += `${item},`;\n } else if (isValidRange(item)) {\n ranges.push(item);\n }\n return;\n }\n const quotesEven = quotes % 2 === 0;\n\n if (!quotesOpened && quotesEven && isValidRange(item)) {\n ranges.push(item);\n } else if (quotesOpened && !quotesEven) {\n quotesOpened = false;\n if (isValidRange(last + item)) {\n ranges.push(last + item);\n }\n last = '';\n } else {\n quotesOpened = true;\n last += `${item},`;\n }\n });\n return ranges;\n}\n\nmodule.exports = DefinedNamesXform;\n","const utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\n\nclass WorksheetXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.leafNode('sheet', {\n sheetId: model.id,\n name: model.name,\n state: model.state,\n 'r:id': model.rId,\n });\n }\n\n parseOpen(node) {\n if (node.name === 'sheet') {\n this.model = {\n name: utils.xmlDecode(node.attributes.name),\n id: parseInt(node.attributes.sheetId, 10),\n state: node.attributes.state,\n rId: node.attributes['r:id'],\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = WorksheetXform;\n","const BaseXform = require('../base-xform');\n\nclass WorkbookCalcPropertiesXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.leafNode('calcPr', {\n calcId: 171027,\n fullCalcOnLoad: model.fullCalcOnLoad ? 1 : undefined,\n });\n }\n\n parseOpen(node) {\n if (node.name === 'calcPr') {\n this.model = {};\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = WorkbookCalcPropertiesXform;\n","const BaseXform = require('../base-xform');\n\nclass WorksheetPropertiesXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.leafNode('workbookPr', {\n date1904: model.date1904 ? 1 : undefined,\n defaultThemeVersion: 164011,\n filterPrivacy: 1,\n });\n }\n\n parseOpen(node) {\n if (node.name === 'workbookPr') {\n this.model = {\n date1904: node.attributes.date1904 === '1',\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = WorksheetPropertiesXform;\n","const BaseXform = require('../base-xform');\n\nclass WorkbookViewXform extends BaseXform {\n render(xmlStream, model) {\n const attributes = {\n xWindow: model.x || 0,\n yWindow: model.y || 0,\n windowWidth: model.width || 12000,\n windowHeight: model.height || 24000,\n firstSheet: model.firstSheet,\n activeTab: model.activeTab,\n };\n if (model.visibility && model.visibility !== 'visible') {\n attributes.visibility = model.visibility;\n }\n xmlStream.leafNode('workbookView', attributes);\n }\n\n parseOpen(node) {\n if (node.name === 'workbookView') {\n const model = (this.model = {});\n const addS = function(name, value, dflt) {\n const s = value !== undefined ? (model[name] = value) : dflt;\n if (s !== undefined) {\n model[name] = s;\n }\n };\n const addN = function(name, value, dflt) {\n const n = value !== undefined ? (model[name] = parseInt(value, 10)) : dflt;\n if (n !== undefined) {\n model[name] = n;\n }\n };\n addN('x', node.attributes.xWindow, 0);\n addN('y', node.attributes.yWindow, 0);\n addN('width', node.attributes.windowWidth, 25000);\n addN('height', node.attributes.windowHeight, 10000);\n addS('visibility', node.attributes.visibility, 'visible');\n addN('activeTab', node.attributes.activeTab, undefined);\n addN('firstSheet', node.attributes.firstSheet, undefined);\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = WorkbookViewXform;\n","const _ = require('../../../utils/under-dash');\n\nconst colCache = require('../../../utils/col-cache');\nconst XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst StaticXform = require('../static-xform');\nconst ListXform = require('../list-xform');\nconst DefinedNameXform = require('./defined-name-xform');\nconst SheetXform = require('./sheet-xform');\nconst WorkbookViewXform = require('./workbook-view-xform');\nconst WorkbookPropertiesXform = require('./workbook-properties-xform');\nconst WorkbookCalcPropertiesXform = require('./workbook-calc-properties-xform');\n\nclass WorkbookXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n fileVersion: WorkbookXform.STATIC_XFORMS.fileVersion,\n workbookPr: new WorkbookPropertiesXform(),\n bookViews: new ListXform({\n tag: 'bookViews',\n count: false,\n childXform: new WorkbookViewXform(),\n }),\n sheets: new ListXform({tag: 'sheets', count: false, childXform: new SheetXform()}),\n definedNames: new ListXform({\n tag: 'definedNames',\n count: false,\n childXform: new DefinedNameXform(),\n }),\n calcPr: new WorkbookCalcPropertiesXform(),\n };\n }\n\n prepare(model) {\n model.sheets = model.worksheets;\n\n // collate all the print areas from all of the sheets and add them to the defined names\n const printAreas = [];\n let index = 0; // sheets is sparse array - calc index manually\n model.sheets.forEach(sheet => {\n if (sheet.pageSetup && sheet.pageSetup.printArea) {\n sheet.pageSetup.printArea.split('&&').forEach(printArea => {\n const printAreaComponents = printArea.split(':');\n const definedName = {\n name: '_xlnm.Print_Area',\n ranges: [`'${sheet.name}'!$${printAreaComponents[0]}:$${printAreaComponents[1]}`],\n localSheetId: index,\n };\n printAreas.push(definedName);\n });\n }\n\n if (\n sheet.pageSetup &&\n (sheet.pageSetup.printTitlesRow || sheet.pageSetup.printTitlesColumn)\n ) {\n const ranges = [];\n\n if (sheet.pageSetup.printTitlesColumn) {\n const titlesColumns = sheet.pageSetup.printTitlesColumn.split(':');\n ranges.push(`'${sheet.name}'!$${titlesColumns[0]}:$${titlesColumns[1]}`);\n }\n\n if (sheet.pageSetup.printTitlesRow) {\n const titlesRows = sheet.pageSetup.printTitlesRow.split(':');\n ranges.push(`'${sheet.name}'!$${titlesRows[0]}:$${titlesRows[1]}`);\n }\n\n const definedName = {\n name: '_xlnm.Print_Titles',\n ranges,\n localSheetId: index,\n };\n\n printAreas.push(definedName);\n }\n index++;\n });\n if (printAreas.length) {\n model.definedNames = model.definedNames.concat(printAreas);\n }\n\n (model.media || []).forEach((medium, i) => {\n // assign name\n medium.name = medium.type + (i + 1);\n });\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode('workbook', WorkbookXform.WORKBOOK_ATTRIBUTES);\n\n this.map.fileVersion.render(xmlStream);\n this.map.workbookPr.render(xmlStream, model.properties);\n this.map.bookViews.render(xmlStream, model.views);\n this.map.sheets.render(xmlStream, model.sheets);\n this.map.definedNames.render(xmlStream, model.definedNames);\n this.map.calcPr.render(xmlStream, model.calcProperties);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'workbook':\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n return true;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'workbook':\n this.model = {\n sheets: this.map.sheets.model,\n properties: this.map.workbookPr.model || {},\n views: this.map.bookViews.model,\n calcProperties: {},\n };\n if (this.map.definedNames.model) {\n this.model.definedNames = this.map.definedNames.model;\n }\n\n return false;\n default:\n // not quite sure how we get here!\n return true;\n }\n }\n\n reconcile(model) {\n const rels = (model.workbookRels || []).reduce((map, rel) => {\n map[rel.Id] = rel;\n return map;\n }, {});\n\n // reconcile sheet ids, rIds and names\n const worksheets = [];\n let worksheet;\n let index = 0;\n\n (model.sheets || []).forEach(sheet => {\n const rel = rels[sheet.rId];\n if (!rel) {\n return;\n }\n // if rel.Target start with `[space]/xl/` or `/xl/` , then it will be replaced with `''` and spliced behind `xl/`,\n // otherwise it will be spliced directly behind `xl/`. i.g.\n worksheet = model.worksheetHash[`xl/${rel.Target.replace(/^(\\s|\\/xl\\/)+/, '')}`];\n // If there are \"chartsheets\" in the file, rel.Target will\n // come out as chartsheets/sheet1.xml or similar here, and\n // that won't be in model.worksheetHash.\n // As we don't have the infrastructure to support chartsheets,\n // we will ignore them for now:\n if (worksheet) {\n worksheet.name = sheet.name;\n worksheet.id = sheet.id;\n worksheet.state = sheet.state;\n worksheets[index++] = worksheet;\n }\n });\n\n // reconcile print areas\n const definedNames = [];\n _.each(model.definedNames, definedName => {\n if (definedName.name === '_xlnm.Print_Area') {\n worksheet = worksheets[definedName.localSheetId];\n if (worksheet) {\n if (!worksheet.pageSetup) {\n worksheet.pageSetup = {};\n }\n const range = colCache.decodeEx(definedName.ranges[0]);\n worksheet.pageSetup.printArea = worksheet.pageSetup.printArea\n ? `${worksheet.pageSetup.printArea}&&${range.dimensions}`\n : range.dimensions;\n }\n } else if (definedName.name === '_xlnm.Print_Titles') {\n worksheet = worksheets[definedName.localSheetId];\n if (worksheet) {\n if (!worksheet.pageSetup) {\n worksheet.pageSetup = {};\n }\n\n const rangeString = definedName.ranges.join(',');\n\n const dollarRegex = /\\$/g;\n\n const rowRangeRegex = /\\$\\d+:\\$\\d+/;\n const rowRangeMatches = rangeString.match(rowRangeRegex);\n\n if (rowRangeMatches && rowRangeMatches.length) {\n const range = rowRangeMatches[0];\n worksheet.pageSetup.printTitlesRow = range.replace(dollarRegex, '');\n }\n\n const columnRangeRegex = /\\$[A-Z]+:\\$[A-Z]+/;\n const columnRangeMatches = rangeString.match(columnRangeRegex);\n\n if (columnRangeMatches && columnRangeMatches.length) {\n const range = columnRangeMatches[0];\n worksheet.pageSetup.printTitlesColumn = range.replace(dollarRegex, '');\n }\n }\n } else {\n definedNames.push(definedName);\n }\n });\n model.definedNames = definedNames;\n\n // used by sheets to build their image models\n model.media.forEach((media, i) => {\n media.index = i;\n });\n }\n}\n\nWorkbookXform.WORKBOOK_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'mc:Ignorable': 'x15',\n 'xmlns:x15': 'http://schemas.microsoft.com/office/spreadsheetml/2010/11/main',\n};\nWorkbookXform.STATIC_XFORMS = {\n fileVersion: new StaticXform({\n tag: 'fileVersion',\n $: {appName: 'xl', lastEdited: 5, lowestEdited: 5, rupBuild: 9303},\n }),\n};\n\nmodule.exports = WorkbookXform;\n","const RichTextXform = require('../strings/rich-text-xform');\nconst utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\n\n/**\n \n \n \n \n \n \n \n \n \n 51422:\n \n \n \n \n \n \n \n test\n \n \n \n */\n\nconst CommentXform = (module.exports = function(model) {\n this.model = model;\n});\n\nutils.inherits(CommentXform, BaseXform, {\n get tag() {\n return 'r';\n },\n\n get richTextXform() {\n if (!this._richTextXform) {\n this._richTextXform = new RichTextXform();\n }\n return this._richTextXform;\n },\n\n render(xmlStream, model) {\n model = model || this.model;\n\n xmlStream.openNode('comment', {\n ref: model.ref,\n authorId: 0,\n });\n xmlStream.openNode('text');\n if (model && model.note && model.note.texts) {\n model.note.texts.forEach(text => {\n this.richTextXform.render(xmlStream, text);\n });\n }\n xmlStream.closeNode();\n xmlStream.closeNode();\n },\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'comment':\n this.model = {\n type: 'note',\n note: {\n texts: [],\n },\n ...node.attributes,\n };\n return true;\n case 'r':\n this.parser = this.richTextXform;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n },\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n },\n parseClose(name) {\n switch (name) {\n case 'comment':\n return false;\n case 'r':\n this.model.note.texts.push(this.parser.model);\n this.parser = undefined;\n return true;\n default:\n if (this.parser) {\n this.parser.parseClose(name);\n }\n return true;\n }\n },\n});\n","const XmlStream = require('../../../utils/xml-stream');\nconst utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\n\nconst CommentXform = require('./comment-xform');\n\nconst CommentsXform = (module.exports = function() {\n this.map = {\n comment: new CommentXform(),\n };\n});\n\nutils.inherits(\n CommentsXform,\n BaseXform,\n {\n COMMENTS_ATTRIBUTES: {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n },\n },\n {\n render(xmlStream, model) {\n model = model || this.model;\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode('comments', CommentsXform.COMMENTS_ATTRIBUTES);\n\n // authors\n // TODO: support authors properly\n xmlStream.openNode('authors');\n xmlStream.leafNode('author', null, 'Author');\n xmlStream.closeNode();\n\n // comments\n xmlStream.openNode('commentList');\n model.comments.forEach(comment => {\n this.map.comment.render(xmlStream, comment);\n });\n xmlStream.closeNode();\n xmlStream.closeNode();\n },\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'commentList':\n this.model = {\n comments: [],\n };\n return true;\n case 'comment':\n this.parser = this.map.comment;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n },\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n },\n parseClose(name) {\n switch (name) {\n case 'commentList':\n return false;\n case 'comment':\n this.model.comments.push(this.parser.model);\n this.parser = undefined;\n return true;\n default:\n if (this.parser) {\n this.parser.parseClose(name);\n }\n return true;\n }\n },\n }\n);\n","const BaseXform = require('../../base-xform');\n\nclass VmlPositionXform extends BaseXform {\n constructor(model) {\n super();\n this._model = model;\n }\n\n get tag() {\n return this._model && this._model.tag;\n }\n\n render(xmlStream, model, type) {\n if (model === type[2]) {\n xmlStream.leafNode(this.tag);\n } else if (this.tag === 'x:SizeWithCells' && model === type[1]) {\n xmlStream.leafNode(this.tag);\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {};\n this.model[this.tag] = true;\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = VmlPositionXform;\n","const BaseXform = require('../../base-xform');\n\nclass VmlProtectionXform extends BaseXform {\n constructor(model) {\n super();\n this._model = model;\n }\n\n get tag() {\n return this._model && this._model.tag;\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, null, model);\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.text = '';\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n this.text = text;\n }\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = VmlProtectionXform;\n","const BaseXform = require('../base-xform');\n\n// render the triangle in the cell for the comment\nclass VmlAnchorXform extends BaseXform {\n get tag() {\n return 'x:Anchor';\n }\n\n getAnchorRect(anchor) {\n const l = Math.floor(anchor.left);\n const lf = Math.floor((anchor.left - l) * 68);\n const t = Math.floor(anchor.top);\n const tf = Math.floor((anchor.top - t) * 18);\n const r = Math.floor(anchor.right);\n const rf = Math.floor((anchor.right - r) * 68);\n const b = Math.floor(anchor.bottom);\n const bf = Math.floor((anchor.bottom - b) * 18);\n return [l, lf, t, tf, r, rf, b, bf];\n }\n\n getDefaultRect(ref) {\n const l = ref.col;\n const lf = 6;\n const t = Math.max(ref.row - 2, 0);\n const tf = 14;\n const r = l + 2;\n const rf = 2;\n const b = t + 4;\n const bf = 16;\n return [l, lf, t, tf, r, rf, b, bf];\n }\n\n render(xmlStream, model) {\n const rect = model.anchor\n ? this.getAnchorRect(model.anchor)\n : this.getDefaultRect(model.refAddress);\n\n xmlStream.leafNode('x:Anchor', null, rect.join(', '));\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.text = '';\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n this.text = text;\n }\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = VmlAnchorXform;\n","const BaseXform = require('../base-xform');\n\nconst VmlAnchorXform = require('./vml-anchor-xform');\nconst VmlProtectionXform = require('./style/vml-protection-xform');\nconst VmlPositionXform = require('./style/vml-position-xform');\n\nconst POSITION_TYPE = ['twoCells', 'oneCells', 'absolute'];\n\nclass VmlClientDataXform extends BaseXform {\n constructor() {\n super();\n this.map = {\n 'x:Anchor': new VmlAnchorXform(),\n 'x:Locked': new VmlProtectionXform({tag: 'x:Locked'}),\n 'x:LockText': new VmlProtectionXform({tag: 'x:LockText'}),\n 'x:SizeWithCells': new VmlPositionXform({tag: 'x:SizeWithCells'}),\n 'x:MoveWithCells': new VmlPositionXform({tag: 'x:MoveWithCells'}),\n };\n }\n\n get tag() {\n return 'x:ClientData';\n }\n\n render(xmlStream, model) {\n const {protection, editAs} = model.note;\n xmlStream.openNode(this.tag, {ObjectType: 'Note'});\n this.map['x:MoveWithCells'].render(xmlStream, editAs, POSITION_TYPE);\n this.map['x:SizeWithCells'].render(xmlStream, editAs, POSITION_TYPE);\n this.map['x:Anchor'].render(xmlStream, model);\n this.map['x:Locked'].render(xmlStream, protection.locked);\n xmlStream.leafNode('x:AutoFill', null, 'False');\n this.map['x:LockText'].render(xmlStream, protection.lockText);\n xmlStream.leafNode('x:Row', null, model.refAddress.row - 1);\n xmlStream.leafNode('x:Column', null, model.refAddress.col - 1);\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.reset();\n this.model = {\n anchor: [],\n protection: {},\n editAs: '',\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.normalizeModel();\n return false;\n default:\n return true;\n }\n }\n\n normalizeModel() {\n const position = Object.assign(\n {},\n this.map['x:MoveWithCells'].model,\n this.map['x:SizeWithCells'].model\n );\n const len = Object.keys(position).length;\n this.model.editAs = POSITION_TYPE[len];\n this.model.anchor = this.map['x:Anchor'].text;\n this.model.protection.locked = this.map['x:Locked'].text;\n this.model.protection.lockText = this.map['x:LockText'].text;\n }\n}\n\nmodule.exports = VmlClientDataXform;\n","const XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst VmlShapeXform = require('./vml-shape-xform');\n\n// This class is (currently) single purposed to insert the triangle\n// drawing icons on commented cells\nclass VmlNotesXform extends BaseXform {\n constructor() {\n super();\n this.map = {\n 'v:shape': new VmlShapeXform(),\n };\n }\n\n get tag() {\n return 'xml';\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode(this.tag, VmlNotesXform.DRAWING_ATTRIBUTES);\n\n xmlStream.openNode('o:shapelayout', {'v:ext': 'edit'});\n xmlStream.leafNode('o:idmap', {'v:ext': 'edit', data: 1});\n xmlStream.closeNode();\n\n xmlStream.openNode('v:shapetype', {\n id: '_x0000_t202',\n coordsize: '21600,21600',\n 'o:spt': 202,\n path: 'm,l,21600r21600,l21600,xe',\n });\n xmlStream.leafNode('v:stroke', {joinstyle: 'miter'});\n xmlStream.leafNode('v:path', {gradientshapeok: 't', 'o:connecttype': 'rect'});\n xmlStream.closeNode();\n\n model.comments.forEach((item, index) => {\n this.map['v:shape'].render(xmlStream, item, index);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.reset();\n this.model = {\n comments: [],\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.comments.push(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n model.anchors.forEach(anchor => {\n if (anchor.br) {\n this.map['xdr:twoCellAnchor'].reconcile(anchor, options);\n } else {\n this.map['xdr:oneCellAnchor'].reconcile(anchor, options);\n }\n });\n }\n}\n\nVmlNotesXform.DRAWING_ATTRIBUTES = {\n 'xmlns:v': 'urn:schemas-microsoft-com:vml',\n 'xmlns:o': 'urn:schemas-microsoft-com:office:office',\n 'xmlns:x': 'urn:schemas-microsoft-com:office:excel',\n};\n\nmodule.exports = VmlNotesXform;\n","const BaseXform = require('../base-xform');\nconst VmlTextboxXform = require('./vml-textbox-xform');\nconst VmlClientDataXform = require('./vml-client-data-xform');\n\nclass VmlShapeXform extends BaseXform {\n constructor() {\n super();\n this.map = {\n 'v:textbox': new VmlTextboxXform(),\n 'x:ClientData': new VmlClientDataXform(),\n };\n }\n\n get tag() {\n return 'v:shape';\n }\n\n render(xmlStream, model, index) {\n xmlStream.openNode('v:shape', VmlShapeXform.V_SHAPE_ATTRIBUTES(model, index));\n\n xmlStream.leafNode('v:fill', {color2: 'infoBackground [80]'});\n xmlStream.leafNode('v:shadow', {color: 'none [81]', obscured: 't'});\n xmlStream.leafNode('v:path', {'o:connecttype': 'none'});\n this.map['v:textbox'].render(xmlStream, model);\n this.map['x:ClientData'].render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case this.tag:\n this.reset();\n this.model = {\n margins: {\n insetmode: node.attributes['o:insetmode'],\n },\n anchor: '',\n editAs: '',\n protection: {},\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.margins.inset = this.map['v:textbox'].model && this.map['v:textbox'].model.inset;\n this.model.protection =\n this.map['x:ClientData'].model && this.map['x:ClientData'].model.protection;\n this.model.anchor = this.map['x:ClientData'].model && this.map['x:ClientData'].model.anchor;\n this.model.editAs = this.map['x:ClientData'].model && this.map['x:ClientData'].model.editAs;\n return false;\n default:\n return true;\n }\n }\n}\n\nVmlShapeXform.V_SHAPE_ATTRIBUTES = (model, index) => ({\n id: `_x0000_s${1025 + index}`,\n type: '#_x0000_t202',\n style:\n 'position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden',\n fillcolor: 'infoBackground [80]',\n strokecolor: 'none [81]',\n 'o:insetmode': model.note.margins && model.note.margins.insetmode,\n});\n\nmodule.exports = VmlShapeXform;\n","const BaseXform = require('../base-xform');\n\nclass VmlTextboxXform extends BaseXform {\n get tag() {\n return 'v:textbox';\n }\n\n conversionUnit(value, multiple, unit) {\n return `${parseFloat(value) * multiple.toFixed(2)}${unit}`;\n }\n\n reverseConversionUnit(inset) {\n return (inset || '').split(',').map(margin => {\n return Number(parseFloat(this.conversionUnit(parseFloat(margin), 0.1, '')).toFixed(2));\n });\n }\n\n render(xmlStream, model) {\n const attributes = {\n style: 'mso-direction-alt:auto',\n };\n if (model && model.note) {\n let {inset} = model.note && model.note.margins;\n if (Array.isArray(inset)) {\n inset = inset\n .map(margin => {\n return this.conversionUnit(margin, 10, 'mm');\n })\n .join(',');\n }\n if (inset) {\n attributes.inset = inset;\n }\n }\n xmlStream.openNode('v:textbox', attributes);\n xmlStream.leafNode('div', {style: 'text-align:left'});\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n inset: this.reverseConversionUnit(node.attributes.inset),\n };\n return true;\n default:\n return true;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n switch (name) {\n case this.tag:\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = VmlTextboxXform;\n","const BaseXform = require('./base-xform');\n\n/* 'virtual' methods used as a form of documentation */\n/* eslint-disable class-methods-use-this */\n\n// base class for xforms that are composed of other xforms\n// offers some default implementations\nclass CompositeXform extends BaseXform {\n createNewModel(node) {\n return {};\n }\n\n parseOpen(node) {\n // Typical pattern for composite xform\n this.parser = this.parser || this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n if (node.name === this.tag) {\n this.model = this.createNewModel(node);\n return true;\n }\n\n return false;\n }\n\n parseText(text) {\n // Default implementation. Send text to child parser\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n onParserClose(name, parser) {\n // parseClose has seen a child parser close\n // now need to incorporate into this.model somehow\n this.model[name] = parser.model;\n }\n\n parseClose(name) {\n // Default implementation\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.onParserClose(name, this.parser);\n this.parser = undefined;\n }\n return true;\n }\n\n return name !== this.tag;\n }\n}\n\nmodule.exports = CompositeXform;\n","const BaseXform = require('../base-xform');\n\nclass AppHeadingPairsXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.openNode('HeadingPairs');\n xmlStream.openNode('vt:vector', {size: 2, baseType: 'variant'});\n\n xmlStream.openNode('vt:variant');\n xmlStream.leafNode('vt:lpstr', undefined, 'Worksheets');\n xmlStream.closeNode();\n\n xmlStream.openNode('vt:variant');\n xmlStream.leafNode('vt:i4', undefined, model.length);\n xmlStream.closeNode();\n\n xmlStream.closeNode();\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n // no parsing\n return node.name === 'HeadingPairs';\n }\n\n parseText() {}\n\n parseClose(name) {\n return name !== 'HeadingPairs';\n }\n}\n\nmodule.exports = AppHeadingPairsXform;\n","const BaseXform = require('../base-xform');\n\nclass AppTitlesOfPartsXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.openNode('TitlesOfParts');\n xmlStream.openNode('vt:vector', {size: model.length, baseType: 'lpstr'});\n\n model.forEach(sheet => {\n xmlStream.leafNode('vt:lpstr', undefined, sheet.name);\n });\n\n xmlStream.closeNode();\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n // no parsing\n return node.name === 'TitlesOfParts';\n }\n\n parseText() {}\n\n parseClose(name) {\n return name !== 'TitlesOfParts';\n }\n}\n\nmodule.exports = AppTitlesOfPartsXform;\n","const XmlStream = require('../../../utils/xml-stream');\nconst BaseXform = require('../base-xform');\nconst StringXform = require('../simple/string-xform');\n\nconst AppHeadingPairsXform = require('./app-heading-pairs-xform');\nconst AppTitleOfPartsXform = require('./app-titles-of-parts-xform');\n\nclass AppXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n Company: new StringXform({tag: 'Company'}),\n Manager: new StringXform({tag: 'Manager'}),\n HeadingPairs: new AppHeadingPairsXform(),\n TitleOfParts: new AppTitleOfPartsXform(),\n };\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n\n xmlStream.openNode('Properties', AppXform.PROPERTY_ATTRIBUTES);\n\n xmlStream.leafNode('Application', undefined, 'Microsoft Excel');\n xmlStream.leafNode('DocSecurity', undefined, '0');\n xmlStream.leafNode('ScaleCrop', undefined, 'false');\n\n this.map.HeadingPairs.render(xmlStream, model.worksheets);\n this.map.TitleOfParts.render(xmlStream, model.worksheets);\n this.map.Company.render(xmlStream, model.company || '');\n this.map.Manager.render(xmlStream, model.manager);\n\n xmlStream.leafNode('LinksUpToDate', undefined, 'false');\n xmlStream.leafNode('SharedDoc', undefined, 'false');\n xmlStream.leafNode('HyperlinksChanged', undefined, 'false');\n xmlStream.leafNode('AppVersion', undefined, '16.0300');\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'Properties':\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n // there's a lot we don't bother to parse\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'Properties':\n this.model = {\n worksheets: this.map.TitleOfParts.model,\n company: this.map.Company.model,\n manager: this.map.Manager.model,\n };\n return false;\n default:\n return true;\n }\n }\n}\n\nAppXform.DateFormat = function(dt) {\n return dt.toISOString().replace(/[.]\\d{3,6}/, '');\n};\n\nAppXform.DateAttrs = {'xsi:type': 'dcterms:W3CDTF'};\n\nAppXform.PROPERTY_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties',\n 'xmlns:vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n};\n\nmodule.exports = AppXform;\n","const XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\n\n// used for rendering the [Content_Types].xml file\n// not used for parsing\nclass ContentTypesXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n\n xmlStream.openNode('Types', ContentTypesXform.PROPERTY_ATTRIBUTES);\n\n const mediaHash = {};\n (model.media || []).forEach(medium => {\n if (medium.type === 'image') {\n const imageType = medium.extension;\n if (!mediaHash[imageType]) {\n mediaHash[imageType] = true;\n xmlStream.leafNode('Default', {Extension: imageType, ContentType: `image/${imageType}`});\n }\n }\n });\n\n xmlStream.leafNode('Default', {\n Extension: 'rels',\n ContentType: 'application/vnd.openxmlformats-package.relationships+xml',\n });\n xmlStream.leafNode('Default', {Extension: 'xml', ContentType: 'application/xml'});\n\n xmlStream.leafNode('Override', {\n PartName: '/xl/workbook.xml',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml',\n });\n\n model.worksheets.forEach(worksheet => {\n const name = `/xl/worksheets/sheet${worksheet.id}.xml`;\n xmlStream.leafNode('Override', {\n PartName: name,\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml',\n });\n });\n\n xmlStream.leafNode('Override', {\n PartName: '/xl/theme/theme1.xml',\n ContentType: 'application/vnd.openxmlformats-officedocument.theme+xml',\n });\n xmlStream.leafNode('Override', {\n PartName: '/xl/styles.xml',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml',\n });\n\n const hasSharedStrings = model.sharedStrings && model.sharedStrings.count;\n if (hasSharedStrings) {\n xmlStream.leafNode('Override', {\n PartName: '/xl/sharedStrings.xml',\n ContentType:\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml',\n });\n }\n\n if (model.tables) {\n model.tables.forEach(table => {\n xmlStream.leafNode('Override', {\n PartName: `/xl/tables/${table.target}`,\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml',\n });\n });\n }\n\n if (model.drawings) {\n model.drawings.forEach(drawing => {\n xmlStream.leafNode('Override', {\n PartName: `/xl/drawings/${drawing.name}.xml`,\n ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml',\n });\n });\n }\n\n if (model.commentRefs) {\n xmlStream.leafNode('Default', {\n Extension: 'vml',\n ContentType: 'application/vnd.openxmlformats-officedocument.vmlDrawing',\n });\n\n model.commentRefs.forEach(({commentName}) => {\n xmlStream.leafNode('Override', {\n PartName: `/xl/${commentName}.xml`,\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml',\n });\n });\n }\n\n xmlStream.leafNode('Override', {\n PartName: '/docProps/core.xml',\n ContentType: 'application/vnd.openxmlformats-package.core-properties+xml',\n });\n xmlStream.leafNode('Override', {\n PartName: '/docProps/app.xml',\n ContentType: 'application/vnd.openxmlformats-officedocument.extended-properties+xml',\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen() {\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nContentTypesXform.PROPERTY_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/package/2006/content-types',\n};\n\nmodule.exports = ContentTypesXform;\n","const XmlStream = require('../../../utils/xml-stream');\nconst BaseXform = require('../base-xform');\nconst DateXform = require('../simple/date-xform');\nconst StringXform = require('../simple/string-xform');\nconst IntegerXform = require('../simple/integer-xform');\n\nclass CoreXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'dc:creator': new StringXform({tag: 'dc:creator'}),\n 'dc:title': new StringXform({tag: 'dc:title'}),\n 'dc:subject': new StringXform({tag: 'dc:subject'}),\n 'dc:description': new StringXform({tag: 'dc:description'}),\n 'dc:identifier': new StringXform({tag: 'dc:identifier'}),\n 'dc:language': new StringXform({tag: 'dc:language'}),\n 'cp:keywords': new StringXform({tag: 'cp:keywords'}),\n 'cp:category': new StringXform({tag: 'cp:category'}),\n 'cp:lastModifiedBy': new StringXform({tag: 'cp:lastModifiedBy'}),\n 'cp:lastPrinted': new DateXform({tag: 'cp:lastPrinted', format: CoreXform.DateFormat}),\n 'cp:revision': new IntegerXform({tag: 'cp:revision'}),\n 'cp:version': new StringXform({tag: 'cp:version'}),\n 'cp:contentStatus': new StringXform({tag: 'cp:contentStatus'}),\n 'cp:contentType': new StringXform({tag: 'cp:contentType'}),\n 'dcterms:created': new DateXform({\n tag: 'dcterms:created',\n attrs: CoreXform.DateAttrs,\n format: CoreXform.DateFormat,\n }),\n 'dcterms:modified': new DateXform({\n tag: 'dcterms:modified',\n attrs: CoreXform.DateAttrs,\n format: CoreXform.DateFormat,\n }),\n };\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n\n xmlStream.openNode('cp:coreProperties', CoreXform.CORE_PROPERTY_ATTRIBUTES);\n\n this.map['dc:creator'].render(xmlStream, model.creator);\n this.map['dc:title'].render(xmlStream, model.title);\n this.map['dc:subject'].render(xmlStream, model.subject);\n this.map['dc:description'].render(xmlStream, model.description);\n this.map['dc:identifier'].render(xmlStream, model.identifier);\n this.map['dc:language'].render(xmlStream, model.language);\n this.map['cp:keywords'].render(xmlStream, model.keywords);\n this.map['cp:category'].render(xmlStream, model.category);\n this.map['cp:lastModifiedBy'].render(xmlStream, model.lastModifiedBy);\n this.map['cp:lastPrinted'].render(xmlStream, model.lastPrinted);\n this.map['cp:revision'].render(xmlStream, model.revision);\n this.map['cp:version'].render(xmlStream, model.version);\n this.map['cp:contentStatus'].render(xmlStream, model.contentStatus);\n this.map['cp:contentType'].render(xmlStream, model.contentType);\n this.map['dcterms:created'].render(xmlStream, model.created);\n this.map['dcterms:modified'].render(xmlStream, model.modified);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'cp:coreProperties':\n case 'coreProperties':\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'cp:coreProperties':\n case 'coreProperties':\n this.model = {\n creator: this.map['dc:creator'].model,\n title: this.map['dc:title'].model,\n subject: this.map['dc:subject'].model,\n description: this.map['dc:description'].model,\n identifier: this.map['dc:identifier'].model,\n language: this.map['dc:language'].model,\n keywords: this.map['cp:keywords'].model,\n category: this.map['cp:category'].model,\n lastModifiedBy: this.map['cp:lastModifiedBy'].model,\n lastPrinted: this.map['cp:lastPrinted'].model,\n revision: this.map['cp:revision'].model,\n contentStatus: this.map['cp:contentStatus'].model,\n contentType: this.map['cp:contentType'].model,\n created: this.map['dcterms:created'].model,\n modified: this.map['dcterms:modified'].model,\n };\n return false;\n default:\n throw new Error(`Unexpected xml node in parseClose: ${name}`);\n }\n }\n}\n\nCoreXform.DateFormat = function(dt) {\n return dt.toISOString().replace(/[.]\\d{3}/, '');\n};\nCoreXform.DateAttrs = {'xsi:type': 'dcterms:W3CDTF'};\n\nCoreXform.CORE_PROPERTY_ATTRIBUTES = {\n 'xmlns:cp': 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n 'xmlns:dc': 'http://purl.org/dc/elements/1.1/',\n 'xmlns:dcterms': 'http://purl.org/dc/terms/',\n 'xmlns:dcmitype': 'http://purl.org/dc/dcmitype/',\n 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n};\n\nmodule.exports = CoreXform;\n","const BaseXform = require('../base-xform');\n\nclass RelationshipXform extends BaseXform {\n render(xmlStream, model) {\n xmlStream.leafNode('Relationship', model);\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'Relationship':\n this.model = node.attributes;\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = RelationshipXform;\n","const XmlStream = require('../../../utils/xml-stream');\nconst BaseXform = require('../base-xform');\n\nconst RelationshipXform = require('./relationship-xform');\n\nclass RelationshipsXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n Relationship: new RelationshipXform(),\n };\n }\n\n render(xmlStream, model) {\n model = model || this._values;\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode('Relationships', RelationshipsXform.RELATIONSHIPS_ATTRIBUTES);\n\n model.forEach(relationship => {\n this.map.Relationship.render(xmlStream, relationship);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'Relationships':\n this.model = [];\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.push(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'Relationships':\n return false;\n default:\n throw new Error(`Unexpected xml node in parseClose: ${name}`);\n }\n }\n}\n\nRelationshipsXform.RELATIONSHIPS_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/package/2006/relationships',\n};\n\nmodule.exports = RelationshipsXform;\n","const BaseXform = require('../base-xform');\n\nclass BaseCellAnchorXform extends BaseXform {\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.reset();\n this.model = {\n range: {\n editAs: node.attributes.editAs || 'oneCell',\n },\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n reconcilePicture(model, options) {\n if (model && model.rId) {\n const rel = options.rels[model.rId];\n const match = rel.Target.match(/.*\\/media\\/(.+[.][a-zA-Z]{3,4})/);\n if (match) {\n const name = match[1];\n const mediaId = options.mediaIndex[name];\n return options.media[mediaId];\n }\n }\n return undefined;\n }\n}\n\nmodule.exports = BaseCellAnchorXform;\n","const BaseXform = require('../base-xform');\nconst BlipXform = require('./blip-xform');\n\nclass BlipFillXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'a:blip': new BlipXform(),\n };\n }\n\n get tag() {\n return 'xdr:blipFill';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n this.map['a:blip'].render(xmlStream, model);\n\n // TODO: options for this + parsing\n xmlStream.openNode('a:stretch');\n xmlStream.leafNode('a:fillRect');\n xmlStream.closeNode();\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case this.tag:\n this.reset();\n break;\n\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model = this.map['a:blip'].model;\n return false;\n\n default:\n return true;\n }\n }\n}\n\nmodule.exports = BlipFillXform;\n","const BaseXform = require('../base-xform');\n\nclass BlipXform extends BaseXform {\n get tag() {\n return 'a:blip';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n 'r:embed': model.rId,\n cstate: 'print',\n });\n // TODO: handle children (e.g. a:extLst=>a:ext=>a14:useLocalDpi\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n rId: node.attributes['r:embed'],\n };\n return true;\n default:\n return true;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n switch (name) {\n case this.tag:\n return false;\n default:\n // unprocessed internal nodes\n return true;\n }\n }\n}\n\nmodule.exports = BlipXform;\n","const BaseXform = require('../base-xform');\n\nclass CNvPicPrXform extends BaseXform {\n get tag() {\n return 'xdr:cNvPicPr';\n }\n\n render(xmlStream) {\n xmlStream.openNode(this.tag);\n xmlStream.leafNode('a:picLocks', {\n noChangeAspect: '1',\n });\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n return true;\n default:\n return true;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n switch (name) {\n case this.tag:\n return false;\n default:\n // unprocessed internal nodes\n return true;\n }\n }\n}\n\nmodule.exports = CNvPicPrXform;\n","const BaseXform = require('../base-xform');\nconst HlickClickXform = require('./hlink-click-xform');\nconst ExtLstXform = require('./ext-lst-xform');\n\nclass CNvPrXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'a:hlinkClick': new HlickClickXform(),\n 'a:extLst': new ExtLstXform(),\n };\n }\n\n get tag() {\n return 'xdr:cNvPr';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n id: model.index,\n name: `Picture ${model.index}`,\n });\n this.map['a:hlinkClick'].render(xmlStream, model);\n this.map['a:extLst'].render(xmlStream, model);\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case this.tag:\n this.reset();\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model = this.map['a:hlinkClick'].model;\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = CNvPrXform;\n","const BaseXform = require('../base-xform');\nconst IntegerXform = require('../simple/integer-xform');\n\nclass CellPositionXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.map = {\n 'xdr:col': new IntegerXform({tag: 'xdr:col', zero: true}),\n 'xdr:colOff': new IntegerXform({tag: 'xdr:colOff', zero: true}),\n 'xdr:row': new IntegerXform({tag: 'xdr:row', zero: true}),\n 'xdr:rowOff': new IntegerXform({tag: 'xdr:rowOff', zero: true}),\n };\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n this.map['xdr:col'].render(xmlStream, model.nativeCol);\n this.map['xdr:colOff'].render(xmlStream, model.nativeColOff);\n\n this.map['xdr:row'].render(xmlStream, model.nativeRow);\n this.map['xdr:rowOff'].render(xmlStream, model.nativeRowOff);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.reset();\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model = {\n nativeCol: this.map['xdr:col'].model,\n nativeColOff: this.map['xdr:colOff'].model,\n nativeRow: this.map['xdr:row'].model,\n nativeRowOff: this.map['xdr:rowOff'].model,\n };\n return false;\n default:\n // not quite sure how we get here!\n return true;\n }\n }\n}\n\nmodule.exports = CellPositionXform;\n","const colCache = require('../../../utils/col-cache');\nconst XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst TwoCellAnchorXform = require('./two-cell-anchor-xform');\nconst OneCellAnchorXform = require('./one-cell-anchor-xform');\n\nfunction getAnchorType(model) {\n const range = typeof model.range === 'string' ? colCache.decode(model.range) : model.range;\n\n return range.br ? 'xdr:twoCellAnchor' : 'xdr:oneCellAnchor';\n}\n\nclass DrawingXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'xdr:twoCellAnchor': new TwoCellAnchorXform(),\n 'xdr:oneCellAnchor': new OneCellAnchorXform(),\n };\n }\n\n prepare(model) {\n model.anchors.forEach((item, index) => {\n item.anchorType = getAnchorType(item);\n const anchor = this.map[item.anchorType];\n anchor.prepare(item, {index});\n });\n }\n\n get tag() {\n return 'xdr:wsDr';\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode(this.tag, DrawingXform.DRAWING_ATTRIBUTES);\n\n model.anchors.forEach(item => {\n const anchor = this.map[item.anchorType];\n anchor.render(xmlStream, item);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.reset();\n this.model = {\n anchors: [],\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.anchors.push(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n model.anchors.forEach(anchor => {\n if (anchor.br) {\n this.map['xdr:twoCellAnchor'].reconcile(anchor, options);\n } else {\n this.map['xdr:oneCellAnchor'].reconcile(anchor, options);\n }\n });\n }\n}\n\nDrawingXform.DRAWING_ATTRIBUTES = {\n 'xmlns:xdr': 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing',\n 'xmlns:a': 'http://schemas.openxmlformats.org/drawingml/2006/main',\n};\n\nmodule.exports = DrawingXform;\n","const BaseXform = require('../base-xform');\n\nclass ExtLstXform extends BaseXform {\n get tag() {\n return 'a:extLst';\n }\n\n render(xmlStream) {\n xmlStream.openNode(this.tag);\n xmlStream.openNode('a:ext', {\n uri: '{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}',\n });\n xmlStream.leafNode('a16:creationId', {\n 'xmlns:a16': 'http://schemas.microsoft.com/office/drawing/2014/main',\n id: '{00000000-0008-0000-0000-000002000000}',\n });\n xmlStream.closeNode();\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n return true;\n default:\n return true;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n switch (name) {\n case this.tag:\n return false;\n default:\n // unprocessed internal nodes\n return true;\n }\n }\n}\n\nmodule.exports = ExtLstXform;\n","const BaseXform = require('../base-xform');\n\n/** https://en.wikipedia.org/wiki/Office_Open_XML_file_formats#DrawingML */\nconst EMU_PER_PIXEL_AT_96_DPI = 9525;\n\nclass ExtXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.map = {};\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n const width = Math.floor(model.width * EMU_PER_PIXEL_AT_96_DPI);\n const height = Math.floor(model.height * EMU_PER_PIXEL_AT_96_DPI);\n\n xmlStream.addAttribute('cx', width);\n xmlStream.addAttribute('cy', height);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = {\n width: parseInt(node.attributes.cx || '0', 10) / EMU_PER_PIXEL_AT_96_DPI,\n height: parseInt(node.attributes.cy || '0', 10) / EMU_PER_PIXEL_AT_96_DPI,\n };\n return true;\n }\n return false;\n }\n\n parseText(/* text */) {}\n\n parseClose(/* name */) {\n return false;\n }\n}\n\nmodule.exports = ExtXform;\n","const BaseXform = require('../base-xform');\n\nclass HLinkClickXform extends BaseXform {\n get tag() {\n return 'a:hlinkClick';\n }\n\n render(xmlStream, model) {\n if (!(model.hyperlinks && model.hyperlinks.rId)) {\n return;\n }\n xmlStream.leafNode(this.tag, {\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n 'r:id': model.hyperlinks.rId,\n tooltip: model.hyperlinks.tooltip,\n });\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n hyperlinks: {\n rId: node.attributes['r:id'],\n tooltip: node.attributes.tooltip,\n },\n };\n return true;\n default:\n return true;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = HLinkClickXform;\n","const BaseXform = require('../base-xform');\nconst CNvPrXform = require('./c-nv-pr-xform');\nconst CNvPicPrXform = require('./c-nv-pic-pr-xform');\n\nclass NvPicPrXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'xdr:cNvPr': new CNvPrXform(),\n 'xdr:cNvPicPr': new CNvPicPrXform(),\n };\n }\n\n get tag() {\n return 'xdr:nvPicPr';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n this.map['xdr:cNvPr'].render(xmlStream, model);\n this.map['xdr:cNvPicPr'].render(xmlStream, model);\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case this.tag:\n this.reset();\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model = this.map['xdr:cNvPr'].model;\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = NvPicPrXform;\n","const BaseCellAnchorXform = require('./base-cell-anchor-xform');\nconst StaticXform = require('../static-xform');\n\nconst CellPositionXform = require('./cell-position-xform');\nconst ExtXform = require('./ext-xform');\nconst PicXform = require('./pic-xform');\n\nclass OneCellAnchorXform extends BaseCellAnchorXform {\n constructor() {\n super();\n\n this.map = {\n 'xdr:from': new CellPositionXform({tag: 'xdr:from'}),\n 'xdr:ext': new ExtXform({tag: 'xdr:ext'}),\n 'xdr:pic': new PicXform(),\n 'xdr:clientData': new StaticXform({tag: 'xdr:clientData'}),\n };\n }\n\n get tag() {\n return 'xdr:oneCellAnchor';\n }\n\n prepare(model, options) {\n this.map['xdr:pic'].prepare(model.picture, options);\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {editAs: model.range.editAs || 'oneCell'});\n\n this.map['xdr:from'].render(xmlStream, model.range.tl);\n this.map['xdr:ext'].render(xmlStream, model.range.ext);\n this.map['xdr:pic'].render(xmlStream, model.picture);\n this.map['xdr:clientData'].render(xmlStream, {});\n\n xmlStream.closeNode();\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.range.tl = this.map['xdr:from'].model;\n this.model.range.ext = this.map['xdr:ext'].model;\n this.model.picture = this.map['xdr:pic'].model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n model.medium = this.reconcilePicture(model.picture, options);\n }\n}\n\nmodule.exports = OneCellAnchorXform;\n","const BaseXform = require('../base-xform');\nconst StaticXform = require('../static-xform');\n\nconst BlipFillXform = require('./blip-fill-xform');\nconst NvPicPrXform = require('./nv-pic-pr-xform');\n\nconst spPrJSON = require('./sp-pr');\n\nclass PicXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n 'xdr:nvPicPr': new NvPicPrXform(),\n 'xdr:blipFill': new BlipFillXform(),\n 'xdr:spPr': new StaticXform(spPrJSON),\n };\n }\n\n get tag() {\n return 'xdr:pic';\n }\n\n prepare(model, options) {\n model.index = options.index + 1;\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n this.map['xdr:nvPicPr'].render(xmlStream, model);\n this.map['xdr:blipFill'].render(xmlStream, model);\n this.map['xdr:spPr'].render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.reset();\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.mergeModel(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n // not quite sure how we get here!\n return true;\n }\n }\n}\n\nmodule.exports = PicXform;\n","module.exports = {\n tag: 'xdr:spPr',\n c: [\n {\n tag: 'a:xfrm',\n c: [\n {tag: 'a:off', $: {x: '0', y: '0'}},\n {tag: 'a:ext', $: {cx: '0', cy: '0'}},\n ],\n },\n {\n tag: 'a:prstGeom',\n $: {prst: 'rect'},\n c: [{tag: 'a:avLst'}],\n },\n ],\n};\n","const BaseCellAnchorXform = require('./base-cell-anchor-xform');\nconst StaticXform = require('../static-xform');\n\nconst CellPositionXform = require('./cell-position-xform');\nconst PicXform = require('./pic-xform');\n\nclass TwoCellAnchorXform extends BaseCellAnchorXform {\n constructor() {\n super();\n\n this.map = {\n 'xdr:from': new CellPositionXform({tag: 'xdr:from'}),\n 'xdr:to': new CellPositionXform({tag: 'xdr:to'}),\n 'xdr:pic': new PicXform(),\n 'xdr:clientData': new StaticXform({tag: 'xdr:clientData'}),\n };\n }\n\n get tag() {\n return 'xdr:twoCellAnchor';\n }\n\n prepare(model, options) {\n this.map['xdr:pic'].prepare(model.picture, options);\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {editAs: model.range.editAs || 'oneCell'});\n\n this.map['xdr:from'].render(xmlStream, model.range.tl);\n this.map['xdr:to'].render(xmlStream, model.range.br);\n this.map['xdr:pic'].render(xmlStream, model.picture);\n this.map['xdr:clientData'].render(xmlStream, {});\n\n xmlStream.closeNode();\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.range.tl = this.map['xdr:from'].model;\n this.model.range.br = this.map['xdr:to'].model;\n this.model.picture = this.map['xdr:pic'].model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n model.medium = this.reconcilePicture(model.picture, options);\n }\n}\n\nmodule.exports = TwoCellAnchorXform;\n","const BaseXform = require('./base-xform');\n\nclass ListXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.always = !!options.always;\n this.count = options.count;\n this.empty = options.empty;\n this.$count = options.$count || 'count';\n this.$ = options.$;\n this.childXform = options.childXform;\n this.maxItems = options.maxItems;\n }\n\n prepare(model, options) {\n const {childXform} = this;\n if (model) {\n model.forEach((childModel, index) => {\n options.index = index;\n childXform.prepare(childModel, options);\n });\n }\n }\n\n render(xmlStream, model) {\n if (this.always || (model && model.length)) {\n xmlStream.openNode(this.tag, this.$);\n if (this.count) {\n xmlStream.addAttribute(this.$count, (model && model.length) || 0);\n }\n\n const {childXform} = this;\n (model || []).forEach((childModel, index) => {\n childXform.render(xmlStream, childModel, index);\n });\n\n xmlStream.closeNode();\n } else if (this.empty) {\n xmlStream.leafNode(this.tag);\n }\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.model = [];\n return true;\n default:\n if (this.childXform.parseOpen(node)) {\n this.parser = this.childXform;\n return true;\n }\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.push(this.parser.model);\n this.parser = undefined;\n\n if (this.maxItems && this.model.length > this.maxItems) {\n throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);\n }\n }\n return true;\n }\n\n return false;\n }\n\n reconcile(model, options) {\n if (model) {\n const {childXform} = this;\n model.forEach(childModel => {\n childXform.reconcile(childModel, options);\n });\n }\n }\n}\n\nmodule.exports = ListXform;\n","const colCache = require('../../../utils/col-cache');\nconst BaseXform = require('../base-xform');\n\nclass AutoFilterXform extends BaseXform {\n get tag() {\n return 'autoFilter';\n }\n\n render(xmlStream, model) {\n if (model) {\n if (typeof model === 'string') {\n // assume range\n xmlStream.leafNode('autoFilter', {ref: model});\n } else {\n const getAddress = function(addr) {\n if (typeof addr === 'string') {\n return addr;\n }\n return colCache.getAddress(addr.row, addr.column).address;\n };\n\n const firstAddress = getAddress(model.from);\n const secondAddress = getAddress(model.to);\n if (firstAddress && secondAddress) {\n xmlStream.leafNode('autoFilter', {ref: `${firstAddress}:${secondAddress}`});\n }\n }\n }\n }\n\n parseOpen(node) {\n if (node.name === 'autoFilter') {\n this.model = node.attributes.ref;\n }\n }\n}\n\nmodule.exports = AutoFilterXform;\n","const utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\nconst Range = require('../../../doc/range');\nconst Enums = require('../../../doc/enums');\n\nconst RichTextXform = require('../strings/rich-text-xform');\n\nfunction getValueType(v) {\n if (v === null || v === undefined) {\n return Enums.ValueType.Null;\n }\n if (v instanceof String || typeof v === 'string') {\n return Enums.ValueType.String;\n }\n if (typeof v === 'number') {\n return Enums.ValueType.Number;\n }\n if (typeof v === 'boolean') {\n return Enums.ValueType.Boolean;\n }\n if (v instanceof Date) {\n return Enums.ValueType.Date;\n }\n if (v.text && v.hyperlink) {\n return Enums.ValueType.Hyperlink;\n }\n if (v.formula) {\n return Enums.ValueType.Formula;\n }\n if (v.error) {\n return Enums.ValueType.Error;\n }\n throw new Error('I could not understand type of value');\n}\n\nfunction getEffectiveCellType(cell) {\n switch (cell.type) {\n case Enums.ValueType.Formula:\n return getValueType(cell.result);\n default:\n return cell.type;\n }\n}\n\nclass CellXform extends BaseXform {\n constructor() {\n super();\n\n this.richTextXForm = new RichTextXform();\n }\n\n get tag() {\n return 'c';\n }\n\n prepare(model, options) {\n const styleId = options.styles.addStyleModel(model.style || {}, getEffectiveCellType(model));\n if (styleId) {\n model.styleId = styleId;\n }\n\n if (model.comment) {\n options.comments.push({...model.comment, ref: model.address});\n }\n\n switch (model.type) {\n case Enums.ValueType.String:\n case Enums.ValueType.RichText:\n if (options.sharedStrings) {\n model.ssId = options.sharedStrings.add(model.value);\n }\n break;\n\n case Enums.ValueType.Date:\n if (options.date1904) {\n model.date1904 = true;\n }\n break;\n\n case Enums.ValueType.Hyperlink:\n if (options.sharedStrings && model.text !== undefined && model.text !== null) {\n model.ssId = options.sharedStrings.add(model.text);\n }\n options.hyperlinks.push({\n address: model.address,\n target: model.hyperlink,\n tooltip: model.tooltip,\n });\n break;\n\n case Enums.ValueType.Merge:\n options.merges.add(model);\n break;\n\n case Enums.ValueType.Formula:\n if (options.date1904) {\n // in case valueType is date\n model.date1904 = true;\n }\n\n if (model.shareType === 'shared') {\n model.si = options.siFormulae++;\n }\n\n if (model.formula) {\n options.formulae[model.address] = model;\n } else if (model.sharedFormula) {\n const master = options.formulae[model.sharedFormula];\n if (!master) {\n throw new Error(\n `Shared Formula master must exist above and or left of clone for cell ${model.address}`\n );\n }\n if (master.si === undefined) {\n master.shareType = 'shared';\n master.si = options.siFormulae++;\n master.range = new Range(master.address, model.address);\n } else if (master.range) {\n master.range.expandToAddress(model.address);\n }\n model.si = master.si;\n }\n break;\n\n default:\n break;\n }\n }\n\n renderFormula(xmlStream, model) {\n let attrs = null;\n switch (model.shareType) {\n case 'shared':\n attrs = {\n t: 'shared',\n ref: model.ref || model.range.range,\n si: model.si,\n };\n break;\n\n case 'array':\n attrs = {\n t: 'array',\n ref: model.ref,\n };\n break;\n\n default:\n if (model.si !== undefined) {\n attrs = {\n t: 'shared',\n si: model.si,\n };\n }\n break;\n }\n\n switch (getValueType(model.result)) {\n case Enums.ValueType.Null: // ?\n xmlStream.leafNode('f', attrs, model.formula);\n break;\n\n case Enums.ValueType.String:\n // oddly, formula results don't ever use shared strings\n xmlStream.addAttribute('t', 'str');\n xmlStream.leafNode('f', attrs, model.formula);\n xmlStream.leafNode('v', null, model.result);\n break;\n\n case Enums.ValueType.Number:\n xmlStream.leafNode('f', attrs, model.formula);\n xmlStream.leafNode('v', null, model.result);\n break;\n\n case Enums.ValueType.Boolean:\n xmlStream.addAttribute('t', 'b');\n xmlStream.leafNode('f', attrs, model.formula);\n xmlStream.leafNode('v', null, model.result ? 1 : 0);\n break;\n\n case Enums.ValueType.Error:\n xmlStream.addAttribute('t', 'e');\n xmlStream.leafNode('f', attrs, model.formula);\n xmlStream.leafNode('v', null, model.result.error);\n break;\n\n case Enums.ValueType.Date:\n xmlStream.leafNode('f', attrs, model.formula);\n xmlStream.leafNode('v', null, utils.dateToExcel(model.result, model.date1904));\n break;\n\n // case Enums.ValueType.Hyperlink: // ??\n // case Enums.ValueType.Formula:\n default:\n throw new Error('I could not understand type of value');\n }\n }\n\n render(xmlStream, model) {\n if (model.type === Enums.ValueType.Null && !model.styleId) {\n // if null and no style, exit\n return;\n }\n\n xmlStream.openNode('c');\n xmlStream.addAttribute('r', model.address);\n\n if (model.styleId) {\n xmlStream.addAttribute('s', model.styleId);\n }\n\n switch (model.type) {\n case Enums.ValueType.Null:\n break;\n\n case Enums.ValueType.Number:\n xmlStream.leafNode('v', null, model.value);\n break;\n\n case Enums.ValueType.Boolean:\n xmlStream.addAttribute('t', 'b');\n xmlStream.leafNode('v', null, model.value ? '1' : '0');\n break;\n\n case Enums.ValueType.Error:\n xmlStream.addAttribute('t', 'e');\n xmlStream.leafNode('v', null, model.value.error);\n break;\n\n case Enums.ValueType.String:\n case Enums.ValueType.RichText:\n if (model.ssId !== undefined) {\n xmlStream.addAttribute('t', 's');\n xmlStream.leafNode('v', null, model.ssId);\n } else if (model.value && model.value.richText) {\n xmlStream.addAttribute('t', 'inlineStr');\n xmlStream.openNode('is');\n model.value.richText.forEach(text => {\n this.richTextXForm.render(xmlStream, text);\n });\n xmlStream.closeNode('is');\n } else {\n xmlStream.addAttribute('t', 'str');\n xmlStream.leafNode('v', null, model.value);\n }\n break;\n\n case Enums.ValueType.Date:\n xmlStream.leafNode('v', null, utils.dateToExcel(model.value, model.date1904));\n break;\n\n case Enums.ValueType.Hyperlink:\n if (model.ssId !== undefined) {\n xmlStream.addAttribute('t', 's');\n xmlStream.leafNode('v', null, model.ssId);\n } else {\n xmlStream.addAttribute('t', 'str');\n xmlStream.leafNode('v', null, model.text);\n }\n break;\n\n case Enums.ValueType.Formula:\n this.renderFormula(xmlStream, model);\n break;\n\n case Enums.ValueType.Merge:\n // nothing to add\n break;\n\n default:\n break;\n }\n\n xmlStream.closeNode(); // \n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'c':\n // const address = colCache.decodeAddress(node.attributes.r);\n this.model = {\n address: node.attributes.r,\n };\n this.t = node.attributes.t;\n if (node.attributes.s) {\n this.model.styleId = parseInt(node.attributes.s, 10);\n }\n return true;\n\n case 'f':\n this.currentNode = 'f';\n this.model.si = node.attributes.si;\n this.model.shareType = node.attributes.t;\n this.model.ref = node.attributes.ref;\n return true;\n\n case 'v':\n this.currentNode = 'v';\n return true;\n\n case 't':\n this.currentNode = 't';\n return true;\n\n case 'r':\n this.parser = this.richTextXForm;\n this.parser.parseOpen(node);\n return true;\n\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n return;\n }\n switch (this.currentNode) {\n case 'f':\n this.model.formula = this.model.formula ? this.model.formula + text : text;\n break;\n case 'v':\n case 't':\n if (this.model.value && this.model.value.richText) {\n this.model.value.richText.text = this.model.value.richText.text\n ? this.model.value.richText.text + text\n : text;\n } else {\n this.model.value = this.model.value ? this.model.value + text : text;\n }\n break;\n default:\n break;\n }\n }\n\n parseClose(name) {\n switch (name) {\n case 'c': {\n const {model} = this;\n\n // first guess on cell type\n if (model.formula || model.shareType) {\n model.type = Enums.ValueType.Formula;\n if (model.value) {\n if (this.t === 'str') {\n model.result = utils.xmlDecode(model.value);\n } else if (this.t === 'b') {\n model.result = parseInt(model.value, 10) !== 0;\n } else if (this.t === 'e') {\n model.result = {error: model.value};\n } else {\n model.result = parseFloat(model.value);\n }\n model.value = undefined;\n }\n } else if (model.value !== undefined) {\n switch (this.t) {\n case 's':\n model.type = Enums.ValueType.String;\n model.value = parseInt(model.value, 10);\n break;\n case 'str':\n model.type = Enums.ValueType.String;\n model.value = utils.xmlDecode(model.value);\n break;\n case 'inlineStr':\n model.type = Enums.ValueType.String;\n break;\n case 'b':\n model.type = Enums.ValueType.Boolean;\n model.value = parseInt(model.value, 10) !== 0;\n break;\n case 'e':\n model.type = Enums.ValueType.Error;\n model.value = {error: model.value};\n break;\n default:\n model.type = Enums.ValueType.Number;\n model.value = parseFloat(model.value);\n break;\n }\n } else if (model.styleId) {\n model.type = Enums.ValueType.Null;\n } else {\n model.type = Enums.ValueType.Merge;\n }\n return false;\n }\n\n case 'f':\n case 'v':\n case 'is':\n this.currentNode = undefined;\n return true;\n\n case 't':\n if (this.parser) {\n this.parser.parseClose(name);\n return true;\n }\n this.currentNode = undefined;\n return true;\n\n case 'r':\n this.model.value = this.model.value || {};\n this.model.value.richText = this.model.value.richText || [];\n this.model.value.richText.push(this.parser.model);\n this.parser = undefined;\n this.currentNode = undefined;\n return true;\n\n default:\n if (this.parser) {\n this.parser.parseClose(name);\n return true;\n }\n return false;\n }\n }\n\n reconcile(model, options) {\n const style = model.styleId && options.styles && options.styles.getStyleModel(model.styleId);\n if (style) {\n model.style = style;\n }\n if (model.styleId !== undefined) {\n model.styleId = undefined;\n }\n\n switch (model.type) {\n case Enums.ValueType.String:\n if (typeof model.value === 'number') {\n if (options.sharedStrings) {\n model.value = options.sharedStrings.getString(model.value);\n }\n }\n if (model.value.richText) {\n model.type = Enums.ValueType.RichText;\n }\n break;\n\n case Enums.ValueType.Number:\n if (style && utils.isDateFmt(style.numFmt)) {\n model.type = Enums.ValueType.Date;\n model.value = utils.excelToDate(model.value, options.date1904);\n }\n break;\n\n case Enums.ValueType.Formula:\n if (model.result !== undefined && style && utils.isDateFmt(style.numFmt)) {\n model.result = utils.excelToDate(model.result, options.date1904);\n }\n if (model.shareType === 'shared') {\n if (model.ref) {\n // master\n options.formulae[model.si] = model.address;\n } else {\n // slave\n model.sharedFormula = options.formulae[model.si];\n delete model.shareType;\n }\n delete model.si;\n }\n break;\n\n default:\n break;\n }\n\n // look for hyperlink\n const hyperlink = options.hyperlinkMap[model.address];\n if (hyperlink) {\n if (model.type === Enums.ValueType.Formula) {\n model.text = model.result;\n model.result = undefined;\n } else {\n model.text = model.value;\n model.value = undefined;\n }\n model.type = Enums.ValueType.Hyperlink;\n model.hyperlink = hyperlink;\n }\n\n const comment = options.commentsMap && options.commentsMap[model.address];\n if (comment) {\n model.comment = comment;\n }\n }\n}\n\nmodule.exports = CellXform;\n","const BaseXform = require('../../base-xform');\n\nclass CfIconExtXform extends BaseXform {\n get tag() {\n return 'x14:cfIcon';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n iconSet: model.iconSet,\n iconId: model.iconId,\n });\n }\n\n parseOpen({attributes}) {\n this.model = {\n iconSet: attributes.iconSet,\n iconId: BaseXform.toIntValue(attributes.iconId),\n };\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nmodule.exports = CfIconExtXform;\n","const {v4: uuidv4} = require('uuid');\nconst BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nconst DatabarExtXform = require('./databar-ext-xform');\nconst IconSetExtXform = require('./icon-set-ext-xform');\n\nconst extIcons = {\n '3Triangles': true,\n '3Stars': true,\n '5Boxes': true,\n};\n\nclass CfRuleExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'x14:dataBar': (this.databarXform = new DatabarExtXform()),\n 'x14:iconSet': (this.iconSetXform = new IconSetExtXform()),\n };\n }\n\n get tag() {\n return 'x14:cfRule';\n }\n\n static isExt(rule) {\n // is this rule primitive?\n if (rule.type === 'dataBar') {\n return DatabarExtXform.isExt(rule);\n }\n if (rule.type === 'iconSet') {\n if (rule.custom || extIcons[rule.iconSet]) {\n return true;\n }\n }\n return false;\n }\n\n prepare(model) {\n if (CfRuleExtXform.isExt(model)) {\n model.x14Id = `{${uuidv4()}}`.toUpperCase();\n }\n }\n\n render(xmlStream, model) {\n if (!CfRuleExtXform.isExt(model)) {\n return;\n }\n\n switch (model.type) {\n case 'dataBar':\n this.renderDataBar(xmlStream, model);\n break;\n case 'iconSet':\n this.renderIconSet(xmlStream, model);\n break;\n }\n }\n\n renderDataBar(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'dataBar',\n id: model.x14Id,\n });\n\n this.databarXform.render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n renderIconSet(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'iconSet',\n priority: model.priority,\n id: model.x14Id || `{${uuidv4()}}`,\n });\n\n this.iconSetXform.render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n type: attributes.type,\n x14Id: attributes.id,\n priority: BaseXform.toIntValue(attributes.priority),\n };\n }\n\n onParserClose(name, parser) {\n Object.assign(this.model, parser.model);\n }\n}\n\nmodule.exports = CfRuleExtXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst FExtXform = require('./f-ext-xform');\n\nclass CfvoExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'xm:f': (this.fExtXform = new FExtXform()),\n };\n }\n\n get tag() {\n return 'x14:cfvo';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: model.type,\n });\n if (model.value !== undefined) {\n this.fExtXform.render(xmlStream, model.value);\n }\n xmlStream.closeNode();\n }\n\n createNewModel(node) {\n return {\n type: node.attributes.type,\n };\n }\n\n onParserClose(name, parser) {\n switch (name) {\n case 'xm:f':\n this.model.value = parser.model ? parseFloat(parser.model) : 0;\n break;\n }\n }\n}\n\nmodule.exports = CfvoExtXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst SqRefExtXform = require('./sqref-ext-xform');\nconst CfRuleExtXform = require('./cf-rule-ext-xform');\n\nclass ConditionalFormattingExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'xm:sqref': (this.sqRef = new SqRefExtXform()),\n 'x14:cfRule': (this.cfRule = new CfRuleExtXform()),\n };\n }\n\n get tag() {\n return 'x14:conditionalFormatting';\n }\n\n prepare(model, options) {\n model.rules.forEach(rule => {\n this.cfRule.prepare(rule, options);\n });\n }\n\n render(xmlStream, model) {\n if (!model.rules.some(CfRuleExtXform.isExt)) {\n return;\n }\n\n xmlStream.openNode(this.tag, {\n 'xmlns:xm': 'http://schemas.microsoft.com/office/excel/2006/main',\n });\n\n model.rules.filter(CfRuleExtXform.isExt).forEach(rule => this.cfRule.render(xmlStream, rule));\n\n // for some odd reason, Excel needs the node to be after the rules\n this.sqRef.render(xmlStream, model.ref);\n\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {\n rules: [],\n };\n }\n\n onParserClose(name, parser) {\n switch (name) {\n case 'xm:sqref':\n this.model.ref = parser.model;\n break;\n\n case 'x14:cfRule':\n this.model.rules.push(parser.model);\n break;\n }\n }\n}\n\nmodule.exports = ConditionalFormattingExtXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst CfRuleExtXform = require('./cf-rule-ext-xform');\nconst ConditionalFormattingExtXform = require('./conditional-formatting-ext-xform');\n\nclass ConditionalFormattingsExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'x14:conditionalFormatting': (this.cfXform = new ConditionalFormattingExtXform()),\n };\n }\n\n get tag() {\n return 'x14:conditionalFormattings';\n }\n\n hasContent(model) {\n if (model.hasExtContent === undefined) {\n model.hasExtContent = model.some(cf => cf.rules.some(CfRuleExtXform.isExt));\n }\n return model.hasExtContent;\n }\n\n prepare(model, options) {\n model.forEach(cf => {\n this.cfXform.prepare(cf, options);\n });\n }\n\n render(xmlStream, model) {\n if (this.hasContent(model)) {\n xmlStream.openNode(this.tag);\n model.forEach(cf => this.cfXform.render(xmlStream, cf));\n xmlStream.closeNode();\n }\n }\n\n createNewModel() {\n return [];\n }\n\n onParserClose(name, parser) {\n // model is array of conditional formatting objects\n this.model.push(parser.model);\n }\n}\n\nmodule.exports = ConditionalFormattingsExtXform;\n","const BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nconst ColorXform = require('../../style/color-xform');\nconst CfvoExtXform = require('./cfvo-ext-xform');\n\nclass DatabarExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'x14:cfvo': (this.cfvoXform = new CfvoExtXform()),\n 'x14:borderColor': (this.borderColorXform = new ColorXform('x14:borderColor')),\n 'x14:negativeBorderColor': (this.negativeBorderColorXform = new ColorXform(\n 'x14:negativeBorderColor'\n )),\n 'x14:negativeFillColor': (this.negativeFillColorXform = new ColorXform(\n 'x14:negativeFillColor'\n )),\n 'x14:axisColor': (this.axisColorXform = new ColorXform('x14:axisColor')),\n };\n }\n\n static isExt(rule) {\n // not all databars need ext\n // TODO: refine this\n return !rule.gradient;\n }\n\n get tag() {\n return 'x14:dataBar';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n minLength: BaseXform.toIntAttribute(model.minLength, 0, true),\n maxLength: BaseXform.toIntAttribute(model.maxLength, 100, true),\n border: BaseXform.toBoolAttribute(model.border, false),\n gradient: BaseXform.toBoolAttribute(model.gradient, true),\n negativeBarColorSameAsPositive: BaseXform.toBoolAttribute(\n model.negativeBarColorSameAsPositive,\n true\n ),\n negativeBarBorderColorSameAsPositive: BaseXform.toBoolAttribute(\n model.negativeBarBorderColorSameAsPositive,\n true\n ),\n axisPosition: BaseXform.toAttribute(model.axisPosition, 'auto'),\n direction: BaseXform.toAttribute(model.direction, 'leftToRight'),\n });\n\n model.cfvo.forEach(cfvo => {\n this.cfvoXform.render(xmlStream, cfvo);\n });\n\n this.borderColorXform.render(xmlStream, model.borderColor);\n this.negativeBorderColorXform.render(xmlStream, model.negativeBorderColor);\n this.negativeFillColorXform.render(xmlStream, model.negativeFillColor);\n this.axisColorXform.render(xmlStream, model.axisColor);\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n cfvo: [],\n minLength: BaseXform.toIntValue(attributes.minLength, 0),\n maxLength: BaseXform.toIntValue(attributes.maxLength, 100),\n border: BaseXform.toBoolValue(attributes.border, false),\n gradient: BaseXform.toBoolValue(attributes.gradient, true),\n negativeBarColorSameAsPositive: BaseXform.toBoolValue(\n attributes.negativeBarColorSameAsPositive,\n true\n ),\n negativeBarBorderColorSameAsPositive: BaseXform.toBoolValue(\n attributes.negativeBarBorderColorSameAsPositive,\n true\n ),\n axisPosition: BaseXform.toStringValue(attributes.axisPosition, 'auto'),\n direction: BaseXform.toStringValue(attributes.direction, 'leftToRight'),\n };\n }\n\n onParserClose(name, parser) {\n const [, prop] = name.split(':');\n switch (prop) {\n case 'cfvo':\n this.model.cfvo.push(parser.model);\n break;\n\n default:\n this.model[prop] = parser.model;\n break;\n }\n }\n}\n\nmodule.exports = DatabarExtXform;\n","const BaseXform = require('../../base-xform');\n\nclass FExtXform extends BaseXform {\n get tag() {\n return 'xm:f';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, null, model);\n }\n\n parseOpen() {\n this.model = '';\n }\n\n parseText(text) {\n this.model += text;\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nmodule.exports = FExtXform;\n","const BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nconst CfvoExtXform = require('./cfvo-ext-xform');\nconst CfIconExtXform = require('./cf-icon-ext-xform');\n\nclass IconSetExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'x14:cfvo': (this.cfvoXform = new CfvoExtXform()),\n 'x14:cfIcon': (this.cfIconXform = new CfIconExtXform()),\n };\n }\n\n get tag() {\n return 'x14:iconSet';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n iconSet: BaseXform.toStringAttribute(model.iconSet),\n reverse: BaseXform.toBoolAttribute(model.reverse, false),\n showValue: BaseXform.toBoolAttribute(model.showValue, true),\n custom: BaseXform.toBoolAttribute(model.icons, false),\n });\n\n model.cfvo.forEach(cfvo => {\n this.cfvoXform.render(xmlStream, cfvo);\n });\n\n if (model.icons) {\n model.icons.forEach((icon, i) => {\n icon.iconId = i;\n this.cfIconXform.render(xmlStream, icon);\n });\n }\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n cfvo: [],\n iconSet: BaseXform.toStringValue(attributes.iconSet, '3TrafficLights'),\n reverse: BaseXform.toBoolValue(attributes.reverse, false),\n showValue: BaseXform.toBoolValue(attributes.showValue, true),\n };\n }\n\n onParserClose(name, parser) {\n const [, prop] = name.split(':');\n switch (prop) {\n case 'cfvo':\n this.model.cfvo.push(parser.model);\n break;\n\n case 'cfIcon':\n if (!this.model.icons) {\n this.model.icons = [];\n }\n this.model.icons.push(parser.model);\n break;\n\n default:\n this.model[prop] = parser.model;\n break;\n }\n }\n}\n\nmodule.exports = IconSetExtXform;\n","const BaseXform = require('../../base-xform');\n\nclass SqrefExtXform extends BaseXform {\n get tag() {\n return 'xm:sqref';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, null, model);\n }\n\n parseOpen() {\n this.model = '';\n }\n\n parseText(text) {\n this.model += text;\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nmodule.exports = SqrefExtXform;\n","const BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nconst Range = require('../../../../doc/range');\n\nconst DatabarXform = require('./databar-xform');\nconst ExtLstRefXform = require('./ext-lst-ref-xform');\nconst FormulaXform = require('./formula-xform');\nconst ColorScaleXform = require('./color-scale-xform');\nconst IconSetXform = require('./icon-set-xform');\n\nconst extIcons = {\n '3Triangles': true,\n '3Stars': true,\n '5Boxes': true,\n};\n\nconst getTextFormula = model => {\n if (model.formulae && model.formulae[0]) {\n return model.formulae[0];\n }\n\n const range = new Range(model.ref);\n const {tl} = range;\n switch (model.operator) {\n case 'containsText':\n return `NOT(ISERROR(SEARCH(\"${model.text}\",${tl})))`;\n case 'containsBlanks':\n return `LEN(TRIM(${tl}))=0`;\n case 'notContainsBlanks':\n return `LEN(TRIM(${tl}))>0`;\n case 'containsErrors':\n return `ISERROR(${tl})`;\n case 'notContainsErrors':\n return `NOT(ISERROR(${tl}))`;\n default:\n return undefined;\n }\n};\n\nconst getTimePeriodFormula = model => {\n if (model.formulae && model.formulae[0]) {\n return model.formulae[0];\n }\n\n const range = new Range(model.ref);\n const {tl} = range;\n switch (model.timePeriod) {\n case 'thisWeek':\n return `AND(TODAY()-ROUNDDOWN(${tl},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${tl},0)-TODAY()<=7-WEEKDAY(TODAY()))`;\n case 'lastWeek':\n return `AND(TODAY()-ROUNDDOWN(${tl},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${tl},0)<(WEEKDAY(TODAY())+7))`;\n case 'nextWeek':\n return `AND(ROUNDDOWN(${tl},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${tl},0)-TODAY()<(15-WEEKDAY(TODAY())))`;\n case 'yesterday':\n return `FLOOR(${tl},1)=TODAY()-1`;\n case 'today':\n return `FLOOR(${tl},1)=TODAY()`;\n case 'tomorrow':\n return `FLOOR(${tl},1)=TODAY()+1`;\n case 'last7Days':\n return `AND(TODAY()-FLOOR(${tl},1)<=6,FLOOR(${tl},1)<=TODAY())`;\n case 'lastMonth':\n return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0-1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0-1)))`;\n case 'thisMonth':\n return `AND(MONTH(${tl})=MONTH(TODAY()),YEAR(${tl})=YEAR(TODAY()))`;\n case 'nextMonth':\n return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0+1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0+1)))`;\n default:\n return undefined;\n }\n};\n\nconst opType = attributes => {\n const {type, operator} = attributes;\n switch (type) {\n case 'containsText':\n case 'containsBlanks':\n case 'notContainsBlanks':\n case 'containsErrors':\n case 'notContainsErrors':\n return {\n type: 'containsText',\n operator: type,\n };\n\n default:\n return {type, operator};\n }\n};\n\nclass CfRuleXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n dataBar: (this.databarXform = new DatabarXform()),\n extLst: (this.extLstRefXform = new ExtLstRefXform()),\n formula: (this.formulaXform = new FormulaXform()),\n colorScale: (this.colorScaleXform = new ColorScaleXform()),\n iconSet: (this.iconSetXform = new IconSetXform()),\n };\n }\n\n get tag() {\n return 'cfRule';\n }\n\n static isPrimitive(rule) {\n // is this rule primitive?\n if (rule.type === 'iconSet') {\n if (rule.custom || extIcons[rule.iconSet]) {\n return false;\n }\n }\n return true;\n }\n\n render(xmlStream, model) {\n switch (model.type) {\n case 'expression':\n this.renderExpression(xmlStream, model);\n break;\n case 'cellIs':\n this.renderCellIs(xmlStream, model);\n break;\n case 'top10':\n this.renderTop10(xmlStream, model);\n break;\n case 'aboveAverage':\n this.renderAboveAverage(xmlStream, model);\n break;\n case 'dataBar':\n this.renderDataBar(xmlStream, model);\n break;\n case 'colorScale':\n this.renderColorScale(xmlStream, model);\n break;\n case 'iconSet':\n this.renderIconSet(xmlStream, model);\n break;\n case 'containsText':\n this.renderText(xmlStream, model);\n break;\n case 'timePeriod':\n this.renderTimePeriod(xmlStream, model);\n break;\n }\n }\n\n renderExpression(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'expression',\n dxfId: model.dxfId,\n priority: model.priority,\n });\n\n this.formulaXform.render(xmlStream, model.formulae[0]);\n\n xmlStream.closeNode();\n }\n\n renderCellIs(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'cellIs',\n dxfId: model.dxfId,\n priority: model.priority,\n operator: model.operator,\n });\n\n model.formulae.forEach(formula => {\n this.formulaXform.render(xmlStream, formula);\n });\n\n xmlStream.closeNode();\n }\n\n renderTop10(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n type: 'top10',\n dxfId: model.dxfId,\n priority: model.priority,\n percent: BaseXform.toBoolAttribute(model.percent, false),\n bottom: BaseXform.toBoolAttribute(model.bottom, false),\n rank: BaseXform.toIntValue(model.rank, 10, true),\n });\n }\n\n renderAboveAverage(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n type: 'aboveAverage',\n dxfId: model.dxfId,\n priority: model.priority,\n aboveAverage: BaseXform.toBoolAttribute(model.aboveAverage, true),\n });\n }\n\n renderDataBar(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'dataBar',\n priority: model.priority,\n });\n\n this.databarXform.render(xmlStream, model);\n this.extLstRefXform.render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n renderColorScale(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'colorScale',\n priority: model.priority,\n });\n\n this.colorScaleXform.render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n renderIconSet(xmlStream, model) {\n // iconset is all primitive or all extLst\n if (!CfRuleXform.isPrimitive(model)) {\n return;\n }\n\n xmlStream.openNode(this.tag, {\n type: 'iconSet',\n priority: model.priority,\n });\n\n this.iconSetXform.render(xmlStream, model);\n\n xmlStream.closeNode();\n }\n\n renderText(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: model.operator,\n dxfId: model.dxfId,\n priority: model.priority,\n operator: BaseXform.toStringAttribute(model.operator, 'containsText'),\n });\n\n const formula = getTextFormula(model);\n if (formula) {\n this.formulaXform.render(xmlStream, formula);\n }\n\n xmlStream.closeNode();\n }\n\n renderTimePeriod(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n type: 'timePeriod',\n dxfId: model.dxfId,\n priority: model.priority,\n timePeriod: model.timePeriod,\n });\n\n const formula = getTimePeriodFormula(model);\n if (formula) {\n this.formulaXform.render(xmlStream, formula);\n }\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n ...opType(attributes),\n dxfId: BaseXform.toIntValue(attributes.dxfId),\n priority: BaseXform.toIntValue(attributes.priority),\n timePeriod: attributes.timePeriod,\n percent: BaseXform.toBoolValue(attributes.percent),\n bottom: BaseXform.toBoolValue(attributes.bottom),\n rank: BaseXform.toIntValue(attributes.rank),\n aboveAverage: BaseXform.toBoolValue(attributes.aboveAverage),\n };\n }\n\n onParserClose(name, parser) {\n switch (name) {\n case 'dataBar':\n case 'extLst':\n case 'colorScale':\n case 'iconSet':\n // merge parser model with ours\n Object.assign(this.model, parser.model);\n break;\n\n case 'formula':\n // except - formula is a string and appends to formulae\n this.model.formulae = this.model.formulae || [];\n this.model.formulae.push(parser.model);\n break;\n }\n }\n}\n\nmodule.exports = CfRuleXform;\n","const BaseXform = require('../../base-xform');\n\nclass CfvoXform extends BaseXform {\n get tag() {\n return 'cfvo';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n type: model.type,\n val: model.value,\n });\n }\n\n parseOpen(node) {\n this.model = {\n type: node.attributes.type,\n value: BaseXform.toFloatValue(node.attributes.val),\n };\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nmodule.exports = CfvoXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst ColorXform = require('../../style/color-xform');\nconst CfvoXform = require('./cfvo-xform');\n\nclass ColorScaleXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n cfvo: (this.cfvoXform = new CfvoXform()),\n color: (this.colorXform = new ColorXform()),\n };\n }\n\n get tag() {\n return 'colorScale';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n model.cfvo.forEach(cfvo => {\n this.cfvoXform.render(xmlStream, cfvo);\n });\n model.color.forEach(color => {\n this.colorXform.render(xmlStream, color);\n });\n\n xmlStream.closeNode();\n }\n\n createNewModel(node) {\n return {\n cfvo: [],\n color: [],\n };\n }\n\n onParserClose(name, parser) {\n this.model[name].push(parser.model);\n }\n}\n\nmodule.exports = ColorScaleXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst CfRuleXform = require('./cf-rule-xform');\n\nclass ConditionalFormattingXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n cfRule: new CfRuleXform(),\n };\n }\n\n get tag() {\n return 'conditionalFormatting';\n }\n\n render(xmlStream, model) {\n // if there are no primitive rules, exit now\n if (!model.rules.some(CfRuleXform.isPrimitive)) {\n return;\n }\n\n xmlStream.openNode(this.tag, {sqref: model.ref});\n\n model.rules.forEach(rule => {\n if (CfRuleXform.isPrimitive(rule)) {\n rule.ref = model.ref;\n this.map.cfRule.render(xmlStream, rule);\n }\n });\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n ref: attributes.sqref,\n rules: [],\n };\n }\n\n onParserClose(name, parser) {\n this.model.rules.push(parser.model);\n }\n}\n\nmodule.exports = ConditionalFormattingXform;\n","const BaseXform = require('../../base-xform');\n\nconst ConditionalFormattingXform = require('./conditional-formatting-xform');\n\nclass ConditionalFormattingsXform extends BaseXform {\n constructor() {\n super();\n\n this.cfXform = new ConditionalFormattingXform();\n }\n\n get tag() {\n return 'conditionalFormatting';\n }\n\n reset() {\n this.model = [];\n }\n\n prepare(model, options) {\n // ensure each rule has a priority value\n let nextPriority = model.reduce(\n (p, cf) => Math.max(p, ...cf.rules.map(rule => rule.priority || 0)),\n 1\n );\n model.forEach(cf => {\n cf.rules.forEach(rule => {\n if (!rule.priority) {\n rule.priority = nextPriority++;\n }\n\n if (rule.style) {\n rule.dxfId = options.styles.addDxfStyle(rule.style);\n }\n });\n });\n }\n\n render(xmlStream, model) {\n model.forEach(cf => {\n this.cfXform.render(xmlStream, cf);\n });\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case 'conditionalFormatting':\n this.parser = this.cfXform;\n this.parser.parseOpen(node);\n return true;\n\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.push(this.parser.model);\n this.parser = undefined;\n return false;\n }\n return true;\n }\n return false;\n }\n\n reconcile(model, options) {\n model.forEach(cf => {\n cf.rules.forEach(rule => {\n if (rule.dxfId !== undefined) {\n rule.style = options.styles.getDxfStyle(rule.dxfId);\n delete rule.dxfId;\n }\n });\n });\n }\n}\n\nmodule.exports = ConditionalFormattingsXform;\n","const CompositeXform = require('../../composite-xform');\n\nconst ColorXform = require('../../style/color-xform');\nconst CfvoXform = require('./cfvo-xform');\n\nclass DatabarXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n cfvo: (this.cfvoXform = new CfvoXform()),\n color: (this.colorXform = new ColorXform()),\n };\n }\n\n get tag() {\n return 'dataBar';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n model.cfvo.forEach(cfvo => {\n this.cfvoXform.render(xmlStream, cfvo);\n });\n this.colorXform.render(xmlStream, model.color);\n\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {\n cfvo: [],\n };\n }\n\n onParserClose(name, parser) {\n switch (name) {\n case 'cfvo':\n this.model.cfvo.push(parser.model);\n break;\n case 'color':\n this.model.color = parser.model;\n break;\n }\n }\n}\n\nmodule.exports = DatabarXform;\n","/* eslint-disable max-classes-per-file */\nconst BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nclass X14IdXform extends BaseXform {\n get tag() {\n return 'x14:id';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, null, model);\n }\n\n parseOpen() {\n this.model = '';\n }\n\n parseText(text) {\n this.model += text;\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nclass ExtXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n 'x14:id': (this.idXform = new X14IdXform()),\n };\n }\n\n get tag() {\n return 'ext';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n uri: '{B025F937-C7B1-47D3-B67F-A62EFF666E3E}',\n 'xmlns:x14': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main',\n });\n\n this.idXform.render(xmlStream, model.x14Id);\n\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {};\n }\n\n onParserClose(name, parser) {\n this.model.x14Id = parser.model;\n }\n}\n\nclass ExtLstRefXform extends CompositeXform {\n constructor() {\n super();\n this.map = {\n ext: new ExtXform(),\n };\n }\n\n get tag() {\n return 'extLst';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n this.map.ext.render(xmlStream, model);\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {};\n }\n\n onParserClose(name, parser) {\n Object.assign(this.model, parser.model);\n }\n}\n\nmodule.exports = ExtLstRefXform;\n","const BaseXform = require('../../base-xform');\n\nclass FormulaXform extends BaseXform {\n get tag() {\n return 'formula';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, null, model);\n }\n\n parseOpen() {\n this.model = '';\n }\n\n parseText(text) {\n this.model += text;\n }\n\n parseClose(name) {\n return name !== this.tag;\n }\n}\n\nmodule.exports = FormulaXform;\n","const BaseXform = require('../../base-xform');\nconst CompositeXform = require('../../composite-xform');\n\nconst CfvoXform = require('./cfvo-xform');\n\nclass IconSetXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n cfvo: (this.cfvoXform = new CfvoXform()),\n };\n }\n\n get tag() {\n return 'iconSet';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n iconSet: BaseXform.toStringAttribute(model.iconSet, '3TrafficLights'),\n reverse: BaseXform.toBoolAttribute(model.reverse, false),\n showValue: BaseXform.toBoolAttribute(model.showValue, true),\n });\n\n model.cfvo.forEach(cfvo => {\n this.cfvoXform.render(xmlStream, cfvo);\n });\n\n xmlStream.closeNode();\n }\n\n createNewModel({attributes}) {\n return {\n iconSet: BaseXform.toStringValue(attributes.iconSet, '3TrafficLights'),\n reverse: BaseXform.toBoolValue(attributes.reverse),\n showValue: BaseXform.toBoolValue(attributes.showValue),\n cfvo: [],\n };\n }\n\n onParserClose(name, parser) {\n this.model[name].push(parser.model);\n }\n}\n\nmodule.exports = IconSetXform;\n","const utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\n\nclass ColXform extends BaseXform {\n get tag() {\n return 'col';\n }\n\n prepare(model, options) {\n const styleId = options.styles.addStyleModel(model.style || {});\n if (styleId) {\n model.styleId = styleId;\n }\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('col');\n xmlStream.addAttribute('min', model.min);\n xmlStream.addAttribute('max', model.max);\n if (model.width) {\n xmlStream.addAttribute('width', model.width);\n }\n if (model.styleId) {\n xmlStream.addAttribute('style', model.styleId);\n }\n if (model.hidden) {\n xmlStream.addAttribute('hidden', '1');\n }\n if (model.bestFit) {\n xmlStream.addAttribute('bestFit', '1');\n }\n if (model.outlineLevel) {\n xmlStream.addAttribute('outlineLevel', model.outlineLevel);\n }\n if (model.collapsed) {\n xmlStream.addAttribute('collapsed', '1');\n }\n xmlStream.addAttribute('customWidth', '1');\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (node.name === 'col') {\n const model = (this.model = {\n min: parseInt(node.attributes.min || '0', 10),\n max: parseInt(node.attributes.max || '0', 10),\n width:\n node.attributes.width === undefined\n ? undefined\n : parseFloat(node.attributes.width || '0'),\n });\n if (node.attributes.style) {\n model.styleId = parseInt(node.attributes.style, 10);\n }\n if (utils.parseBoolean(node.attributes.hidden)) {\n model.hidden = true;\n }\n if (utils.parseBoolean(node.attributes.bestFit)) {\n model.bestFit = true;\n }\n if (node.attributes.outlineLevel) {\n model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);\n }\n if (utils.parseBoolean(node.attributes.collapsed)) {\n model.collapsed = true;\n }\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n\n reconcile(model, options) {\n // reconcile column styles\n if (model.styleId) {\n model.style = options.styles.getStyleModel(model.styleId);\n }\n }\n}\n\nmodule.exports = ColXform;\n","const _ = require('../../../utils/under-dash');\nconst utils = require('../../../utils/utils');\nconst colCache = require('../../../utils/col-cache');\nconst BaseXform = require('../base-xform');\nconst Range = require('../../../doc/range');\n\nfunction assign(definedName, attributes, name, defaultValue) {\n const value = attributes[name];\n if (value !== undefined) {\n definedName[name] = value;\n } else if (defaultValue !== undefined) {\n definedName[name] = defaultValue;\n }\n}\n\nfunction assignBool(definedName, attributes, name, defaultValue) {\n const value = attributes[name];\n if (value !== undefined) {\n definedName[name] = utils.parseBoolean(value);\n } else if (defaultValue !== undefined) {\n definedName[name] = defaultValue;\n }\n}\n\nfunction optimiseDataValidations(model) {\n // Squeeze alike data validations together into rectangular ranges\n // to reduce file size and speed up Excel load time\n const dvList = _.map(model, (dataValidation, address) => ({\n address,\n dataValidation,\n marked: false,\n })).sort((a, b) => _.strcmp(a.address, b.address));\n const dvMap = _.keyBy(dvList, 'address');\n const matchCol = (addr, height, col) => {\n for (let i = 0; i < height; i++) {\n const otherAddress = colCache.encodeAddress(addr.row + i, col);\n if (!model[otherAddress] || !_.isEqual(model[addr.address], model[otherAddress])) {\n return false;\n }\n }\n return true;\n };\n return dvList\n .map(dv => {\n if (!dv.marked) {\n const addr = colCache.decodeEx(dv.address);\n if (addr.dimensions) {\n dvMap[addr.dimensions].marked = true;\n return {\n ...dv.dataValidation,\n sqref: dv.address,\n };\n }\n\n // iterate downwards - finding matching cells\n let height = 1;\n let otherAddress = colCache.encodeAddress(addr.row + height, addr.col);\n while (model[otherAddress] && _.isEqual(dv.dataValidation, model[otherAddress])) {\n height++;\n otherAddress = colCache.encodeAddress(addr.row + height, addr.col);\n }\n\n // iterate rightwards...\n\n let width = 1;\n while (matchCol(addr, height, addr.col + width)) {\n width++;\n }\n\n // mark all included addresses\n for (let i = 0; i < height; i++) {\n for (let j = 0; j < width; j++) {\n otherAddress = colCache.encodeAddress(addr.row + i, addr.col + j);\n dvMap[otherAddress].marked = true;\n }\n }\n\n if (height > 1 || width > 1) {\n const bottom = addr.row + (height - 1);\n const right = addr.col + (width - 1);\n return {\n ...dv.dataValidation,\n sqref: `${dv.address}:${colCache.encodeAddress(bottom, right)}`,\n };\n }\n return {\n ...dv.dataValidation,\n sqref: dv.address,\n };\n }\n return null;\n })\n .filter(Boolean);\n}\n\nclass DataValidationsXform extends BaseXform {\n get tag() {\n return 'dataValidations';\n }\n\n render(xmlStream, model) {\n const optimizedModel = optimiseDataValidations(model);\n if (optimizedModel.length) {\n xmlStream.openNode('dataValidations', {count: optimizedModel.length});\n\n optimizedModel.forEach(value => {\n xmlStream.openNode('dataValidation');\n\n if (value.type !== 'any') {\n xmlStream.addAttribute('type', value.type);\n\n if (value.operator && value.type !== 'list' && value.operator !== 'between') {\n xmlStream.addAttribute('operator', value.operator);\n }\n if (value.allowBlank) {\n xmlStream.addAttribute('allowBlank', '1');\n }\n }\n if (value.showInputMessage) {\n xmlStream.addAttribute('showInputMessage', '1');\n }\n if (value.promptTitle) {\n xmlStream.addAttribute('promptTitle', value.promptTitle);\n }\n if (value.prompt) {\n xmlStream.addAttribute('prompt', value.prompt);\n }\n if (value.showErrorMessage) {\n xmlStream.addAttribute('showErrorMessage', '1');\n }\n if (value.errorStyle) {\n xmlStream.addAttribute('errorStyle', value.errorStyle);\n }\n if (value.errorTitle) {\n xmlStream.addAttribute('errorTitle', value.errorTitle);\n }\n if (value.error) {\n xmlStream.addAttribute('error', value.error);\n }\n xmlStream.addAttribute('sqref', value.sqref);\n (value.formulae || []).forEach((formula, index) => {\n xmlStream.openNode(`formula${index + 1}`);\n if (value.type === 'date') {\n xmlStream.writeText(utils.dateToExcel(new Date(formula)));\n } else {\n xmlStream.writeText(formula);\n }\n xmlStream.closeNode();\n });\n xmlStream.closeNode();\n });\n xmlStream.closeNode();\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'dataValidations':\n this.model = {};\n return true;\n\n case 'dataValidation': {\n this._address = node.attributes.sqref;\n const dataValidation = {type: node.attributes.type || 'any', formulae: []};\n\n if (node.attributes.type) {\n assignBool(dataValidation, node.attributes, 'allowBlank');\n }\n assignBool(dataValidation, node.attributes, 'showInputMessage');\n assignBool(dataValidation, node.attributes, 'showErrorMessage');\n\n switch (dataValidation.type) {\n case 'any':\n case 'list':\n case 'custom':\n break;\n default:\n assign(dataValidation, node.attributes, 'operator', 'between');\n break;\n }\n assign(dataValidation, node.attributes, 'promptTitle');\n assign(dataValidation, node.attributes, 'prompt');\n assign(dataValidation, node.attributes, 'errorStyle');\n assign(dataValidation, node.attributes, 'errorTitle');\n assign(dataValidation, node.attributes, 'error');\n\n this._dataValidation = dataValidation;\n return true;\n }\n\n case 'formula1':\n case 'formula2':\n this._formula = [];\n return true;\n\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this._formula) {\n this._formula.push(text);\n }\n }\n\n parseClose(name) {\n switch (name) {\n case 'dataValidations':\n return false;\n case 'dataValidation': {\n if (!this._dataValidation.formulae || !this._dataValidation.formulae.length) {\n delete this._dataValidation.formulae;\n delete this._dataValidation.operator;\n }\n // The four known cases: 1. E4:L9 N4:U9 2.E4 L9 3. N4:U9 4. E4\n const list = this._address.split(/\\s+/g) || [];\n list.forEach(addr => {\n if (addr.includes(':')) {\n const range = new Range(addr);\n range.forEachAddress(address => {\n this.model[address] = this._dataValidation;\n });\n } else {\n this.model[addr] = this._dataValidation;\n }\n });\n return true;\n }\n case 'formula1':\n case 'formula2': {\n let formula = this._formula.join('');\n switch (this._dataValidation.type) {\n case 'whole':\n case 'textLength':\n formula = parseInt(formula, 10);\n break;\n case 'decimal':\n formula = parseFloat(formula);\n break;\n case 'date':\n formula = utils.excelToDate(parseFloat(formula));\n break;\n default:\n break;\n }\n this._dataValidation.formulae.push(formula);\n this._formula = undefined;\n return true;\n }\n default:\n return true;\n }\n }\n}\n\nmodule.exports = DataValidationsXform;\n","const BaseXform = require('../base-xform');\n\nclass DimensionXform extends BaseXform {\n get tag() {\n return 'dimension';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.leafNode('dimension', {ref: model});\n }\n }\n\n parseOpen(node) {\n if (node.name === 'dimension') {\n this.model = node.attributes.ref;\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = DimensionXform;\n","const BaseXform = require('../base-xform');\n\nclass DrawingXform extends BaseXform {\n get tag() {\n return 'drawing';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.leafNode(this.tag, {'r:id': model.rId});\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n rId: node.attributes['r:id'],\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = DrawingXform;\n","/* eslint-disable max-classes-per-file */\nconst CompositeXform = require('../composite-xform');\n\nconst ConditionalFormattingsExt = require('./cf-ext/conditional-formattings-ext-xform');\n\nclass ExtXform extends CompositeXform {\n constructor() {\n super();\n this.map = {\n 'x14:conditionalFormattings': (this.conditionalFormattings = new ConditionalFormattingsExt()),\n };\n }\n\n get tag() {\n return 'ext';\n }\n\n hasContent(model) {\n return this.conditionalFormattings.hasContent(model.conditionalFormattings);\n }\n\n prepare(model, options) {\n this.conditionalFormattings.prepare(model.conditionalFormattings, options);\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('ext', {\n uri: '{78C0D931-6437-407d-A8EE-F0AAD7539E65}',\n 'xmlns:x14': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main',\n });\n\n this.conditionalFormattings.render(xmlStream, model.conditionalFormattings);\n\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {};\n }\n\n onParserClose(name, parser) {\n this.model[name] = parser.model;\n }\n}\n\nclass ExtLstXform extends CompositeXform {\n constructor() {\n super();\n\n this.map = {\n ext: (this.ext = new ExtXform()),\n };\n }\n\n get tag() {\n return 'extLst';\n }\n\n prepare(model, options) {\n this.ext.prepare(model, options);\n }\n\n hasContent(model) {\n return this.ext.hasContent(model);\n }\n\n render(xmlStream, model) {\n if (!this.hasContent(model)) {\n return;\n }\n\n xmlStream.openNode('extLst');\n this.ext.render(xmlStream, model);\n xmlStream.closeNode();\n }\n\n createNewModel() {\n return {};\n }\n\n onParserClose(name, parser) {\n Object.assign(this.model, parser.model);\n }\n}\n\nmodule.exports = ExtLstXform;\n","const BaseXform = require('../base-xform');\n\nclass HeaderFooterXform extends BaseXform {\n get tag() {\n return 'headerFooter';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.addRollback();\n\n let createTag = false;\n\n xmlStream.openNode('headerFooter');\n if (model.differentFirst) {\n xmlStream.addAttribute('differentFirst', '1');\n createTag = true;\n }\n if (model.differentOddEven) {\n xmlStream.addAttribute('differentOddEven', '1');\n createTag = true;\n }\n if (model.oddHeader && typeof model.oddHeader === 'string') {\n xmlStream.leafNode('oddHeader', null, model.oddHeader);\n createTag = true;\n }\n if (model.oddFooter && typeof model.oddFooter === 'string') {\n xmlStream.leafNode('oddFooter', null, model.oddFooter);\n createTag = true;\n }\n if (model.evenHeader && typeof model.evenHeader === 'string') {\n xmlStream.leafNode('evenHeader', null, model.evenHeader);\n createTag = true;\n }\n if (model.evenFooter && typeof model.evenFooter === 'string') {\n xmlStream.leafNode('evenFooter', null, model.evenFooter);\n createTag = true;\n }\n if (model.firstHeader && typeof model.firstHeader === 'string') {\n xmlStream.leafNode('firstHeader', null, model.firstHeader);\n createTag = true;\n }\n if (model.firstFooter && typeof model.firstFooter === 'string') {\n xmlStream.leafNode('firstFooter', null, model.firstFooter);\n createTag = true;\n }\n\n if (createTag) {\n xmlStream.closeNode();\n xmlStream.commit();\n } else {\n xmlStream.rollback();\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'headerFooter':\n this.model = {};\n if (node.attributes.differentFirst) {\n this.model.differentFirst = parseInt(node.attributes.differentFirst, 0) === 1;\n }\n if (node.attributes.differentOddEven) {\n this.model.differentOddEven = parseInt(node.attributes.differentOddEven, 0) === 1;\n }\n return true;\n\n case 'oddHeader':\n this.currentNode = 'oddHeader';\n return true;\n\n case 'oddFooter':\n this.currentNode = 'oddFooter';\n return true;\n\n case 'evenHeader':\n this.currentNode = 'evenHeader';\n return true;\n\n case 'evenFooter':\n this.currentNode = 'evenFooter';\n return true;\n\n case 'firstHeader':\n this.currentNode = 'firstHeader';\n return true;\n\n case 'firstFooter':\n this.currentNode = 'firstFooter';\n return true;\n\n default:\n return false;\n }\n }\n\n parseText(text) {\n switch (this.currentNode) {\n case 'oddHeader':\n this.model.oddHeader = text;\n break;\n\n case 'oddFooter':\n this.model.oddFooter = text;\n break;\n\n case 'evenHeader':\n this.model.evenHeader = text;\n break;\n\n case 'evenFooter':\n this.model.evenFooter = text;\n break;\n\n case 'firstHeader':\n this.model.firstHeader = text;\n break;\n\n case 'firstFooter':\n this.model.firstFooter = text;\n break;\n\n default:\n break;\n }\n }\n\n parseClose() {\n switch (this.currentNode) {\n case 'oddHeader':\n case 'oddFooter':\n case 'evenHeader':\n case 'evenFooter':\n case 'firstHeader':\n case 'firstFooter':\n this.currentNode = undefined;\n return true;\n\n default:\n return false;\n }\n }\n}\n\nmodule.exports = HeaderFooterXform;\n","const BaseXform = require('../base-xform');\n\nclass HyperlinkXform extends BaseXform {\n get tag() {\n return 'hyperlink';\n }\n\n render(xmlStream, model) {\n if (this.isInternalLink(model)) {\n xmlStream.leafNode('hyperlink', {\n ref: model.address,\n 'r:id': model.rId,\n tooltip: model.tooltip,\n location: model.target,\n });\n } else {\n xmlStream.leafNode('hyperlink', {\n ref: model.address,\n 'r:id': model.rId,\n tooltip: model.tooltip,\n });\n }\n }\n\n parseOpen(node) {\n if (node.name === 'hyperlink') {\n this.model = {\n address: node.attributes.ref,\n rId: node.attributes['r:id'],\n tooltip: node.attributes.tooltip,\n };\n\n // This is an internal link\n if (node.attributes.location) {\n this.model.target = node.attributes.location;\n }\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n\n isInternalLink(model) {\n // @example: Sheet2!D3, return true\n return model.target && /^[^!]+![a-zA-Z]+[\\d]+$/.test(model.target);\n }\n}\n\nmodule.exports = HyperlinkXform;\n","const BaseXform = require('../base-xform');\n\nclass MergeCellXform extends BaseXform {\n get tag() {\n return 'mergeCell';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode('mergeCell', {ref: model});\n }\n\n parseOpen(node) {\n if (node.name === 'mergeCell') {\n this.model = node.attributes.ref;\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = MergeCellXform;\n","const _ = require('../../../utils/under-dash');\n\nconst Range = require('../../../doc/range');\nconst colCache = require('../../../utils/col-cache');\nconst Enums = require('../../../doc/enums');\n\nclass Merges {\n constructor() {\n // optional mergeCells is array of ranges (like the xml)\n this.merges = {};\n }\n\n add(merge) {\n // merge is {address, master}\n if (this.merges[merge.master]) {\n this.merges[merge.master].expandToAddress(merge.address);\n } else {\n const range = `${merge.master}:${merge.address}`;\n this.merges[merge.master] = new Range(range);\n }\n }\n\n get mergeCells() {\n return _.map(this.merges, merge => merge.range);\n }\n\n reconcile(mergeCells, rows) {\n // reconcile merge list with merge cells\n _.each(mergeCells, merge => {\n const dimensions = colCache.decode(merge);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n const row = rows[i - 1];\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n const cell = row.cells[j - 1];\n if (!cell) {\n // nulls are not included in document - so if master cell has no value - add a null one here\n row.cells[j] = {\n type: Enums.ValueType.Null,\n address: colCache.encodeAddress(i, j),\n };\n } else if (cell.type === Enums.ValueType.Merge) {\n cell.master = dimensions.tl;\n }\n }\n }\n });\n }\n\n getMasterAddress(address) {\n // if address has been merged, return its master's address. Assumes reconcile has been called\n const range = this.hash[address];\n return range && range.tl;\n }\n}\n\nmodule.exports = Merges;\n","const BaseXform = require('../base-xform');\n\nconst isDefined = attr => typeof attr !== 'undefined';\n\nclass OutlinePropertiesXform extends BaseXform {\n get tag() {\n return 'outlinePr';\n }\n\n render(xmlStream, model) {\n if (model && (isDefined(model.summaryBelow) || isDefined(model.summaryRight))) {\n xmlStream.leafNode(this.tag, {\n summaryBelow: isDefined(model.summaryBelow) ? Number(model.summaryBelow) : undefined,\n summaryRight: isDefined(model.summaryRight) ? Number(model.summaryRight) : undefined,\n });\n return true;\n }\n return false;\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = {\n summaryBelow: isDefined(node.attributes.summaryBelow)\n ? Boolean(Number(node.attributes.summaryBelow))\n : undefined,\n summaryRight: isDefined(node.attributes.summaryRight)\n ? Boolean(Number(node.attributes.summaryRight))\n : undefined,\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = OutlinePropertiesXform;\n","const BaseXform = require('../base-xform');\n\nclass PageBreaksXform extends BaseXform {\n get tag() {\n return 'brk';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode('brk', model);\n }\n\n parseOpen(node) {\n if (node.name === 'brk') {\n this.model = node.attributes.ref;\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PageBreaksXform;\n","const _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\nclass PageMarginsXform extends BaseXform {\n get tag() {\n return 'pageMargins';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n left: model.left,\n right: model.right,\n top: model.top,\n bottom: model.bottom,\n header: model.header,\n footer: model.footer,\n };\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode(this.tag, attributes);\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n left: parseFloat(node.attributes.left || 0.7),\n right: parseFloat(node.attributes.right || 0.7),\n top: parseFloat(node.attributes.top || 0.75),\n bottom: parseFloat(node.attributes.bottom || 0.75),\n header: parseFloat(node.attributes.header || 0.3),\n footer: parseFloat(node.attributes.footer || 0.3),\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PageMarginsXform;\n","const BaseXform = require('../base-xform');\n\nclass PageSetupPropertiesXform extends BaseXform {\n get tag() {\n return 'pageSetUpPr';\n }\n\n render(xmlStream, model) {\n if (model && model.fitToPage) {\n xmlStream.leafNode(this.tag, {\n fitToPage: model.fitToPage ? '1' : undefined,\n });\n return true;\n }\n return false;\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = {\n fitToPage: node.attributes.fitToPage === '1',\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PageSetupPropertiesXform;\n","const _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\nfunction booleanToXml(model) {\n return model ? '1' : undefined;\n}\nfunction pageOrderToXml(model) {\n switch (model) {\n case 'overThenDown':\n return model;\n default:\n return undefined;\n }\n}\nfunction cellCommentsToXml(model) {\n switch (model) {\n case 'atEnd':\n case 'asDisplyed':\n return model;\n default:\n return undefined;\n }\n}\nfunction errorsToXml(model) {\n switch (model) {\n case 'dash':\n case 'blank':\n case 'NA':\n return model;\n default:\n return undefined;\n }\n}\nfunction pageSizeToModel(value) {\n return value !== undefined ? parseInt(value, 10) : undefined;\n}\n\nclass PageSetupXform extends BaseXform {\n get tag() {\n return 'pageSetup';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n paperSize: model.paperSize,\n orientation: model.orientation,\n horizontalDpi: model.horizontalDpi,\n verticalDpi: model.verticalDpi,\n pageOrder: pageOrderToXml(model.pageOrder),\n blackAndWhite: booleanToXml(model.blackAndWhite),\n draft: booleanToXml(model.draft),\n cellComments: cellCommentsToXml(model.cellComments),\n errors: errorsToXml(model.errors),\n scale: model.scale,\n fitToWidth: model.fitToWidth,\n fitToHeight: model.fitToHeight,\n firstPageNumber: model.firstPageNumber,\n useFirstPageNumber: booleanToXml(model.firstPageNumber),\n usePrinterDefaults: booleanToXml(model.usePrinterDefaults),\n copies: model.copies,\n };\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode(this.tag, attributes);\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n paperSize: pageSizeToModel(node.attributes.paperSize),\n orientation: node.attributes.orientation || 'portrait',\n horizontalDpi: parseInt(node.attributes.horizontalDpi || '4294967295', 10),\n verticalDpi: parseInt(node.attributes.verticalDpi || '4294967295', 10),\n pageOrder: node.attributes.pageOrder || 'downThenOver',\n blackAndWhite: node.attributes.blackAndWhite === '1',\n draft: node.attributes.draft === '1',\n cellComments: node.attributes.cellComments || 'None',\n errors: node.attributes.errors || 'displayed',\n scale: parseInt(node.attributes.scale || '100', 10),\n fitToWidth: parseInt(node.attributes.fitToWidth || '1', 10),\n fitToHeight: parseInt(node.attributes.fitToHeight || '1', 10),\n firstPageNumber: parseInt(node.attributes.firstPageNumber || '1', 10),\n useFirstPageNumber: node.attributes.useFirstPageNumber === '1',\n usePrinterDefaults: node.attributes.usePrinterDefaults === '1',\n copies: parseInt(node.attributes.copies || '1', 10),\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PageSetupXform;\n","const BaseXform = require('../base-xform');\n\nclass PictureXform extends BaseXform {\n get tag() {\n return 'picture';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.leafNode(this.tag, {'r:id': model.rId});\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n rId: node.attributes['r:id'],\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PictureXform;\n","const _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\nfunction booleanToXml(model) {\n return model ? '1' : undefined;\n}\n\nclass PrintOptionsXform extends BaseXform {\n get tag() {\n return 'printOptions';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n headings: booleanToXml(model.showRowColHeaders),\n gridLines: booleanToXml(model.showGridLines),\n horizontalCentered: booleanToXml(model.horizontalCentered),\n verticalCentered: booleanToXml(model.verticalCentered),\n };\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode(this.tag, attributes);\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n showRowColHeaders: node.attributes.headings === '1',\n showGridLines: node.attributes.gridLines === '1',\n horizontalCentered: node.attributes.horizontalCentered === '1',\n verticalCentered: node.attributes.verticalCentered === '1',\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = PrintOptionsXform;\n","'use strict';\n\nconst PageBreaksXform = require('./page-breaks-xform');\n\nconst ListXform = require('../list-xform');\n\nclass RowBreaksXform extends ListXform {\n constructor() {\n const options = {\n tag: 'rowBreaks',\n count: true,\n childXform: new PageBreaksXform(),\n };\n super(options);\n }\n\n // get tag() { return 'rowBreaks'; }\n\n render(xmlStream, model) {\n if (model && model.length) {\n xmlStream.openNode(this.tag, this.$);\n if (this.count) {\n xmlStream.addAttribute(this.$count, model.length);\n xmlStream.addAttribute('manualBreakCount', model.length);\n }\n\n const {childXform} = this;\n model.forEach(childModel => {\n childXform.render(xmlStream, childModel);\n });\n\n xmlStream.closeNode();\n } else if (this.empty) {\n xmlStream.leafNode(this.tag);\n }\n }\n}\n\nmodule.exports = RowBreaksXform;\n","const BaseXform = require('../base-xform');\nconst utils = require('../../../utils/utils');\n\nconst CellXform = require('./cell-xform');\n\nclass RowXform extends BaseXform {\n constructor(options) {\n super();\n\n this.maxItems = options && options.maxItems;\n this.map = {\n c: new CellXform(),\n };\n }\n\n get tag() {\n return 'row';\n }\n\n prepare(model, options) {\n const styleId = options.styles.addStyleModel(model.style);\n if (styleId) {\n model.styleId = styleId;\n }\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.prepare(cellModel, options);\n });\n }\n\n render(xmlStream, model, options) {\n xmlStream.openNode('row');\n xmlStream.addAttribute('r', model.number);\n if (model.height) {\n xmlStream.addAttribute('ht', model.height);\n xmlStream.addAttribute('customHeight', '1');\n }\n if (model.hidden) {\n xmlStream.addAttribute('hidden', '1');\n }\n if (model.min > 0 && model.max > 0 && model.min <= model.max) {\n xmlStream.addAttribute('spans', `${model.min}:${model.max}`);\n }\n if (model.styleId) {\n xmlStream.addAttribute('s', model.styleId);\n xmlStream.addAttribute('customFormat', '1');\n }\n xmlStream.addAttribute('x14ac:dyDescent', '0.25');\n if (model.outlineLevel) {\n xmlStream.addAttribute('outlineLevel', model.outlineLevel);\n }\n if (model.collapsed) {\n xmlStream.addAttribute('collapsed', '1');\n }\n\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.render(xmlStream, cellModel, options);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (node.name === 'row') {\n this.numRowsSeen += 1;\n const spans = node.attributes.spans\n ? node.attributes.spans.split(':').map(span => parseInt(span, 10))\n : [undefined, undefined];\n const model = (this.model = {\n number: parseInt(node.attributes.r, 10),\n min: spans[0],\n max: spans[1],\n cells: [],\n });\n if (node.attributes.s) {\n model.styleId = parseInt(node.attributes.s, 10);\n }\n if (utils.parseBoolean(node.attributes.hidden)) {\n model.hidden = true;\n }\n if (utils.parseBoolean(node.attributes.bestFit)) {\n model.bestFit = true;\n }\n if (node.attributes.ht) {\n model.height = parseFloat(node.attributes.ht);\n }\n if (node.attributes.outlineLevel) {\n model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);\n }\n if (utils.parseBoolean(node.attributes.collapsed)) {\n model.collapsed = true;\n }\n return true;\n }\n\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.cells.push(this.parser.model);\n if (this.maxItems && this.model.cells.length > this.maxItems) {\n throw new Error(`Max column count (${this.maxItems}) exceeded`);\n }\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n\n reconcile(model, options) {\n model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};\n if (model.styleId !== undefined) {\n model.styleId = undefined;\n }\n\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.reconcile(cellModel, options);\n });\n }\n}\n\nmodule.exports = RowXform;\n","const _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\nclass SheetFormatPropertiesXform extends BaseXform {\n get tag() {\n return 'sheetFormatPr';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n defaultRowHeight: model.defaultRowHeight,\n outlineLevelRow: model.outlineLevelRow,\n outlineLevelCol: model.outlineLevelCol,\n 'x14ac:dyDescent': model.dyDescent,\n };\n if (model.defaultColWidth) {\n attributes.defaultColWidth = model.defaultColWidth;\n }\n\n // default value for 'defaultRowHeight' is 15, this should not be 'custom'\n if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {\n attributes.customHeight = '1';\n }\n\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode('sheetFormatPr', attributes);\n }\n }\n }\n\n parseOpen(node) {\n if (node.name === 'sheetFormatPr') {\n this.model = {\n defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),\n dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),\n outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),\n outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10),\n };\n if (node.attributes.defaultColWidth) {\n this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);\n }\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = SheetFormatPropertiesXform;\n","const BaseXform = require('../base-xform');\nconst ColorXform = require('../style/color-xform');\nconst PageSetupPropertiesXform = require('./page-setup-properties-xform');\nconst OutlinePropertiesXform = require('./outline-properties-xform');\n\nclass SheetPropertiesXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n tabColor: new ColorXform('tabColor'),\n pageSetUpPr: new PageSetupPropertiesXform(),\n outlinePr: new OutlinePropertiesXform(),\n };\n }\n\n get tag() {\n return 'sheetPr';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.addRollback();\n xmlStream.openNode('sheetPr');\n\n let inner = false;\n inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;\n inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;\n inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;\n\n if (inner) {\n xmlStream.closeNode();\n xmlStream.commit();\n } else {\n xmlStream.rollback();\n }\n }\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (node.name === this.tag) {\n this.reset();\n return true;\n }\n if (this.map[node.name]) {\n this.parser = this.map[node.name];\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n return true;\n }\n return false;\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {\n this.model = {};\n if (this.map.tabColor.model) {\n this.model.tabColor = this.map.tabColor.model;\n }\n if (this.map.pageSetUpPr.model) {\n this.model.pageSetup = this.map.pageSetUpPr.model;\n }\n if (this.map.outlinePr.model) {\n this.model.outlineProperties = this.map.outlinePr.model;\n }\n } else {\n this.model = null;\n }\n return false;\n }\n}\n\nmodule.exports = SheetPropertiesXform;\n","const _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\nfunction booleanToXml(model, value) {\n return model ? value : undefined;\n}\n\nfunction xmlToBoolean(value, equals) {\n return value === equals ? true : undefined;\n}\n\nclass SheetProtectionXform extends BaseXform {\n get tag() {\n return 'sheetProtection';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n sheet: booleanToXml(model.sheet, '1'),\n selectLockedCells: model.selectLockedCells === false ? '1' : undefined,\n selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,\n formatCells: booleanToXml(model.formatCells, '0'),\n formatColumns: booleanToXml(model.formatColumns, '0'),\n formatRows: booleanToXml(model.formatRows, '0'),\n insertColumns: booleanToXml(model.insertColumns, '0'),\n insertRows: booleanToXml(model.insertRows, '0'),\n insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),\n deleteColumns: booleanToXml(model.deleteColumns, '0'),\n deleteRows: booleanToXml(model.deleteRows, '0'),\n sort: booleanToXml(model.sort, '0'),\n autoFilter: booleanToXml(model.autoFilter, '0'),\n pivotTables: booleanToXml(model.pivotTables, '0'),\n };\n if (model.sheet) {\n attributes.algorithmName = model.algorithmName;\n attributes.hashValue = model.hashValue;\n attributes.saltValue = model.saltValue;\n attributes.spinCount = model.spinCount;\n attributes.objects = booleanToXml(model.objects === false, '1');\n attributes.scenarios = booleanToXml(model.scenarios === false, '1');\n }\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode(this.tag, attributes);\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n sheet: xmlToBoolean(node.attributes.sheet, '1'),\n objects: node.attributes.objects === '1' ? false : undefined,\n scenarios: node.attributes.scenarios === '1' ? false : undefined,\n selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,\n selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,\n formatCells: xmlToBoolean(node.attributes.formatCells, '0'),\n formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),\n formatRows: xmlToBoolean(node.attributes.formatRows, '0'),\n insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),\n insertRows: xmlToBoolean(node.attributes.insertRows, '0'),\n insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),\n deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),\n deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),\n sort: xmlToBoolean(node.attributes.sort, '0'),\n autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),\n pivotTables: xmlToBoolean(node.attributes.pivotTables, '0'),\n };\n if (node.attributes.algorithmName) {\n this.model.algorithmName = node.attributes.algorithmName;\n this.model.hashValue = node.attributes.hashValue;\n this.model.saltValue = node.attributes.saltValue;\n this.model.spinCount = parseInt(node.attributes.spinCount, 10);\n }\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = SheetProtectionXform;\n","const colCache = require('../../../utils/col-cache');\nconst BaseXform = require('../base-xform');\n\nconst VIEW_STATES = {\n frozen: 'frozen',\n frozenSplit: 'frozen',\n split: 'split',\n};\n\nclass SheetViewXform extends BaseXform {\n get tag() {\n return 'sheetView';\n }\n\n prepare(model) {\n switch (model.state) {\n case 'frozen':\n case 'split':\n break;\n default:\n model.state = 'normal';\n break;\n }\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('sheetView', {\n workbookViewId: model.workbookViewId || 0,\n });\n const add = function(name, value, included) {\n if (included) {\n xmlStream.addAttribute(name, value);\n }\n };\n add('rightToLeft', '1', model.rightToLeft === true);\n add('tabSelected', '1', model.tabSelected);\n add('showRuler', '0', model.showRuler === false);\n add('showRowColHeaders', '0', model.showRowColHeaders === false);\n add('showGridLines', '0', model.showGridLines === false);\n add('zoomScale', model.zoomScale, model.zoomScale);\n add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);\n add('view', model.style, model.style);\n\n let topLeftCell;\n let xSplit;\n let ySplit;\n let activePane;\n switch (model.state) {\n case 'frozen':\n xSplit = model.xSplit || 0;\n ySplit = model.ySplit || 0;\n topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;\n activePane =\n (model.xSplit && model.ySplit && 'bottomRight') ||\n (model.xSplit && 'topRight') ||\n 'bottomLeft';\n\n xmlStream.leafNode('pane', {\n xSplit: model.xSplit || undefined,\n ySplit: model.ySplit || undefined,\n topLeftCell,\n activePane,\n state: 'frozen',\n });\n xmlStream.leafNode('selection', {\n pane: activePane,\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n break;\n case 'split':\n if (model.activePane === 'topLeft') {\n model.activePane = undefined;\n }\n xmlStream.leafNode('pane', {\n xSplit: model.xSplit || undefined,\n ySplit: model.ySplit || undefined,\n topLeftCell: model.topLeftCell,\n activePane: model.activePane,\n });\n xmlStream.leafNode('selection', {\n pane: model.activePane,\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n break;\n case 'normal':\n if (model.activeCell) {\n xmlStream.leafNode('selection', {\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n }\n break;\n default:\n break;\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'sheetView':\n this.sheetView = {\n workbookViewId: parseInt(node.attributes.workbookViewId, 10),\n rightToLeft: node.attributes.rightToLeft === '1',\n tabSelected: node.attributes.tabSelected === '1',\n showRuler: !(node.attributes.showRuler === '0'),\n showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),\n showGridLines: !(node.attributes.showGridLines === '0'),\n zoomScale: parseInt(node.attributes.zoomScale || '100', 10),\n zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),\n style: node.attributes.view,\n };\n this.pane = undefined;\n this.selections = {};\n return true;\n\n case 'pane':\n this.pane = {\n xSplit: parseInt(node.attributes.xSplit || '0', 10),\n ySplit: parseInt(node.attributes.ySplit || '0', 10),\n topLeftCell: node.attributes.topLeftCell,\n activePane: node.attributes.activePane || 'topLeft',\n state: node.attributes.state,\n };\n return true;\n\n case 'selection': {\n const name = node.attributes.pane || 'topLeft';\n this.selections[name] = {\n pane: name,\n activeCell: node.attributes.activeCell,\n };\n return true;\n }\n\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n let model;\n let selection;\n switch (name) {\n case 'sheetView':\n if (this.sheetView && this.pane) {\n model = this.model = {\n workbookViewId: this.sheetView.workbookViewId,\n rightToLeft: this.sheetView.rightToLeft,\n state: VIEW_STATES[this.pane.state] || 'split', // split is default\n xSplit: this.pane.xSplit,\n ySplit: this.pane.ySplit,\n topLeftCell: this.pane.topLeftCell,\n showRuler: this.sheetView.showRuler,\n showRowColHeaders: this.sheetView.showRowColHeaders,\n showGridLines: this.sheetView.showGridLines,\n zoomScale: this.sheetView.zoomScale,\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\n };\n if (this.model.state === 'split') {\n model.activePane = this.pane.activePane;\n }\n selection = this.selections[this.pane.activePane];\n if (selection && selection.activeCell) {\n model.activeCell = selection.activeCell;\n }\n if (this.sheetView.style) {\n model.style = this.sheetView.style;\n }\n } else {\n model = this.model = {\n workbookViewId: this.sheetView.workbookViewId,\n rightToLeft: this.sheetView.rightToLeft,\n state: 'normal',\n showRuler: this.sheetView.showRuler,\n showRowColHeaders: this.sheetView.showRowColHeaders,\n showGridLines: this.sheetView.showGridLines,\n zoomScale: this.sheetView.zoomScale,\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\n };\n selection = this.selections.topLeft;\n if (selection && selection.activeCell) {\n model.activeCell = selection.activeCell;\n }\n if (this.sheetView.style) {\n model.style = this.sheetView.style;\n }\n }\n return false;\n default:\n return true;\n }\n }\n\n reconcile() {}\n}\n\nmodule.exports = SheetViewXform;\n","const BaseXform = require('../base-xform');\n\nclass TablePartXform extends BaseXform {\n get tag() {\n return 'tablePart';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.leafNode(this.tag, {'r:id': model.rId});\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n rId: node.attributes['r:id'],\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = TablePartXform;\n","const _ = require('../../../utils/under-dash');\n\nconst colCache = require('../../../utils/col-cache');\nconst XmlStream = require('../../../utils/xml-stream');\n\nconst RelType = require('../../rel-type');\n\nconst Merges = require('./merges');\n\nconst BaseXform = require('../base-xform');\nconst ListXform = require('../list-xform');\nconst RowXform = require('./row-xform');\nconst ColXform = require('./col-xform');\nconst DimensionXform = require('./dimension-xform');\nconst HyperlinkXform = require('./hyperlink-xform');\nconst MergeCellXform = require('./merge-cell-xform');\nconst DataValidationsXform = require('./data-validations-xform');\nconst SheetPropertiesXform = require('./sheet-properties-xform');\nconst SheetFormatPropertiesXform = require('./sheet-format-properties-xform');\nconst SheetViewXform = require('./sheet-view-xform');\nconst SheetProtectionXform = require('./sheet-protection-xform');\nconst PageMarginsXform = require('./page-margins-xform');\nconst PageSetupXform = require('./page-setup-xform');\nconst PrintOptionsXform = require('./print-options-xform');\nconst AutoFilterXform = require('./auto-filter-xform');\nconst PictureXform = require('./picture-xform');\nconst DrawingXform = require('./drawing-xform');\nconst TablePartXform = require('./table-part-xform');\nconst RowBreaksXform = require('./row-breaks-xform');\nconst HeaderFooterXform = require('./header-footer-xform');\nconst ConditionalFormattingsXform = require('./cf/conditional-formattings-xform');\nconst ExtListXform = require('./ext-lst-xform');\n\nconst mergeRule = (rule, extRule) => {\n Object.keys(extRule).forEach(key => {\n const value = rule[key];\n const extValue = extRule[key];\n if (value === undefined && extValue !== undefined) {\n rule[key] = extValue;\n }\n });\n};\n\nconst mergeConditionalFormattings = (model, extModel) => {\n // conditional formattings are rendered in worksheet.conditionalFormatting and also in\n // worksheet.extLst.ext.x14:conditionalFormattings\n // some (e.g. dataBar) are even spread across both!\n if (!extModel || !extModel.length) {\n return model;\n }\n if (!model || !model.length) {\n return extModel;\n }\n\n // index model rules by x14Id\n const cfMap = {};\n const ruleMap = {};\n model.forEach(cf => {\n cfMap[cf.ref] = cf;\n cf.rules.forEach(rule => {\n const {x14Id} = rule;\n if (x14Id) {\n ruleMap[x14Id] = rule;\n }\n });\n });\n\n extModel.forEach(extCf => {\n extCf.rules.forEach(extRule => {\n const rule = ruleMap[extRule.x14Id];\n if (rule) {\n // merge with matching rule\n mergeRule(rule, extRule);\n } else if (cfMap[extCf.ref]) {\n // reuse existing cf ref\n cfMap[extCf.ref].rules.push(extRule);\n } else {\n // create new cf\n model.push({\n ref: extCf.ref,\n rules: [extRule],\n });\n }\n });\n });\n\n // need to cope with rules in extModel that don't exist in model\n return model;\n};\n\nclass WorkSheetXform extends BaseXform {\n constructor(options) {\n super();\n\n const {maxRows, maxCols, ignoreNodes} = options || {};\n\n this.ignoreNodes = ignoreNodes || [];\n\n this.map = {\n sheetPr: new SheetPropertiesXform(),\n dimension: new DimensionXform(),\n sheetViews: new ListXform({\n tag: 'sheetViews',\n count: false,\n childXform: new SheetViewXform(),\n }),\n sheetFormatPr: new SheetFormatPropertiesXform(),\n cols: new ListXform({tag: 'cols', count: false, childXform: new ColXform()}),\n sheetData: new ListXform({\n tag: 'sheetData',\n count: false,\n empty: true,\n childXform: new RowXform({maxItems: maxCols}),\n maxItems: maxRows,\n }),\n autoFilter: new AutoFilterXform(),\n mergeCells: new ListXform({tag: 'mergeCells', count: true, childXform: new MergeCellXform()}),\n rowBreaks: new RowBreaksXform(),\n hyperlinks: new ListXform({\n tag: 'hyperlinks',\n count: false,\n childXform: new HyperlinkXform(),\n }),\n pageMargins: new PageMarginsXform(),\n dataValidations: new DataValidationsXform(),\n pageSetup: new PageSetupXform(),\n headerFooter: new HeaderFooterXform(),\n printOptions: new PrintOptionsXform(),\n picture: new PictureXform(),\n drawing: new DrawingXform(),\n sheetProtection: new SheetProtectionXform(),\n tableParts: new ListXform({tag: 'tableParts', count: true, childXform: new TablePartXform()}),\n conditionalFormatting: new ConditionalFormattingsXform(),\n extLst: new ExtListXform(),\n };\n }\n\n prepare(model, options) {\n options.merges = new Merges();\n model.hyperlinks = options.hyperlinks = [];\n model.comments = options.comments = [];\n\n options.formulae = {};\n options.siFormulae = 0;\n this.map.cols.prepare(model.cols, options);\n this.map.sheetData.prepare(model.rows, options);\n this.map.conditionalFormatting.prepare(model.conditionalFormattings, options);\n\n model.mergeCells = options.merges.mergeCells;\n\n // prepare relationships\n const rels = (model.rels = []);\n\n function nextRid(r) {\n return `rId${r.length + 1}`;\n }\n\n model.hyperlinks.forEach(hyperlink => {\n const rId = nextRid(rels);\n hyperlink.rId = rId;\n rels.push({\n Id: rId,\n Type: RelType.Hyperlink,\n Target: hyperlink.target,\n TargetMode: 'External',\n });\n });\n\n // prepare comment relationships\n if (model.comments.length > 0) {\n const comment = {\n Id: nextRid(rels),\n Type: RelType.Comments,\n Target: `../comments${model.id}.xml`,\n };\n rels.push(comment);\n const vmlDrawing = {\n Id: nextRid(rels),\n Type: RelType.VmlDrawing,\n Target: `../drawings/vmlDrawing${model.id}.vml`,\n };\n rels.push(vmlDrawing);\n\n model.comments.forEach(item => {\n item.refAddress = colCache.decodeAddress(item.ref);\n });\n\n options.commentRefs.push({\n commentName: `comments${model.id}`,\n vmlDrawing: `vmlDrawing${model.id}`,\n });\n }\n\n const drawingRelsHash = [];\n let bookImage;\n model.media.forEach(medium => {\n if (medium.type === 'background') {\n const rId = nextRid(rels);\n bookImage = options.media[medium.imageId];\n rels.push({\n Id: rId,\n Type: RelType.Image,\n Target: `../media/${bookImage.name}.${bookImage.extension}`,\n });\n model.background = {\n rId,\n };\n model.image = options.media[medium.imageId];\n } else if (medium.type === 'image') {\n let {drawing} = model;\n bookImage = options.media[medium.imageId];\n if (!drawing) {\n drawing = model.drawing = {\n rId: nextRid(rels),\n name: `drawing${++options.drawingsCount}`,\n anchors: [],\n rels: [],\n };\n options.drawings.push(drawing);\n rels.push({\n Id: drawing.rId,\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',\n Target: `../drawings/${drawing.name}.xml`,\n });\n }\n let rIdImage =\n this.preImageId === medium.imageId ? drawingRelsHash[medium.imageId] : drawingRelsHash[drawing.rels.length];\n if (!rIdImage) {\n rIdImage = nextRid(drawing.rels);\n drawingRelsHash[drawing.rels.length] = rIdImage;\n drawing.rels.push({\n Id: rIdImage,\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\n Target: `../media/${bookImage.name}.${bookImage.extension}`,\n });\n }\n\n const anchor = {\n picture: {\n rId: rIdImage,\n },\n range: medium.range,\n };\n if (medium.hyperlinks && medium.hyperlinks.hyperlink) {\n const rIdHyperLink = nextRid(drawing.rels);\n drawingRelsHash[drawing.rels.length] = rIdHyperLink;\n anchor.picture.hyperlinks = {\n tooltip: medium.hyperlinks.tooltip,\n rId: rIdHyperLink,\n };\n drawing.rels.push({\n Id: rIdHyperLink,\n Type: RelType.Hyperlink,\n Target: medium.hyperlinks.hyperlink,\n TargetMode: 'External',\n });\n }\n this.preImageId = medium.imageId;\n drawing.anchors.push(anchor);\n }\n });\n\n // prepare tables\n model.tables.forEach(table => {\n // relationships\n const rId = nextRid(rels);\n table.rId = rId;\n rels.push({\n Id: rId,\n Type: RelType.Table,\n Target: `../tables/${table.target}`,\n });\n\n // dynamic styles\n table.columns.forEach(column => {\n const {style} = column;\n if (style) {\n column.dxfId = options.styles.addDxfStyle(style);\n }\n });\n });\n\n // prepare ext items\n this.map.extLst.prepare(model, options);\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode('worksheet', WorkSheetXform.WORKSHEET_ATTRIBUTES);\n\n const sheetFormatPropertiesModel = model.properties\n ? {\n defaultRowHeight: model.properties.defaultRowHeight,\n dyDescent: model.properties.dyDescent,\n outlineLevelCol: model.properties.outlineLevelCol,\n outlineLevelRow: model.properties.outlineLevelRow,\n }\n : undefined;\n if (model.properties && model.properties.defaultColWidth) {\n sheetFormatPropertiesModel.defaultColWidth = model.properties.defaultColWidth;\n }\n const sheetPropertiesModel = {\n outlineProperties: model.properties && model.properties.outlineProperties,\n tabColor: model.properties && model.properties.tabColor,\n pageSetup:\n model.pageSetup && model.pageSetup.fitToPage\n ? {\n fitToPage: model.pageSetup.fitToPage,\n }\n : undefined,\n };\n const pageMarginsModel = model.pageSetup && model.pageSetup.margins;\n const printOptionsModel = {\n showRowColHeaders: model.pageSetup && model.pageSetup.showRowColHeaders,\n showGridLines: model.pageSetup && model.pageSetup.showGridLines,\n horizontalCentered: model.pageSetup && model.pageSetup.horizontalCentered,\n verticalCentered: model.pageSetup && model.pageSetup.verticalCentered,\n };\n const sheetProtectionModel = model.sheetProtection;\n\n this.map.sheetPr.render(xmlStream, sheetPropertiesModel);\n this.map.dimension.render(xmlStream, model.dimensions);\n this.map.sheetViews.render(xmlStream, model.views);\n this.map.sheetFormatPr.render(xmlStream, sheetFormatPropertiesModel);\n this.map.cols.render(xmlStream, model.cols);\n this.map.sheetData.render(xmlStream, model.rows);\n this.map.sheetProtection.render(xmlStream, sheetProtectionModel); // Note: must be after sheetData and before autoFilter\n this.map.autoFilter.render(xmlStream, model.autoFilter);\n this.map.mergeCells.render(xmlStream, model.mergeCells);\n this.map.conditionalFormatting.render(xmlStream, model.conditionalFormattings); // Note: must be before dataValidations\n this.map.dataValidations.render(xmlStream, model.dataValidations);\n\n // For some reason hyperlinks have to be after the data validations\n this.map.hyperlinks.render(xmlStream, model.hyperlinks);\n\n this.map.printOptions.render(xmlStream, printOptionsModel); // Note: must be before pageMargins\n this.map.pageMargins.render(xmlStream, pageMarginsModel);\n this.map.pageSetup.render(xmlStream, model.pageSetup);\n this.map.headerFooter.render(xmlStream, model.headerFooter);\n this.map.rowBreaks.render(xmlStream, model.rowBreaks);\n this.map.drawing.render(xmlStream, model.drawing); // Note: must be after rowBreaks\n this.map.picture.render(xmlStream, model.background); // Note: must be after drawing\n this.map.tableParts.render(xmlStream, model.tables);\n\n this.map.extLst.render(xmlStream, model);\n\n if (model.rels) {\n // add a node for each comment\n model.rels.forEach(rel => {\n if (rel.Type === RelType.VmlDrawing) {\n xmlStream.leafNode('legacyDrawing', {'r:id': rel.Id});\n }\n });\n }\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n if (node.name === 'worksheet') {\n _.each(this.map, xform => {\n xform.reset();\n });\n return true;\n }\n\n if (this.map[node.name] && !this.ignoreNodes.includes(node.name)) {\n this.parser = this.map[node.name];\n this.parser.parseOpen(node);\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'worksheet': {\n const properties = this.map.sheetFormatPr.model || {};\n if (this.map.sheetPr.model && this.map.sheetPr.model.tabColor) {\n properties.tabColor = this.map.sheetPr.model.tabColor;\n }\n if (this.map.sheetPr.model && this.map.sheetPr.model.outlineProperties) {\n properties.outlineProperties = this.map.sheetPr.model.outlineProperties;\n }\n const sheetProperties = {\n fitToPage:\n (this.map.sheetPr.model &&\n this.map.sheetPr.model.pageSetup &&\n this.map.sheetPr.model.pageSetup.fitToPage) ||\n false,\n margins: this.map.pageMargins.model,\n };\n const pageSetup = Object.assign(sheetProperties, this.map.pageSetup.model, this.map.printOptions.model);\n const conditionalFormattings = mergeConditionalFormattings(\n this.map.conditionalFormatting.model,\n this.map.extLst.model && this.map.extLst.model['x14:conditionalFormattings']\n );\n this.model = {\n dimensions: this.map.dimension.model,\n cols: this.map.cols.model,\n rows: this.map.sheetData.model,\n mergeCells: this.map.mergeCells.model,\n hyperlinks: this.map.hyperlinks.model,\n dataValidations: this.map.dataValidations.model,\n properties,\n views: this.map.sheetViews.model,\n pageSetup,\n headerFooter: this.map.headerFooter.model,\n background: this.map.picture.model,\n drawing: this.map.drawing.model,\n tables: this.map.tableParts.model,\n conditionalFormattings,\n };\n\n if (this.map.autoFilter.model) {\n this.model.autoFilter = this.map.autoFilter.model;\n }\n if (this.map.sheetProtection.model) {\n this.model.sheetProtection = this.map.sheetProtection.model;\n }\n\n return false;\n }\n\n default:\n // not quite sure how we get here!\n return true;\n }\n }\n\n reconcile(model, options) {\n // options.merges = new Merges();\n // options.merges.reconcile(model.mergeCells, model.rows);\n const rels = (model.relationships || []).reduce((h, rel) => {\n h[rel.Id] = rel;\n if (rel.Type === RelType.Comments) {\n model.comments = options.comments[rel.Target].comments;\n }\n if (rel.Type === RelType.VmlDrawing && model.comments && model.comments.length) {\n const vmlComment = options.vmlDrawings[rel.Target].comments;\n model.comments.forEach((comment, index) => {\n comment.note = Object.assign({}, comment.note, vmlComment[index]);\n });\n }\n return h;\n }, {});\n options.commentsMap = (model.comments || []).reduce((h, comment) => {\n if (comment.ref) {\n h[comment.ref] = comment;\n }\n return h;\n }, {});\n options.hyperlinkMap = (model.hyperlinks || []).reduce((h, hyperlink) => {\n if (hyperlink.rId) {\n h[hyperlink.address] = rels[hyperlink.rId].Target;\n }\n return h;\n }, {});\n options.formulae = {};\n\n // compact the rows and cells\n model.rows = (model.rows && model.rows.filter(Boolean)) || [];\n model.rows.forEach(row => {\n row.cells = (row.cells && row.cells.filter(Boolean)) || [];\n });\n\n this.map.cols.reconcile(model.cols, options);\n this.map.sheetData.reconcile(model.rows, options);\n this.map.conditionalFormatting.reconcile(model.conditionalFormattings, options);\n\n model.media = [];\n if (model.drawing) {\n const drawingRel = rels[model.drawing.rId];\n const match = drawingRel.Target.match(/\\/drawings\\/([a-zA-Z0-9]+)[.][a-zA-Z]{3,4}$/);\n if (match) {\n const drawingName = match[1];\n const drawing = options.drawings[drawingName];\n drawing.anchors.forEach(anchor => {\n if (anchor.medium) {\n const image = {\n type: 'image',\n imageId: anchor.medium.index,\n range: anchor.range,\n hyperlinks: anchor.picture.hyperlinks,\n };\n model.media.push(image);\n }\n });\n }\n }\n\n const backgroundRel = model.background && rels[model.background.rId];\n if (backgroundRel) {\n const target = backgroundRel.Target.split('/media/')[1];\n const imageId = options.mediaIndex && options.mediaIndex[target];\n if (imageId !== undefined) {\n model.media.push({\n type: 'background',\n imageId,\n });\n }\n }\n\n model.tables = (model.tables || []).map(tablePart => {\n const rel = rels[tablePart.rId];\n return options.tables[rel.Target];\n });\n\n delete model.relationships;\n delete model.hyperlinks;\n delete model.comments;\n }\n}\n\nWorkSheetXform.WORKSHEET_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'mc:Ignorable': 'x14ac',\n 'xmlns:x14ac': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',\n};\n\nmodule.exports = WorkSheetXform;\n","const BaseXform = require('../base-xform');\n\nclass BooleanXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.attr = options.attr;\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.openNode(this.tag);\n xmlStream.closeNode();\n }\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = true;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = BooleanXform;\n","const BaseXform = require('../base-xform');\n\nclass DateXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.attr = options.attr;\n this.attrs = options.attrs;\n this._format =\n options.format ||\n function(dt) {\n try {\n if (Number.isNaN(dt.getTime())) return '';\n return dt.toISOString();\n } catch (e) {\n return '';\n }\n };\n this._parse =\n options.parse ||\n function(str) {\n return new Date(str);\n };\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.openNode(this.tag);\n if (this.attrs) {\n xmlStream.addAttributes(this.attrs);\n }\n if (this.attr) {\n xmlStream.addAttribute(this.attr, this._format(model));\n } else {\n xmlStream.writeText(this._format(model));\n }\n xmlStream.closeNode();\n }\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n if (this.attr) {\n this.model = this._parse(node.attributes[this.attr]);\n } else {\n this.text = [];\n }\n }\n }\n\n parseText(text) {\n if (!this.attr) {\n this.text.push(text);\n }\n }\n\n parseClose() {\n if (!this.attr) {\n this.model = this._parse(this.text.join(''));\n }\n return false;\n }\n}\n\nmodule.exports = DateXform;\n","const BaseXform = require('../base-xform');\n\nclass IntegerXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.attr = options.attr;\n this.attrs = options.attrs;\n\n // option to render zero\n this.zero = options.zero;\n }\n\n render(xmlStream, model) {\n // int is different to float in that zero is not rendered\n if (model || this.zero) {\n xmlStream.openNode(this.tag);\n if (this.attrs) {\n xmlStream.addAttributes(this.attrs);\n }\n if (this.attr) {\n xmlStream.addAttribute(this.attr, model);\n } else {\n xmlStream.writeText(model);\n }\n xmlStream.closeNode();\n }\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n if (this.attr) {\n this.model = parseInt(node.attributes[this.attr], 10);\n } else {\n this.text = [];\n }\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (!this.attr) {\n this.text.push(text);\n }\n }\n\n parseClose() {\n if (!this.attr) {\n this.model = parseInt(this.text.join('') || 0, 10);\n }\n return false;\n }\n}\n\nmodule.exports = IntegerXform;\n","const BaseXform = require('../base-xform');\n\nclass StringXform extends BaseXform {\n constructor(options) {\n super();\n\n this.tag = options.tag;\n this.attr = options.attr;\n this.attrs = options.attrs;\n }\n\n render(xmlStream, model) {\n if (model !== undefined) {\n xmlStream.openNode(this.tag);\n if (this.attrs) {\n xmlStream.addAttributes(this.attrs);\n }\n if (this.attr) {\n xmlStream.addAttribute(this.attr, model);\n } else {\n xmlStream.writeText(model);\n }\n xmlStream.closeNode();\n }\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n if (this.attr) {\n this.model = node.attributes[this.attr];\n } else {\n this.text = [];\n }\n }\n }\n\n parseText(text) {\n if (!this.attr) {\n this.text.push(text);\n }\n }\n\n parseClose() {\n if (!this.attr) {\n this.model = this.text.join('');\n }\n return false;\n }\n}\n\nmodule.exports = StringXform;\n","const BaseXform = require('./base-xform');\nconst XmlStream = require('../../utils/xml-stream');\n\n// const model = {\n// tag: 'name',\n// $: {attr: 'value'},\n// c: [\n// { tag: 'child' }\n// ],\n// t: 'some text'\n// };\n\nfunction build(xmlStream, model) {\n xmlStream.openNode(model.tag, model.$);\n if (model.c) {\n model.c.forEach(child => {\n build(xmlStream, child);\n });\n }\n if (model.t) {\n xmlStream.writeText(model.t);\n }\n xmlStream.closeNode();\n}\n\nclass StaticXform extends BaseXform {\n constructor(model) {\n super();\n\n // This class is an optimisation for static (unimportant and unchanging) xml\n // It is stateless - apart from its static model and so can be used as a singleton\n // Being stateless - it will only track entry to and exit from it's root xml tag during parsing and nothing else\n // Known issues:\n // since stateless - parseOpen always returns true. Parent xform must know when to start using this xform\n // if the root tag is recursive, the parsing will behave unpredictably\n this._model = model;\n }\n\n render(xmlStream) {\n if (!this._xml) {\n const stream = new XmlStream();\n build(stream, this._model);\n this._xml = stream.xml;\n }\n xmlStream.writeXml(this._xml);\n }\n\n parseOpen() {\n return true;\n }\n\n parseText() {}\n\n parseClose(name) {\n switch (name) {\n case this._model.tag:\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = StaticXform;\n","const TextXform = require('./text-xform');\nconst RichTextXform = require('./rich-text-xform');\n\nconst BaseXform = require('../base-xform');\n\n// \n// (its pronounciation in KATAKANA)\n// \n\nclass PhoneticTextXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n r: new RichTextXform(),\n t: new TextXform(),\n };\n }\n\n get tag() {\n return 'rPh';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {\n sb: model.sb || 0,\n eb: model.eb || 0,\n });\n if (model && model.hasOwnProperty('richText') && model.richText) {\n const {r} = this.map;\n model.richText.forEach(text => {\n r.render(xmlStream, text);\n });\n } else if (model) {\n this.map.t.render(xmlStream, model.text);\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n const {name} = node;\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (name === this.tag) {\n this.model = {\n sb: parseInt(node.attributes.sb, 10),\n eb: parseInt(node.attributes.eb, 10),\n };\n return true;\n }\n this.parser = this.map[name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n switch (name) {\n case 'r': {\n let rt = this.model.richText;\n if (!rt) {\n rt = this.model.richText = [];\n }\n rt.push(this.parser.model);\n break;\n }\n case 't':\n this.model.text = this.parser.model;\n break;\n default:\n break;\n }\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = PhoneticTextXform;\n","const TextXform = require('./text-xform');\nconst FontXform = require('../style/font-xform');\n\nconst BaseXform = require('../base-xform');\n\n// \n// \n// \n// \n// \n// \n// \n// \n// is \n// \n\nclass RichTextXform extends BaseXform {\n constructor(model) {\n super();\n\n this.model = model;\n }\n\n get tag() {\n return 'r';\n }\n\n get textXform() {\n return this._textXform || (this._textXform = new TextXform());\n }\n\n get fontXform() {\n return this._fontXform || (this._fontXform = new FontXform(RichTextXform.FONT_OPTIONS));\n }\n\n render(xmlStream, model) {\n model = model || this.model;\n\n xmlStream.openNode('r');\n if (model.font) {\n this.fontXform.render(xmlStream, model.font);\n }\n this.textXform.render(xmlStream, model.text);\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'r':\n this.model = {};\n return true;\n case 't':\n this.parser = this.textXform;\n this.parser.parseOpen(node);\n return true;\n case 'rPr':\n this.parser = this.fontXform;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n switch (name) {\n case 'r':\n return false;\n case 't':\n this.model.text = this.parser.model;\n this.parser = undefined;\n return true;\n case 'rPr':\n this.model.font = this.parser.model;\n this.parser = undefined;\n return true;\n default:\n if (this.parser) {\n this.parser.parseClose(name);\n }\n return true;\n }\n }\n}\n\nRichTextXform.FONT_OPTIONS = {\n tagName: 'rPr',\n fontNameTag: 'rFont',\n};\n\nmodule.exports = RichTextXform;\n","const TextXform = require('./text-xform');\nconst RichTextXform = require('./rich-text-xform');\nconst PhoneticTextXform = require('./phonetic-text-xform');\n\nconst BaseXform = require('../base-xform');\n\n// \n// ...\n// \n// \n// \n// \n\nclass SharedStringXform extends BaseXform {\n constructor(model) {\n super();\n\n this.model = model;\n\n this.map = {\n r: new RichTextXform(),\n t: new TextXform(),\n rPh: new PhoneticTextXform(),\n };\n }\n\n get tag() {\n return 'si';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n if (model && model.hasOwnProperty('richText') && model.richText) {\n if (model.richText.length) {\n model.richText.forEach(text => {\n this.map.r.render(xmlStream, text);\n });\n } else {\n this.map.t.render(xmlStream, '');\n }\n } else if (model !== undefined && model !== null) {\n this.map.t.render(xmlStream, model);\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n const {name} = node;\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (name === this.tag) {\n this.model = {};\n return true;\n }\n this.parser = this.map[name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n switch (name) {\n case 'r': {\n let rt = this.model.richText;\n if (!rt) {\n rt = this.model.richText = [];\n }\n rt.push(this.parser.model);\n break;\n }\n case 't':\n this.model = this.parser.model;\n break;\n default:\n break;\n }\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n return true;\n }\n }\n}\n\nmodule.exports = SharedStringXform;\n","const XmlStream = require('../../../utils/xml-stream');\nconst BaseXform = require('../base-xform');\nconst SharedStringXform = require('./shared-string-xform');\n\nclass SharedStringsXform extends BaseXform {\n constructor(model) {\n super();\n\n this.model = model || {\n values: [],\n count: 0,\n };\n this.hash = Object.create(null);\n this.rich = Object.create(null);\n }\n\n get sharedStringXform() {\n return this._sharedStringXform || (this._sharedStringXform = new SharedStringXform());\n }\n\n get values() {\n return this.model.values;\n }\n\n get uniqueCount() {\n return this.model.values.length;\n }\n\n get count() {\n return this.model.count;\n }\n\n getString(index) {\n return this.model.values[index];\n }\n\n add(value) {\n return value.richText ? this.addRichText(value) : this.addText(value);\n }\n\n addText(value) {\n let index = this.hash[value];\n if (index === undefined) {\n index = this.hash[value] = this.model.values.length;\n this.model.values.push(value);\n }\n this.model.count++;\n return index;\n }\n\n addRichText(value) {\n // TODO: add WeakMap here\n const xml = this.sharedStringXform.toXml(value);\n let index = this.rich[xml];\n if (index === undefined) {\n index = this.rich[xml] = this.model.values.length;\n this.model.values.push(value);\n }\n this.model.count++;\n return index;\n }\n\n // \n // \" uniqueCount=\"<%=count%>\">\n // <%=text%>\n // \n // \n\n render(xmlStream, model) {\n model = model || this._values;\n xmlStream.openXml(XmlStream.StdDocAttributes);\n\n xmlStream.openNode('sst', {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n count: model.count,\n uniqueCount: model.values.length,\n });\n\n const sx = this.sharedStringXform;\n model.values.forEach(sharedString => {\n sx.render(xmlStream, sharedString);\n });\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'sst':\n return true;\n case 'si':\n this.parser = this.sharedStringXform;\n this.parser.parseOpen(node);\n return true;\n default:\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.values.push(this.parser.model);\n this.model.count++;\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'sst':\n return false;\n default:\n throw new Error(`Unexpected xml node in parseClose: ${name}`);\n }\n }\n}\n\nmodule.exports = SharedStringsXform;\n","const BaseXform = require('../base-xform');\n\n// is \n\nclass TextXform extends BaseXform {\n get tag() {\n return 't';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('t');\n if (/^\\s|\\n|\\s$/.test(model)) {\n xmlStream.addAttribute('xml:space', 'preserve');\n }\n xmlStream.writeText(model);\n xmlStream.closeNode();\n }\n\n get model() {\n return this._text\n .join('')\n .replace(/_x([0-9A-F]{4})_/g, ($0, $1) => String.fromCharCode(parseInt($1, 16)));\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 't':\n this._text = [];\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n this._text.push(text);\n }\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = TextXform;\n","const Enums = require('../../../doc/enums');\n\nconst utils = require('../../../utils/utils');\nconst BaseXform = require('../base-xform');\n\nconst validation = {\n horizontalValues: [\n 'left',\n 'center',\n 'right',\n 'fill',\n 'centerContinuous',\n 'distributed',\n 'justify',\n ].reduce((p, v) => {\n p[v] = true;\n return p;\n }, {}),\n horizontal(value) {\n return this.horizontalValues[value] ? value : undefined;\n },\n\n verticalValues: ['top', 'middle', 'bottom', 'distributed', 'justify'].reduce((p, v) => {\n p[v] = true;\n return p;\n }, {}),\n vertical(value) {\n if (value === 'middle') return 'center';\n return this.verticalValues[value] ? value : undefined;\n },\n wrapText(value) {\n return value ? true : undefined;\n },\n shrinkToFit(value) {\n return value ? true : undefined;\n },\n textRotation(value) {\n switch (value) {\n case 'vertical':\n return value;\n default:\n value = utils.validInt(value);\n return value >= -90 && value <= 90 ? value : undefined;\n }\n },\n indent(value) {\n value = utils.validInt(value);\n return Math.max(0, value);\n },\n readingOrder(value) {\n switch (value) {\n case 'ltr':\n return Enums.ReadingOrder.LeftToRight;\n case 'rtl':\n return Enums.ReadingOrder.RightToLeft;\n default:\n return undefined;\n }\n },\n};\n\nconst textRotationXform = {\n toXml(textRotation) {\n textRotation = validation.textRotation(textRotation);\n if (textRotation) {\n if (textRotation === 'vertical') {\n return 255;\n }\n\n const tr = Math.round(textRotation);\n if (tr >= 0 && tr <= 90) {\n return tr;\n }\n\n if (tr < 0 && tr >= -90) {\n return 90 - tr;\n }\n }\n return undefined;\n },\n toModel(textRotation) {\n const tr = utils.validInt(textRotation);\n if (tr !== undefined) {\n if (tr === 255) {\n return 'vertical';\n }\n if (tr >= 0 && tr <= 90) {\n return tr;\n }\n if (tr > 90 && tr <= 180) {\n return 90 - tr;\n }\n }\n return undefined;\n },\n};\n\n// Alignment encapsulates translation from style.alignment model to/from xlsx\nclass AlignmentXform extends BaseXform {\n get tag() {\n return 'alignment';\n }\n\n render(xmlStream, model) {\n xmlStream.addRollback();\n xmlStream.openNode('alignment');\n\n let isValid = false;\n function add(name, value) {\n if (value) {\n xmlStream.addAttribute(name, value);\n isValid = true;\n }\n }\n add('horizontal', validation.horizontal(model.horizontal));\n add('vertical', validation.vertical(model.vertical));\n add('wrapText', validation.wrapText(model.wrapText) ? '1' : false);\n add('shrinkToFit', validation.shrinkToFit(model.shrinkToFit) ? '1' : false);\n add('indent', validation.indent(model.indent));\n add('textRotation', textRotationXform.toXml(model.textRotation));\n add('readingOrder', validation.readingOrder(model.readingOrder));\n\n xmlStream.closeNode();\n\n if (isValid) {\n xmlStream.commit();\n } else {\n xmlStream.rollback();\n }\n }\n\n parseOpen(node) {\n const model = {};\n\n let valid = false;\n function add(truthy, name, value) {\n if (truthy) {\n model[name] = value;\n valid = true;\n }\n }\n add(node.attributes.horizontal, 'horizontal', node.attributes.horizontal);\n add(\n node.attributes.vertical,\n 'vertical',\n node.attributes.vertical === 'center' ? 'middle' : node.attributes.vertical\n );\n add(node.attributes.wrapText, 'wrapText', utils.parseBoolean(node.attributes.wrapText));\n add(node.attributes.shrinkToFit, 'shrinkToFit', utils.parseBoolean(node.attributes.shrinkToFit));\n add(node.attributes.indent, 'indent', parseInt(node.attributes.indent, 10));\n add(\n node.attributes.textRotation,\n 'textRotation',\n textRotationXform.toModel(node.attributes.textRotation)\n );\n add(\n node.attributes.readingOrder,\n 'readingOrder',\n node.attributes.readingOrder === '2' ? 'rtl' : 'ltr'\n );\n\n this.model = valid ? model : null;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = AlignmentXform;\n","/* eslint-disable max-classes-per-file */\nconst BaseXform = require('../base-xform');\nconst utils = require('../../../utils/utils');\n\nconst ColorXform = require('./color-xform');\n\nclass EdgeXform extends BaseXform {\n constructor(name) {\n super();\n\n this.name = name;\n this.map = {\n color: new ColorXform(),\n };\n }\n\n get tag() {\n return this.name;\n }\n\n render(xmlStream, model, defaultColor) {\n const color = (model && model.color) || defaultColor || this.defaultColor;\n xmlStream.openNode(this.name);\n if (model && model.style) {\n xmlStream.addAttribute('style', model.style);\n if (color) {\n this.map.color.render(xmlStream, color);\n }\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.name: {\n const {style} = node.attributes;\n if (style) {\n this.model = {\n style,\n };\n } else {\n this.model = undefined;\n }\n return true;\n }\n case 'color':\n this.parser = this.map.color;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n\n if (name === this.name) {\n if (this.map.color.model) {\n if (!this.model) {\n this.model = {};\n }\n this.model.color = this.map.color.model;\n }\n }\n\n return false;\n }\n\n validStyle(value) {\n return EdgeXform.validStyleValues[value];\n }\n}\n\nEdgeXform.validStyleValues = [\n 'thin',\n 'dashed',\n 'dotted',\n 'dashDot',\n 'hair',\n 'dashDotDot',\n 'slantDashDot',\n 'mediumDashed',\n 'mediumDashDotDot',\n 'mediumDashDot',\n 'medium',\n 'double',\n 'thick',\n].reduce((p, v) => {\n p[v] = true;\n return p;\n}, {});\n\n// Border encapsulates translation from border model to/from xlsx\nclass BorderXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n top: new EdgeXform('top'),\n left: new EdgeXform('left'),\n bottom: new EdgeXform('bottom'),\n right: new EdgeXform('right'),\n diagonal: new EdgeXform('diagonal'),\n };\n }\n\n render(xmlStream, model) {\n const {color} = model;\n xmlStream.openNode('border');\n if (model.diagonal && model.diagonal.style) {\n if (model.diagonal.up) {\n xmlStream.addAttribute('diagonalUp', '1');\n }\n if (model.diagonal.down) {\n xmlStream.addAttribute('diagonalDown', '1');\n }\n }\n function add(edgeModel, edgeXform) {\n if (edgeModel && !edgeModel.color && model.color) {\n // don't mess with incoming models\n edgeModel = {\n ...edgeModel,\n color: model.color,\n };\n }\n edgeXform.render(xmlStream, edgeModel, color);\n }\n add(model.left, this.map.left);\n add(model.right, this.map.right);\n add(model.top, this.map.top);\n add(model.bottom, this.map.bottom);\n add(model.diagonal, this.map.diagonal);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'border':\n this.reset();\n this.diagonalUp = utils.parseBoolean(node.attributes.diagonalUp);\n this.diagonalDown = utils.parseBoolean(node.attributes.diagonalDown);\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n if (name === 'border') {\n const model = (this.model = {});\n const add = function(key, edgeModel, extensions) {\n if (edgeModel) {\n if (extensions) {\n Object.assign(edgeModel, extensions);\n }\n model[key] = edgeModel;\n }\n };\n add('left', this.map.left.model);\n add('right', this.map.right.model);\n add('top', this.map.top.model);\n add('bottom', this.map.bottom.model);\n add('diagonal', this.map.diagonal.model, {up: this.diagonalUp, down: this.diagonalDown});\n }\n return false;\n }\n}\n\nmodule.exports = BorderXform;\n","const BaseXform = require('../base-xform');\n\n// Color encapsulates translation from color model to/from xlsx\nclass ColorXform extends BaseXform {\n constructor(name) {\n super();\n\n // this.name controls the xm node name\n this.name = name || 'color';\n }\n\n get tag() {\n return this.name;\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.openNode(this.name);\n if (model.argb) {\n xmlStream.addAttribute('rgb', model.argb);\n } else if (model.theme !== undefined) {\n xmlStream.addAttribute('theme', model.theme);\n if (model.tint !== undefined) {\n xmlStream.addAttribute('tint', model.tint);\n }\n } else if (model.indexed !== undefined) {\n xmlStream.addAttribute('indexed', model.indexed);\n } else {\n xmlStream.addAttribute('auto', '1');\n }\n xmlStream.closeNode();\n return true;\n }\n return false;\n }\n\n parseOpen(node) {\n if (node.name === this.name) {\n if (node.attributes.rgb) {\n this.model = {argb: node.attributes.rgb};\n } else if (node.attributes.theme) {\n this.model = {theme: parseInt(node.attributes.theme, 10)};\n if (node.attributes.tint) {\n this.model.tint = parseFloat(node.attributes.tint);\n }\n } else if (node.attributes.indexed) {\n this.model = {indexed: parseInt(node.attributes.indexed, 10)};\n } else {\n this.model = undefined;\n }\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = ColorXform;\n","const BaseXform = require('../base-xform');\n\nconst AlignmentXform = require('./alignment-xform');\nconst BorderXform = require('./border-xform');\nconst FillXform = require('./fill-xform');\nconst FontXform = require('./font-xform');\nconst NumFmtXform = require('./numfmt-xform');\nconst ProtectionXform = require('./protection-xform');\n\n// \n// Optional \n// Optional \n// \n\n// Style assists translation from style model to/from xlsx\nclass DxfXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n alignment: new AlignmentXform(),\n border: new BorderXform(),\n fill: new FillXform(),\n font: new FontXform(),\n numFmt: new NumFmtXform(),\n protection: new ProtectionXform(),\n };\n }\n\n get tag() {\n return 'dxf';\n }\n\n // how do we generate dxfid?\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag);\n\n if (model.font) {\n this.map.font.render(xmlStream, model.font);\n }\n if (model.numFmt && model.numFmtId) {\n const numFmtModel = {id: model.numFmtId, formatCode: model.numFmt};\n this.map.numFmt.render(xmlStream, numFmtModel);\n }\n if (model.fill) {\n this.map.fill.render(xmlStream, model.fill);\n }\n if (model.alignment) {\n this.map.alignment.render(xmlStream, model.alignment);\n }\n if (model.border) {\n this.map.border.render(xmlStream, model.border);\n }\n if (model.protection) {\n this.map.protection.render(xmlStream, model.protection);\n }\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n\n switch (node.name) {\n case this.tag:\n // this node is often repeated. Need to reset children\n this.reset();\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n return true;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n if (name === this.tag) {\n this.model = {\n alignment: this.map.alignment.model,\n border: this.map.border.model,\n fill: this.map.fill.model,\n font: this.map.font.model,\n numFmt: this.map.numFmt.model,\n protection: this.map.protection.model,\n };\n return false;\n }\n\n return true;\n }\n}\n\nmodule.exports = DxfXform;\n","/* eslint-disable max-classes-per-file */\nconst BaseXform = require('../base-xform');\n\nconst ColorXform = require('./color-xform');\n\nclass StopXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n color: new ColorXform(),\n };\n }\n\n get tag() {\n return 'stop';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('stop');\n xmlStream.addAttribute('position', model.position);\n this.map.color.render(xmlStream, model.color);\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'stop':\n this.model = {\n position: parseFloat(node.attributes.position),\n };\n return true;\n case 'color':\n this.parser = this.map.color;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.color = this.parser.model;\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n}\n\nclass PatternFillXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n fgColor: new ColorXform('fgColor'),\n bgColor: new ColorXform('bgColor'),\n };\n }\n\n get name() {\n return 'pattern';\n }\n\n get tag() {\n return 'patternFill';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('patternFill');\n xmlStream.addAttribute('patternType', model.pattern);\n if (model.fgColor) {\n this.map.fgColor.render(xmlStream, model.fgColor);\n }\n if (model.bgColor) {\n this.map.bgColor.render(xmlStream, model.bgColor);\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'patternFill':\n this.model = {\n type: 'pattern',\n pattern: node.attributes.patternType,\n };\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n if (this.parser.model) {\n this.model[name] = this.parser.model;\n }\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n}\n\nclass GradientFillXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n stop: new StopXform(),\n };\n // if (model) {\n // this.gradient = model.gradient;\n // if (model.center) {\n // this.center = model.center;\n // }\n // if (model.degree !== undefined) {\n // this.degree = model.degree;\n // }\n // this.stops = model.stops.map(function(stop) { return new StopXform(stop); });\n // } else {\n // this.stops = [];\n // }\n }\n\n get name() {\n return 'gradient';\n }\n\n get tag() {\n return 'gradientFill';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('gradientFill');\n switch (model.gradient) {\n case 'angle':\n xmlStream.addAttribute('degree', model.degree);\n break;\n case 'path':\n xmlStream.addAttribute('type', 'path');\n if (model.center.left) {\n xmlStream.addAttribute('left', model.center.left);\n if (model.center.right === undefined) {\n xmlStream.addAttribute('right', model.center.left);\n }\n }\n if (model.center.right) {\n xmlStream.addAttribute('right', model.center.right);\n }\n if (model.center.top) {\n xmlStream.addAttribute('top', model.center.top);\n if (model.center.bottom === undefined) {\n xmlStream.addAttribute('bottom', model.center.top);\n }\n }\n if (model.center.bottom) {\n xmlStream.addAttribute('bottom', model.center.bottom);\n }\n break;\n\n default:\n break;\n }\n\n const stopXform = this.map.stop;\n model.stops.forEach(stopModel => {\n stopXform.render(xmlStream, stopModel);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'gradientFill': {\n const model = (this.model = {\n stops: [],\n });\n if (node.attributes.degree) {\n model.gradient = 'angle';\n model.degree = parseInt(node.attributes.degree, 10);\n } else if (node.attributes.type === 'path') {\n model.gradient = 'path';\n model.center = {\n left: node.attributes.left ? parseFloat(node.attributes.left) : 0,\n top: node.attributes.top ? parseFloat(node.attributes.top) : 0,\n };\n if (node.attributes.right !== node.attributes.left) {\n model.center.right = node.attributes.right ? parseFloat(node.attributes.right) : 0;\n }\n if (node.attributes.bottom !== node.attributes.top) {\n model.center.bottom = node.attributes.bottom ? parseFloat(node.attributes.bottom) : 0;\n }\n }\n return true;\n }\n\n case 'stop':\n this.parser = this.map.stop;\n this.parser.parseOpen(node);\n return true;\n\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.stops.push(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n}\n\n// Fill encapsulates translation from fill model to/from xlsx\nclass FillXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n patternFill: new PatternFillXform(),\n gradientFill: new GradientFillXform(),\n };\n }\n\n get tag() {\n return 'fill';\n }\n\n render(xmlStream, model) {\n xmlStream.addRollback();\n xmlStream.openNode('fill');\n switch (model.type) {\n case 'pattern':\n this.map.patternFill.render(xmlStream, model);\n break;\n case 'gradient':\n this.map.gradientFill.render(xmlStream, model);\n break;\n default:\n xmlStream.rollback();\n return;\n }\n xmlStream.closeNode();\n xmlStream.commit();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'fill':\n this.model = {};\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model = this.parser.model;\n this.model.type = this.parser.name;\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n\n validStyle(value) {\n return FillXform.validPatternValues[value];\n }\n}\n\nFillXform.validPatternValues = [\n 'none',\n 'solid',\n 'darkVertical',\n 'darkGray',\n 'mediumGray',\n 'lightGray',\n 'gray125',\n 'gray0625',\n 'darkHorizontal',\n 'darkVertical',\n 'darkDown',\n 'darkUp',\n 'darkGrid',\n 'darkTrellis',\n 'lightHorizontal',\n 'lightVertical',\n 'lightDown',\n 'lightUp',\n 'lightGrid',\n 'lightTrellis',\n 'lightGrid',\n].reduce((p, v) => {\n p[v] = true;\n return p;\n}, {});\n\nFillXform.StopXform = StopXform;\nFillXform.PatternFillXform = PatternFillXform;\nFillXform.GradientFillXform = GradientFillXform;\n\nmodule.exports = FillXform;\n","'use strict';\n\nconst ColorXform = require('./color-xform');\nconst BooleanXform = require('../simple/boolean-xform');\nconst IntegerXform = require('../simple/integer-xform');\nconst StringXform = require('../simple/string-xform');\nconst UnderlineXform = require('./underline-xform');\n\nconst _ = require('../../../utils/under-dash');\nconst BaseXform = require('../base-xform');\n\n// Font encapsulates translation from font model to xlsx\nclass FontXform extends BaseXform {\n constructor(options) {\n super();\n\n this.options = options || FontXform.OPTIONS;\n\n this.map = {\n b: {prop: 'bold', xform: new BooleanXform({tag: 'b', attr: 'val'})},\n i: {prop: 'italic', xform: new BooleanXform({tag: 'i', attr: 'val'})},\n u: {prop: 'underline', xform: new UnderlineXform()},\n charset: {prop: 'charset', xform: new IntegerXform({tag: 'charset', attr: 'val'})},\n color: {prop: 'color', xform: new ColorXform()},\n condense: {prop: 'condense', xform: new BooleanXform({tag: 'condense', attr: 'val'})},\n extend: {prop: 'extend', xform: new BooleanXform({tag: 'extend', attr: 'val'})},\n family: {prop: 'family', xform: new IntegerXform({tag: 'family', attr: 'val'})},\n outline: {prop: 'outline', xform: new BooleanXform({tag: 'outline', attr: 'val'})},\n vertAlign: {prop: 'vertAlign', xform: new StringXform({tag: 'vertAlign', attr: 'val'})},\n scheme: {prop: 'scheme', xform: new StringXform({tag: 'scheme', attr: 'val'})},\n shadow: {prop: 'shadow', xform: new BooleanXform({tag: 'shadow', attr: 'val'})},\n strike: {prop: 'strike', xform: new BooleanXform({tag: 'strike', attr: 'val'})},\n sz: {prop: 'size', xform: new IntegerXform({tag: 'sz', attr: 'val'})},\n };\n this.map[this.options.fontNameTag] = {\n prop: 'name',\n xform: new StringXform({tag: this.options.fontNameTag, attr: 'val'}),\n };\n }\n\n get tag() {\n return this.options.tagName;\n }\n\n render(xmlStream, model) {\n const {map} = this;\n\n xmlStream.openNode(this.options.tagName);\n _.each(this.map, (defn, tag) => {\n map[tag].xform.render(xmlStream, model[defn.prop]);\n });\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (this.map[node.name]) {\n this.parser = this.map[node.name].xform;\n return this.parser.parseOpen(node);\n }\n switch (node.name) {\n case this.options.tagName:\n this.model = {};\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser && !this.parser.parseClose(name)) {\n const item = this.map[name];\n if (this.parser.model) {\n this.model[item.prop] = this.parser.model;\n }\n this.parser = undefined;\n return true;\n }\n switch (name) {\n case this.options.tagName:\n return false;\n default:\n return true;\n }\n }\n}\n\nFontXform.OPTIONS = {\n tagName: 'font',\n fontNameTag: 'name',\n};\n\nmodule.exports = FontXform;\n","const _ = require('../../../utils/under-dash');\nconst defaultNumFormats = require('../../defaultnumformats');\n\nconst BaseXform = require('../base-xform');\n\nfunction hashDefaultFormats() {\n const hash = {};\n _.each(defaultNumFormats, (dnf, id) => {\n if (dnf.f) {\n hash[dnf.f] = parseInt(id, 10);\n }\n // at some point, add the other cultures here...\n });\n return hash;\n}\nconst defaultFmtHash = hashDefaultFormats();\n\n// NumFmt encapsulates translation between number format and xlsx\nclass NumFmtXform extends BaseXform {\n constructor(id, formatCode) {\n super();\n\n this.id = id;\n this.formatCode = formatCode;\n }\n\n get tag() {\n return 'numFmt';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode('numFmt', {numFmtId: model.id, formatCode: model.formatCode});\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'numFmt':\n this.model = {\n id: parseInt(node.attributes.numFmtId, 10),\n formatCode: node.attributes.formatCode.replace(/[\\\\](.)/g, '$1'),\n };\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nNumFmtXform.getDefaultFmtId = function getDefaultFmtId(formatCode) {\n return defaultFmtHash[formatCode];\n};\n\nNumFmtXform.getDefaultFmtCode = function getDefaultFmtCode(numFmtId) {\n return defaultNumFormats[numFmtId] && defaultNumFormats[numFmtId].f;\n};\n\nmodule.exports = NumFmtXform;\n","const BaseXform = require('../base-xform');\n\nconst validation = {\n boolean(value, dflt) {\n if (value === undefined) {\n return dflt;\n }\n return value;\n },\n};\n\n// Protection encapsulates translation from style.protection model to/from xlsx\nclass ProtectionXform extends BaseXform {\n get tag() {\n return 'protection';\n }\n\n render(xmlStream, model) {\n xmlStream.addRollback();\n xmlStream.openNode('protection');\n\n let isValid = false;\n function add(name, value) {\n if (value !== undefined) {\n xmlStream.addAttribute(name, value);\n isValid = true;\n }\n }\n add('locked', validation.boolean(model.locked, true) ? undefined : '0');\n add('hidden', validation.boolean(model.hidden, false) ? '1' : undefined);\n\n xmlStream.closeNode();\n\n if (isValid) {\n xmlStream.commit();\n } else {\n xmlStream.rollback();\n }\n }\n\n parseOpen(node) {\n const model = {\n locked: !(node.attributes.locked === '0'),\n hidden: node.attributes.hidden === '1',\n };\n\n // only want to record models that differ from defaults\n const isSignificant = !model.locked || model.hidden;\n\n this.model = isSignificant ? model : null;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = ProtectionXform;\n","const BaseXform = require('../base-xform');\n\nconst AlignmentXform = require('./alignment-xform');\nconst ProtectionXform = require('./protection-xform');\n\n// \n// Optional \n// Optional \n// \n\n// Style assists translation from style model to/from xlsx\nclass StyleXform extends BaseXform {\n constructor(options) {\n super();\n\n this.xfId = !!(options && options.xfId);\n this.map = {\n alignment: new AlignmentXform(),\n protection: new ProtectionXform(),\n };\n }\n\n get tag() {\n return 'xf';\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('xf', {\n numFmtId: model.numFmtId || 0,\n fontId: model.fontId || 0,\n fillId: model.fillId || 0,\n borderId: model.borderId || 0,\n });\n if (this.xfId) {\n xmlStream.addAttribute('xfId', model.xfId || 0);\n }\n\n if (model.numFmtId) {\n xmlStream.addAttribute('applyNumberFormat', '1');\n }\n if (model.fontId) {\n xmlStream.addAttribute('applyFont', '1');\n }\n if (model.fillId) {\n xmlStream.addAttribute('applyFill', '1');\n }\n if (model.borderId) {\n xmlStream.addAttribute('applyBorder', '1');\n }\n if (model.alignment) {\n xmlStream.addAttribute('applyAlignment', '1');\n }\n if (model.protection) {\n xmlStream.addAttribute('applyProtection', '1');\n }\n\n /**\n * Rendering tags causes close of XML stream.\n * Therefore adding attributes must be done before rendering tags.\n */\n\n if (model.alignment) {\n this.map.alignment.render(xmlStream, model.alignment);\n }\n if (model.protection) {\n this.map.protection.render(xmlStream, model.protection);\n }\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n // used during sax parsing of xml to build font object\n switch (node.name) {\n case 'xf':\n this.model = {\n numFmtId: parseInt(node.attributes.numFmtId, 10),\n fontId: parseInt(node.attributes.fontId, 10),\n fillId: parseInt(node.attributes.fillId, 10),\n borderId: parseInt(node.attributes.borderId, 10),\n };\n if (this.xfId) {\n this.model.xfId = parseInt(node.attributes.xfId, 10);\n }\n return true;\n case 'alignment':\n this.parser = this.map.alignment;\n this.parser.parseOpen(node);\n return true;\n case 'protection':\n this.parser = this.map.protection;\n this.parser.parseOpen(node);\n return true;\n default:\n return false;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n if (this.map.protection === this.parser) {\n this.model.protection = this.parser.model;\n } else {\n this.model.alignment = this.parser.model;\n }\n this.parser = undefined;\n }\n return true;\n }\n return name !== 'xf';\n }\n}\n\nmodule.exports = StyleXform;\n","/* eslint-disable max-classes-per-file */\nconst Enums = require('../../../doc/enums');\nconst XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst StaticXform = require('../static-xform');\nconst ListXform = require('../list-xform');\nconst FontXform = require('./font-xform');\nconst FillXform = require('./fill-xform');\nconst BorderXform = require('./border-xform');\nconst NumFmtXform = require('./numfmt-xform');\nconst StyleXform = require('./style-xform');\nconst DxfXform = require('./dxf-xform');\n\n// custom numfmt ids start here\nconst NUMFMT_BASE = 164;\n\n// =============================================================================\n// StylesXform is used to generate and parse the styles.xml file\n// it manages the collections of fonts, number formats, alignments, etc\nclass StylesXform extends BaseXform {\n constructor(initialise) {\n super();\n\n this.map = {\n numFmts: new ListXform({tag: 'numFmts', count: true, childXform: new NumFmtXform()}),\n fonts: new ListXform({\n tag: 'fonts',\n count: true,\n childXform: new FontXform(),\n $: {'x14ac:knownFonts': 1},\n }),\n fills: new ListXform({tag: 'fills', count: true, childXform: new FillXform()}),\n borders: new ListXform({tag: 'borders', count: true, childXform: new BorderXform()}),\n cellStyleXfs: new ListXform({tag: 'cellStyleXfs', count: true, childXform: new StyleXform()}),\n cellXfs: new ListXform({\n tag: 'cellXfs',\n count: true,\n childXform: new StyleXform({xfId: true}),\n }),\n dxfs: new ListXform({tag: 'dxfs', always: true, count: true, childXform: new DxfXform()}),\n\n // for style manager\n numFmt: new NumFmtXform(),\n font: new FontXform(),\n fill: new FillXform(),\n border: new BorderXform(),\n style: new StyleXform({xfId: true}),\n\n cellStyles: StylesXform.STATIC_XFORMS.cellStyles,\n tableStyles: StylesXform.STATIC_XFORMS.tableStyles,\n extLst: StylesXform.STATIC_XFORMS.extLst,\n };\n\n if (initialise) {\n // StylesXform also acts as style manager and is used to build up styles-model during worksheet processing\n this.init();\n }\n }\n\n initIndex() {\n this.index = {\n style: {},\n numFmt: {},\n numFmtNextId: 164, // start custom format ids here\n font: {},\n border: {},\n fill: {},\n };\n }\n\n init() {\n // Prepare for Style Manager role\n this.model = {\n styles: [],\n numFmts: [],\n fonts: [],\n borders: [],\n fills: [],\n dxfs: [],\n };\n\n this.initIndex();\n\n // default (zero) border\n this._addBorder({});\n\n // add default (all zero) style\n this._addStyle({numFmtId: 0, fontId: 0, fillId: 0, borderId: 0, xfId: 0});\n\n // add default fills\n this._addFill({type: 'pattern', pattern: 'none'});\n this._addFill({type: 'pattern', pattern: 'gray125'});\n\n this.weakMap = new WeakMap();\n }\n\n render(xmlStream, model) {\n model = model || this.model;\n //\n // \n xmlStream.openXml(XmlStream.StdDocAttributes);\n\n xmlStream.openNode('styleSheet', StylesXform.STYLESHEET_ATTRIBUTES);\n\n if (this.index) {\n // model has been built by style manager role (contains xml)\n if (model.numFmts && model.numFmts.length) {\n xmlStream.openNode('numFmts', {count: model.numFmts.length});\n model.numFmts.forEach(numFmtXml => {\n xmlStream.writeXml(numFmtXml);\n });\n xmlStream.closeNode();\n }\n\n if (!model.fonts.length) {\n // default (zero) font\n this._addFont({size: 11, color: {theme: 1}, name: 'Calibri', family: 2, scheme: 'minor'});\n }\n xmlStream.openNode('fonts', {count: model.fonts.length, 'x14ac:knownFonts': 1});\n model.fonts.forEach(fontXml => {\n xmlStream.writeXml(fontXml);\n });\n xmlStream.closeNode();\n\n xmlStream.openNode('fills', {count: model.fills.length});\n model.fills.forEach(fillXml => {\n xmlStream.writeXml(fillXml);\n });\n xmlStream.closeNode();\n\n xmlStream.openNode('borders', {count: model.borders.length});\n model.borders.forEach(borderXml => {\n xmlStream.writeXml(borderXml);\n });\n xmlStream.closeNode();\n\n this.map.cellStyleXfs.render(xmlStream, [{numFmtId: 0, fontId: 0, fillId: 0, borderId: 0, xfId: 0}]);\n\n xmlStream.openNode('cellXfs', {count: model.styles.length});\n model.styles.forEach(styleXml => {\n xmlStream.writeXml(styleXml);\n });\n xmlStream.closeNode();\n } else {\n // model is plain JSON and needs to be xformed\n this.map.numFmts.render(xmlStream, model.numFmts);\n this.map.fonts.render(xmlStream, model.fonts);\n this.map.fills.render(xmlStream, model.fills);\n this.map.borders.render(xmlStream, model.borders);\n this.map.cellStyleXfs.render(xmlStream, [{numFmtId: 0, fontId: 0, fillId: 0, borderId: 0, xfId: 0}]);\n this.map.cellXfs.render(xmlStream, model.styles);\n }\n\n StylesXform.STATIC_XFORMS.cellStyles.render(xmlStream);\n\n this.map.dxfs.render(xmlStream, model.dxfs);\n\n StylesXform.STATIC_XFORMS.tableStyles.render(xmlStream);\n StylesXform.STATIC_XFORMS.extLst.render(xmlStream);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case 'styleSheet':\n this.initIndex();\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n return true;\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case 'styleSheet': {\n this.model = {};\n const add = (propName, xform) => {\n if (xform.model && xform.model.length) {\n this.model[propName] = xform.model;\n }\n };\n add('numFmts', this.map.numFmts);\n add('fonts', this.map.fonts);\n add('fills', this.map.fills);\n add('borders', this.map.borders);\n add('styles', this.map.cellXfs);\n add('dxfs', this.map.dxfs);\n\n // index numFmts\n this.index = {\n model: [],\n numFmt: [],\n };\n if (this.model.numFmts) {\n const numFmtIndex = this.index.numFmt;\n this.model.numFmts.forEach(numFmt => {\n numFmtIndex[numFmt.id] = numFmt.formatCode;\n });\n }\n\n return false;\n }\n default:\n // not quite sure how we get here!\n return true;\n }\n }\n\n // add a cell's style model to the collection\n // each style property is processed and cross-referenced, etc.\n // the styleId is returned. Note: cellType is used when numFmt not defined\n addStyleModel(model, cellType) {\n if (!model) {\n return 0;\n }\n\n // if we have no default font, add it here now\n if (!this.model.fonts.length) {\n // default (zero) font\n this._addFont({size: 11, color: {theme: 1}, name: 'Calibri', family: 2, scheme: 'minor'});\n }\n\n // if we have seen this style object before, assume it has the same styleId\n if (this.weakMap && this.weakMap.has(model)) {\n return this.weakMap.get(model);\n }\n\n const style = {};\n cellType = cellType || Enums.ValueType.Number;\n\n if (model.numFmt) {\n style.numFmtId = this._addNumFmtStr(model.numFmt);\n } else {\n switch (cellType) {\n case Enums.ValueType.Number:\n style.numFmtId = this._addNumFmtStr('General');\n break;\n case Enums.ValueType.Date:\n style.numFmtId = this._addNumFmtStr('mm-dd-yy');\n break;\n default:\n break;\n }\n }\n\n if (model.font) {\n style.fontId = this._addFont(model.font);\n }\n\n if (model.border) {\n style.borderId = this._addBorder(model.border);\n }\n\n if (model.fill) {\n style.fillId = this._addFill(model.fill);\n }\n\n if (model.alignment) {\n style.alignment = model.alignment;\n }\n\n if (model.protection) {\n style.protection = model.protection;\n }\n\n const styleId = this._addStyle(style);\n if (this.weakMap) {\n this.weakMap.set(model, styleId);\n }\n return styleId;\n }\n\n // given a styleId (i.e. s=\"n\"), get the cell's style model\n // objects are shared where possible.\n getStyleModel(id) {\n // if the style doesn't exist return null\n const style = this.model.styles[id];\n if (!style) return null;\n\n // have we built this model before?\n let model = this.index.model[id];\n if (model) return model;\n\n // build a new model\n model = this.index.model[id] = {};\n\n // -------------------------------------------------------\n // number format\n if (style.numFmtId) {\n const numFmt = this.index.numFmt[style.numFmtId] || NumFmtXform.getDefaultFmtCode(style.numFmtId);\n if (numFmt) {\n model.numFmt = numFmt;\n }\n }\n\n function addStyle(name, group, styleId) {\n if (styleId || styleId === 0) {\n const part = group[styleId];\n if (part) {\n model[name] = part;\n }\n }\n }\n\n addStyle('font', this.model.fonts, style.fontId);\n addStyle('border', this.model.borders, style.borderId);\n addStyle('fill', this.model.fills, style.fillId);\n\n // -------------------------------------------------------\n // alignment\n if (style.alignment) {\n model.alignment = style.alignment;\n }\n\n // -------------------------------------------------------\n // protection\n if (style.protection) {\n model.protection = style.protection;\n }\n\n return model;\n }\n\n addDxfStyle(style) {\n if (style.numFmt) {\n // register numFmtId to use it during dxf-xform rendering\n style.numFmtId = this._addNumFmtStr(style.numFmt);\n }\n\n this.model.dxfs.push(style);\n return this.model.dxfs.length - 1;\n }\n\n getDxfStyle(id) {\n return this.model.dxfs[id];\n }\n\n // =========================================================================\n // Private Interface\n _addStyle(style) {\n const xml = this.map.style.toXml(style);\n let index = this.index.style[xml];\n if (index === undefined) {\n index = this.index.style[xml] = this.model.styles.length;\n this.model.styles.push(xml);\n }\n return index;\n }\n\n // =========================================================================\n // Number Formats\n _addNumFmtStr(formatCode) {\n // check if default format\n let index = NumFmtXform.getDefaultFmtId(formatCode);\n if (index !== undefined) return index;\n\n // check if already in\n index = this.index.numFmt[formatCode];\n if (index !== undefined) return index;\n\n index = this.index.numFmt[formatCode] = NUMFMT_BASE + this.model.numFmts.length;\n const xml = this.map.numFmt.toXml({id: index, formatCode});\n this.model.numFmts.push(xml);\n return index;\n }\n\n // =========================================================================\n // Fonts\n _addFont(font) {\n const xml = this.map.font.toXml(font);\n let index = this.index.font[xml];\n if (index === undefined) {\n index = this.index.font[xml] = this.model.fonts.length;\n this.model.fonts.push(xml);\n }\n return index;\n }\n\n // =========================================================================\n // Borders\n _addBorder(border) {\n const xml = this.map.border.toXml(border);\n let index = this.index.border[xml];\n if (index === undefined) {\n index = this.index.border[xml] = this.model.borders.length;\n this.model.borders.push(xml);\n }\n return index;\n }\n\n // =========================================================================\n // Fills\n _addFill(fill) {\n const xml = this.map.fill.toXml(fill);\n let index = this.index.fill[xml];\n if (index === undefined) {\n index = this.index.fill[xml] = this.model.fills.length;\n this.model.fills.push(xml);\n }\n return index;\n }\n\n // =========================================================================\n}\n\nStylesXform.STYLESHEET_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'mc:Ignorable': 'x14ac x16r2',\n 'xmlns:x14ac': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',\n 'xmlns:x16r2': 'http://schemas.microsoft.com/office/spreadsheetml/2015/02/main',\n};\nStylesXform.STATIC_XFORMS = {\n cellStyles: new StaticXform({\n tag: 'cellStyles',\n $: {count: 1},\n c: [{tag: 'cellStyle', $: {name: 'Normal', xfId: 0, builtinId: 0}}],\n }),\n dxfs: new StaticXform({tag: 'dxfs', $: {count: 0}}),\n tableStyles: new StaticXform({\n tag: 'tableStyles',\n $: {count: 0, defaultTableStyle: 'TableStyleMedium2', defaultPivotStyle: 'PivotStyleLight16'},\n }),\n extLst: new StaticXform({\n tag: 'extLst',\n c: [\n {\n tag: 'ext',\n $: {\n uri: '{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}',\n 'xmlns:x14': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main',\n },\n c: [{tag: 'x14:slicerStyles', $: {defaultSlicerStyle: 'SlicerStyleLight1'}}],\n },\n {\n tag: 'ext',\n $: {\n uri: '{9260A510-F301-46a8-8635-F512D64BE5F5}',\n 'xmlns:x15': 'http://schemas.microsoft.com/office/spreadsheetml/2010/11/main',\n },\n c: [{tag: 'x15:timelineStyles', $: {defaultTimelineStyle: 'TimeSlicerStyleLight1'}}],\n },\n ],\n }),\n};\n\n// the stylemanager mock acts like StyleManager except that it always returns 0 or {}\nclass StylesXformMock extends StylesXform {\n constructor() {\n super();\n\n this.model = {\n styles: [{numFmtId: 0, fontId: 0, fillId: 0, borderId: 0, xfId: 0}],\n numFmts: [],\n fonts: [{size: 11, color: {theme: 1}, name: 'Calibri', family: 2, scheme: 'minor'}],\n borders: [{}],\n fills: [\n {type: 'pattern', pattern: 'none'},\n {type: 'pattern', pattern: 'gray125'},\n ],\n };\n }\n\n // =========================================================================\n // Style Manager Interface\n\n // override normal behaviour - consume and dispose\n parseStream(stream) {\n stream.autodrain();\n return Promise.resolve();\n }\n\n // add a cell's style model to the collection\n // each style property is processed and cross-referenced, etc.\n // the styleId is returned. Note: cellType is used when numFmt not defined\n addStyleModel(model, cellType) {\n switch (cellType) {\n case Enums.ValueType.Date:\n return this.dateStyleId;\n default:\n return 0;\n }\n }\n\n get dateStyleId() {\n if (!this._dateStyleId) {\n const dateStyle = {\n numFmtId: NumFmtXform.getDefaultFmtId('mm-dd-yy'),\n };\n this._dateStyleId = this.model.styles.length;\n this.model.styles.push(dateStyle);\n }\n return this._dateStyleId;\n }\n\n // given a styleId (i.e. s=\"n\"), get the cell's style model\n // objects are shared where possible.\n getStyleModel(/* id */) {\n return {};\n }\n}\n\nStylesXform.Mock = StylesXformMock;\n\nmodule.exports = StylesXform;\n","const BaseXform = require('../base-xform');\n\nclass UnderlineXform extends BaseXform {\n constructor(model) {\n super();\n\n this.model = model;\n }\n\n get tag() {\n return 'u';\n }\n\n render(xmlStream, model) {\n model = model || this.model;\n\n if (model === true) {\n xmlStream.leafNode('u');\n } else {\n const attr = UnderlineXform.Attributes[model];\n if (attr) {\n xmlStream.leafNode('u', attr);\n }\n }\n }\n\n parseOpen(node) {\n if (node.name === 'u') {\n this.model = node.attributes.val || true;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nUnderlineXform.Attributes = {\n single: {},\n double: {val: 'double'},\n singleAccounting: {val: 'singleAccounting'},\n doubleAccounting: {val: 'doubleAccounting'},\n};\n\nmodule.exports = UnderlineXform;\n","const BaseXform = require('../base-xform');\n\nconst FilterColumnXform = require('./filter-column-xform');\n\nclass AutoFilterXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n filterColumn: new FilterColumnXform(),\n };\n }\n\n get tag() {\n return 'autoFilter';\n }\n\n prepare(model) {\n model.columns.forEach((column, index) => {\n this.map.filterColumn.prepare(column, {index});\n });\n }\n\n render(xmlStream, model) {\n xmlStream.openNode(this.tag, {ref: model.autoFilterRef});\n\n model.columns.forEach(column => {\n this.map.filterColumn.render(xmlStream, column);\n });\n\n xmlStream.closeNode();\n return true;\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n switch (node.name) {\n case this.tag:\n this.model = {\n autoFilterRef: node.attributes.ref,\n columns: [],\n };\n return true;\n\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parseOpen(node);\n return true;\n }\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.columns.push(this.parser.model);\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n return false;\n default:\n throw new Error(`Unexpected xml node in parseClose: ${name}`);\n }\n }\n}\n\nmodule.exports = AutoFilterXform;\n","const BaseXform = require('../base-xform');\n\nclass CustomFilterXform extends BaseXform {\n get tag() {\n return 'customFilter';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n val: model.val,\n operator: model.operator,\n });\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = {\n val: node.attributes.val,\n operator: node.attributes.operator,\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = CustomFilterXform;\n","const BaseXform = require('../base-xform');\nconst ListXform = require('../list-xform');\n\nconst CustomFilterXform = require('./custom-filter-xform');\nconst FilterXform = require('./filter-xform');\n\nclass FilterColumnXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n customFilters: new ListXform({\n tag: 'customFilters',\n count: false,\n empty: true,\n childXform: new CustomFilterXform(),\n }),\n filters: new ListXform({\n tag: 'filters',\n count: false,\n empty: true,\n childXform: new FilterXform(),\n }),\n };\n }\n\n get tag() {\n return 'filterColumn';\n }\n\n prepare(model, options) {\n model.colId = options.index.toString();\n }\n\n render(xmlStream, model) {\n if (model.customFilters) {\n xmlStream.openNode(this.tag, {\n colId: model.colId,\n hiddenButton: model.filterButton ? '0' : '1',\n });\n\n this.map.customFilters.render(xmlStream, model.customFilters);\n\n xmlStream.closeNode();\n return true;\n }\n xmlStream.leafNode(this.tag, {\n colId: model.colId,\n hiddenButton: model.filterButton ? '0' : '1',\n });\n return true;\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n const {attributes} = node;\n switch (node.name) {\n case this.tag:\n this.model = {\n filterButton: attributes.hiddenButton === '0',\n };\n return true;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parseOpen(node);\n return true;\n }\n throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.customFilters = this.map.customFilters.model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n}\n\nmodule.exports = FilterColumnXform;\n","const BaseXform = require('../base-xform');\n\nclass FilterXform extends BaseXform {\n get tag() {\n return 'filter';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n val: model.val,\n });\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n this.model = {\n val: node.attributes.val,\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = FilterXform;\n","const BaseXform = require('../base-xform');\n\nclass TableColumnXform extends BaseXform {\n get tag() {\n return 'tableColumn';\n }\n\n prepare(model, options) {\n model.id = options.index + 1;\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n id: model.id.toString(),\n name: model.name,\n totalsRowLabel: model.totalsRowLabel,\n totalsRowFunction: model.totalsRowFunction,\n dxfId: model.dxfId,\n });\n return true;\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n const {attributes} = node;\n this.model = {\n name: attributes.name,\n totalsRowLabel: attributes.totalsRowLabel,\n totalsRowFunction: attributes.totalsRowFunction,\n dxfId: attributes.dxfId,\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = TableColumnXform;\n","const BaseXform = require('../base-xform');\n\nclass TableStyleInfoXform extends BaseXform {\n get tag() {\n return 'tableStyleInfo';\n }\n\n render(xmlStream, model) {\n xmlStream.leafNode(this.tag, {\n name: model.theme ? model.theme : undefined,\n showFirstColumn: model.showFirstColumn ? '1' : '0',\n showLastColumn: model.showLastColumn ? '1' : '0',\n showRowStripes: model.showRowStripes ? '1' : '0',\n showColumnStripes: model.showColumnStripes ? '1' : '0',\n });\n return true;\n }\n\n parseOpen(node) {\n if (node.name === this.tag) {\n const {attributes} = node;\n this.model = {\n theme: attributes.name ? attributes.name : null,\n showFirstColumn: attributes.showFirstColumn === '1',\n showLastColumn: attributes.showLastColumn === '1',\n showRowStripes: attributes.showRowStripes === '1',\n showColumnStripes: attributes.showColumnStripes === '1',\n };\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = TableStyleInfoXform;\n","const XmlStream = require('../../../utils/xml-stream');\n\nconst BaseXform = require('../base-xform');\nconst ListXform = require('../list-xform');\n\nconst AutoFilterXform = require('./auto-filter-xform');\nconst TableColumnXform = require('./table-column-xform');\nconst TableStyleInfoXform = require('./table-style-info-xform');\n\nclass TableXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n autoFilter: new AutoFilterXform(),\n tableColumns: new ListXform({\n tag: 'tableColumns',\n count: true,\n empty: true,\n childXform: new TableColumnXform(),\n }),\n tableStyleInfo: new TableStyleInfoXform(),\n };\n }\n\n prepare(model, options) {\n this.map.autoFilter.prepare(model);\n this.map.tableColumns.prepare(model.columns, options);\n }\n\n get tag() {\n return 'table';\n }\n\n render(xmlStream, model) {\n xmlStream.openXml(XmlStream.StdDocAttributes);\n xmlStream.openNode(this.tag, {\n ...TableXform.TABLE_ATTRIBUTES,\n id: model.id,\n name: model.name,\n displayName: model.displayName || model.name,\n ref: model.tableRef,\n totalsRowCount: model.totalsRow ? '1' : undefined,\n totalsRowShown: model.totalsRow ? undefined : '1',\n headerRowCount: model.headerRow ? '1' : '0',\n });\n\n this.map.autoFilter.render(xmlStream, model);\n this.map.tableColumns.render(xmlStream, model.columns);\n this.map.tableStyleInfo.render(xmlStream, model.style);\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n const {name, attributes} = node;\n switch (name) {\n case this.tag:\n this.reset();\n this.model = {\n name: attributes.name,\n displayName: attributes.displayName || attributes.name,\n tableRef: attributes.ref,\n totalsRow: attributes.totalsRowCount === '1',\n headerRow: attributes.headerRowCount === '1',\n };\n break;\n default:\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n }\n break;\n }\n return true;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n switch (name) {\n case this.tag:\n this.model.columns = this.map.tableColumns.model;\n if (this.map.autoFilter.model) {\n this.model.autoFilterRef = this.map.autoFilter.model.autoFilterRef;\n this.map.autoFilter.model.columns.forEach((column, index) => {\n this.model.columns[index].filterButton = column.filterButton;\n });\n }\n this.model.style = this.map.tableStyleInfo.model;\n return false;\n default:\n // could be some unrecognised tags\n return true;\n }\n }\n\n reconcile(model, options) {\n // fetch the dfxs from styles\n model.columns.forEach(column => {\n if (column.dxfId !== undefined) {\n column.style = options.styles.getDxfStyle(column.dxfId);\n }\n });\n }\n}\n\nTableXform.TABLE_ATTRIBUTES = {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'mc:Ignorable': 'xr xr3',\n 'xmlns:xr': 'http://schemas.microsoft.com/office/spreadsheetml/2014/revision',\n 'xmlns:xr3': 'http://schemas.microsoft.com/office/spreadsheetml/2016/revision3',\n // 'xr:uid': '{00000000-000C-0000-FFFF-FFFF00000000}',\n};\n\nmodule.exports = TableXform;\n","const fs = require('fs');\nconst JSZip = require('jszip');\nconst {PassThrough} = require('readable-stream');\nconst ZipStream = require('../utils/zip-stream');\nconst StreamBuf = require('../utils/stream-buf');\n\nconst utils = require('../utils/utils');\nconst XmlStream = require('../utils/xml-stream');\nconst {bufferToString} = require('../utils/browser-buffer-decode');\n\nconst StylesXform = require('./xform/style/styles-xform');\n\nconst CoreXform = require('./xform/core/core-xform');\nconst SharedStringsXform = require('./xform/strings/shared-strings-xform');\nconst RelationshipsXform = require('./xform/core/relationships-xform');\nconst ContentTypesXform = require('./xform/core/content-types-xform');\nconst AppXform = require('./xform/core/app-xform');\nconst WorkbookXform = require('./xform/book/workbook-xform');\nconst WorksheetXform = require('./xform/sheet/worksheet-xform');\nconst DrawingXform = require('./xform/drawing/drawing-xform');\nconst TableXform = require('./xform/table/table-xform');\nconst CommentsXform = require('./xform/comment/comments-xform');\nconst VmlNotesXform = require('./xform/comment/vml-notes-xform');\n\nconst theme1Xml = require('./xml/theme1');\n\nfunction fsReadFileAsync(filename, options) {\n return new Promise((resolve, reject) => {\n fs.readFile(filename, options, (error, data) => {\n if (error) {\n reject(error);\n } else {\n resolve(data);\n }\n });\n });\n}\n\nclass XLSX {\n constructor(workbook) {\n this.workbook = workbook;\n }\n\n // ===============================================================================\n // Workbook\n // =========================================================================\n // Read\n\n async readFile(filename, options) {\n if (!(await utils.fs.exists(filename))) {\n throw new Error(`File not found: ${filename}`);\n }\n const stream = fs.createReadStream(filename);\n try {\n const workbook = await this.read(stream, options);\n stream.close();\n return workbook;\n } catch (error) {\n stream.close();\n throw error;\n }\n }\n\n parseRels(stream) {\n const xform = new RelationshipsXform();\n return xform.parseStream(stream);\n }\n\n parseWorkbook(stream) {\n const xform = new WorkbookXform();\n return xform.parseStream(stream);\n }\n\n parseSharedStrings(stream) {\n const xform = new SharedStringsXform();\n return xform.parseStream(stream);\n }\n\n reconcile(model, options) {\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform(options);\n const drawingXform = new DrawingXform();\n const tableXform = new TableXform();\n\n workbookXform.reconcile(model);\n\n // reconcile drawings with their rels\n const drawingOptions = {\n media: model.media,\n mediaIndex: model.mediaIndex,\n };\n Object.keys(model.drawings).forEach(name => {\n const drawing = model.drawings[name];\n const drawingRel = model.drawingRels[name];\n if (drawingRel) {\n drawingOptions.rels = drawingRel.reduce((o, rel) => {\n o[rel.Id] = rel;\n return o;\n }, {});\n (drawing.anchors || []).forEach(anchor => {\n const hyperlinks = anchor.picture && anchor.picture.hyperlinks;\n if (hyperlinks && drawingOptions.rels[hyperlinks.rId]) {\n hyperlinks.hyperlink = drawingOptions.rels[hyperlinks.rId].Target;\n delete hyperlinks.rId;\n }\n });\n drawingXform.reconcile(drawing, drawingOptions);\n }\n });\n\n // reconcile tables with the default styles\n const tableOptions = {\n styles: model.styles,\n };\n Object.values(model.tables).forEach(table => {\n tableXform.reconcile(table, tableOptions);\n });\n\n const sheetOptions = {\n styles: model.styles,\n sharedStrings: model.sharedStrings,\n media: model.media,\n mediaIndex: model.mediaIndex,\n date1904: model.properties && model.properties.date1904,\n drawings: model.drawings,\n comments: model.comments,\n tables: model.tables,\n vmlDrawings: model.vmlDrawings,\n };\n model.worksheets.forEach(worksheet => {\n worksheet.relationships = model.worksheetRels[worksheet.sheetNo];\n worksheetXform.reconcile(worksheet, sheetOptions);\n });\n\n // delete unnecessary parts\n delete model.worksheetHash;\n delete model.worksheetRels;\n delete model.globalRels;\n delete model.sharedStrings;\n delete model.workbookRels;\n delete model.sheetDefs;\n delete model.styles;\n delete model.mediaIndex;\n delete model.drawings;\n delete model.drawingRels;\n delete model.vmlDrawings;\n }\n\n async _processWorksheetEntry(stream, model, sheetNo, options, path) {\n const xform = new WorksheetXform(options);\n const worksheet = await xform.parseStream(stream);\n worksheet.sheetNo = sheetNo;\n model.worksheetHash[path] = worksheet;\n model.worksheets.push(worksheet);\n }\n\n async _processCommentEntry(stream, model, name) {\n const xform = new CommentsXform();\n const comments = await xform.parseStream(stream);\n model.comments[`../${name}.xml`] = comments;\n }\n\n async _processTableEntry(stream, model, name) {\n const xform = new TableXform();\n const table = await xform.parseStream(stream);\n model.tables[`../tables/${name}.xml`] = table;\n }\n\n async _processWorksheetRelsEntry(stream, model, sheetNo) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(stream);\n model.worksheetRels[sheetNo] = relationships;\n }\n\n async _processMediaEntry(entry, model, filename) {\n const lastDot = filename.lastIndexOf('.');\n // if we can't determine extension, ignore it\n if (lastDot >= 1) {\n const extension = filename.substr(lastDot + 1);\n const name = filename.substr(0, lastDot);\n await new Promise((resolve, reject) => {\n const streamBuf = new StreamBuf();\n streamBuf.on('finish', () => {\n model.mediaIndex[filename] = model.media.length;\n model.mediaIndex[name] = model.media.length;\n const medium = {\n type: 'image',\n name,\n extension,\n buffer: streamBuf.toBuffer(),\n };\n model.media.push(medium);\n resolve();\n });\n entry.on('error', error => {\n reject(error);\n });\n entry.pipe(streamBuf);\n });\n }\n }\n\n async _processDrawingEntry(entry, model, name) {\n const xform = new DrawingXform();\n const drawing = await xform.parseStream(entry);\n model.drawings[name] = drawing;\n }\n\n async _processDrawingRelsEntry(entry, model, name) {\n const xform = new RelationshipsXform();\n const relationships = await xform.parseStream(entry);\n model.drawingRels[name] = relationships;\n }\n\n async _processVmlDrawingEntry(entry, model, name) {\n const xform = new VmlNotesXform();\n const vmlDrawing = await xform.parseStream(entry);\n model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;\n }\n\n async _processThemeEntry(entry, model, name) {\n await new Promise((resolve, reject) => {\n // TODO: stream entry into buffer and store the xml in the model.themes[]\n const stream = new StreamBuf();\n entry.on('error', reject);\n stream.on('error', reject);\n stream.on('finish', () => {\n model.themes[name] = stream.read().toString();\n resolve();\n });\n entry.pipe(stream);\n });\n }\n\n /**\n * @deprecated since version 4.0. You should use `#read` instead. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md\n */\n createInputStream() {\n throw new Error(\n '`XLSX#createInputStream` is deprecated. You should use `XLSX#read` instead. This method will be removed in version 5.0. Please follow upgrade instruction: https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md'\n );\n }\n\n async read(stream, options) {\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old streams\n if (!stream[Symbol.asyncIterator] && stream.pipe) {\n stream = stream.pipe(new PassThrough());\n }\n const chunks = [];\n for await (const chunk of stream) {\n chunks.push(chunk);\n }\n return this.load(Buffer.concat(chunks), options);\n }\n\n async load(data, options) {\n let buffer;\n if (options && options.base64) {\n buffer = Buffer.from(data.toString(), 'base64');\n } else {\n buffer = data;\n }\n\n const model = {\n worksheets: [],\n worksheetHash: {},\n worksheetRels: [],\n themes: {},\n media: [],\n mediaIndex: {},\n drawings: {},\n drawingRels: {},\n comments: {},\n tables: {},\n vmlDrawings: {},\n };\n\n const zip = await JSZip.loadAsync(buffer);\n for (const entry of Object.values(zip.files)) {\n /* eslint-disable no-await-in-loop */\n if (!entry.dir) {\n let entryName = entry.name;\n if (entryName[0] === '/') {\n entryName = entryName.substr(1);\n }\n let stream;\n if (\n entryName.match(/xl\\/media\\//) ||\n // themes are not parsed as stream\n entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/)\n ) {\n stream = new PassThrough();\n stream.write(await entry.async('nodebuffer'));\n } else {\n // use object mode to avoid buffer-string convention\n stream = new PassThrough({\n writableObjectMode: true,\n readableObjectMode: true,\n });\n let content;\n // https://www.npmjs.com/package/process\n if (process.browser) {\n // running in browser, use TextDecoder if possible\n content = bufferToString(await entry.async('nodebuffer'));\n } else {\n // running in node.js\n content = await entry.async('string');\n }\n const chunkSize = 16 * 1024;\n for (let i = 0; i < content.length; i += chunkSize) {\n stream.write(content.substring(i, i + chunkSize));\n }\n }\n stream.end();\n switch (entryName) {\n case '_rels/.rels':\n model.globalRels = await this.parseRels(stream);\n break;\n\n case 'xl/workbook.xml': {\n const workbook = await this.parseWorkbook(stream);\n model.sheets = workbook.sheets;\n model.definedNames = workbook.definedNames;\n model.views = workbook.views;\n model.properties = workbook.properties;\n model.calcProperties = workbook.calcProperties;\n break;\n }\n\n case 'xl/_rels/workbook.xml.rels':\n model.workbookRels = await this.parseRels(stream);\n break;\n\n case 'xl/sharedStrings.xml':\n model.sharedStrings = new SharedStringsXform();\n await model.sharedStrings.parseStream(stream);\n break;\n\n case 'xl/styles.xml':\n model.styles = new StylesXform();\n await model.styles.parseStream(stream);\n break;\n\n case 'docProps/app.xml': {\n const appXform = new AppXform();\n const appProperties = await appXform.parseStream(stream);\n model.company = appProperties.company;\n model.manager = appProperties.manager;\n break;\n }\n\n case 'docProps/core.xml': {\n const coreXform = new CoreXform();\n const coreProperties = await coreXform.parseStream(stream);\n Object.assign(model, coreProperties);\n break;\n }\n\n default: {\n let match = entryName.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n if (match) {\n await this._processWorksheetEntry(stream, model, match[1], options, entryName);\n break;\n }\n match = entryName.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n if (match) {\n await this._processWorksheetRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/theme\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processThemeEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/media\\/([a-zA-Z0-9]+[.][a-zA-Z0-9]{3,4})$/);\n if (match) {\n await this._processMediaEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/([a-zA-Z0-9]+)[.]xml/);\n if (match) {\n await this._processDrawingEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/(comments\\d+)[.]xml/);\n if (match) {\n await this._processCommentEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/tables\\/(table\\d+)[.]xml/);\n if (match) {\n await this._processTableEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/_rels\\/([a-zA-Z0-9]+)[.]xml[.]rels/);\n if (match) {\n await this._processDrawingRelsEntry(stream, model, match[1]);\n break;\n }\n match = entryName.match(/xl\\/drawings\\/(vmlDrawing\\d+)[.]vml/);\n if (match) {\n await this._processVmlDrawingEntry(stream, model, match[1]);\n break;\n }\n }\n }\n }\n }\n\n this.reconcile(model, options);\n\n // apply model\n this.workbook.model = model;\n return this.workbook;\n }\n\n // =========================================================================\n // Write\n\n async addMedia(zip, model) {\n await Promise.all(\n model.media.map(async medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}.${medium.extension}`;\n if (medium.filename) {\n const data = await fsReadFileAsync(medium.filename);\n return zip.append(data, {name: filename});\n }\n if (medium.buffer) {\n return zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addDrawings(zip, model) {\n const drawingXform = new DrawingXform();\n const relsXform = new RelationshipsXform();\n\n model.worksheets.forEach(worksheet => {\n const {drawing} = worksheet;\n if (drawing) {\n drawingXform.prepare(drawing, {});\n let xml = drawingXform.toXml(drawing);\n zip.append(xml, {name: `xl/drawings/${drawing.name}.xml`});\n\n xml = relsXform.toXml(drawing.rels);\n zip.append(xml, {name: `xl/drawings/_rels/${drawing.name}.xml.rels`});\n }\n });\n }\n\n addTables(zip, model) {\n const tableXform = new TableXform();\n\n model.worksheets.forEach(worksheet => {\n const {tables} = worksheet;\n tables.forEach(table => {\n tableXform.prepare(table, {});\n const tableXml = tableXform.toXml(table);\n zip.append(tableXml, {name: `xl/tables/${table.target}`});\n });\n });\n }\n\n async addContentTypes(zip, model) {\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: '[Content_Types].xml'});\n }\n\n async addApp(zip, model) {\n const xform = new AppXform();\n const xml = xform.toXml(model);\n zip.append(xml, {name: 'docProps/app.xml'});\n }\n\n async addCore(zip, model) {\n const coreXform = new CoreXform();\n zip.append(coreXform.toXml(model), {name: 'docProps/core.xml'});\n }\n\n async addThemes(zip, model) {\n const themes = model.themes || {theme1: theme1Xml};\n Object.keys(themes).forEach(name => {\n const xml = themes[name];\n const path = `xl/theme/${name}.xml`;\n zip.append(xml, {name: path});\n });\n }\n\n async addOfficeRels(zip) {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: XLSX.RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: XLSX.RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: XLSX.RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n zip.append(xml, {name: '_rels/.rels'});\n }\n\n async addWorkbookRels(zip, model) {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: XLSX.RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: XLSX.RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (model.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: XLSX.RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n model.worksheets.forEach(worksheet => {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: XLSX.RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n });\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n zip.append(xml, {name: 'xl/_rels/workbook.xml.rels'});\n }\n\n async addSharedStrings(zip, model) {\n if (model.sharedStrings && model.sharedStrings.count) {\n zip.append(model.sharedStrings.xml, {name: 'xl/sharedStrings.xml'});\n }\n }\n\n async addStyles(zip, model) {\n const {xml} = model.styles;\n if (xml) {\n zip.append(xml, {name: 'xl/styles.xml'});\n }\n }\n\n async addWorkbook(zip, model) {\n const xform = new WorkbookXform();\n zip.append(xform.toXml(model), {name: 'xl/workbook.xml'});\n }\n\n async addWorksheets(zip, model) {\n // preparation phase\n const worksheetXform = new WorksheetXform();\n const relationshipsXform = new RelationshipsXform();\n const commentsXform = new CommentsXform();\n const vmlNotesXform = new VmlNotesXform();\n\n // write sheets\n model.worksheets.forEach(worksheet => {\n let xmlStream = new XmlStream();\n worksheetXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/worksheets/sheet${worksheet.id}.xml`});\n\n if (worksheet.rels && worksheet.rels.length) {\n xmlStream = new XmlStream();\n relationshipsXform.render(xmlStream, worksheet.rels);\n zip.append(xmlStream.xml, {name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`});\n }\n\n if (worksheet.comments.length > 0) {\n xmlStream = new XmlStream();\n commentsXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/comments${worksheet.id}.xml`});\n\n xmlStream = new XmlStream();\n vmlNotesXform.render(xmlStream, worksheet);\n zip.append(xmlStream.xml, {name: `xl/drawings/vmlDrawing${worksheet.id}.vml`});\n }\n });\n }\n\n _finalize(zip) {\n return new Promise((resolve, reject) => {\n zip.on('finish', () => {\n resolve(this);\n });\n zip.on('error', reject);\n zip.finalize();\n });\n }\n\n prepareModel(model, options) {\n // ensure following properties have sane values\n model.creator = model.creator || 'ExcelJS';\n model.lastModifiedBy = model.lastModifiedBy || 'ExcelJS';\n model.created = model.created || new Date();\n model.modified = model.modified || new Date();\n\n model.useSharedStrings = options.useSharedStrings !== undefined ? options.useSharedStrings : true;\n model.useStyles = options.useStyles !== undefined ? options.useStyles : true;\n\n // Manage the shared strings\n model.sharedStrings = new SharedStringsXform();\n\n // add a style manager to handle cell formats, fonts, etc.\n model.styles = model.useStyles ? new StylesXform(true) : new StylesXform.Mock();\n\n // prepare all of the things before the render\n const workbookXform = new WorkbookXform();\n const worksheetXform = new WorksheetXform();\n\n workbookXform.prepare(model);\n\n const worksheetOptions = {\n sharedStrings: model.sharedStrings,\n styles: model.styles,\n date1904: model.properties.date1904,\n drawingsCount: 0,\n media: model.media,\n };\n worksheetOptions.drawings = model.drawings = [];\n worksheetOptions.commentRefs = model.commentRefs = [];\n let tableCount = 0;\n model.tables = [];\n model.worksheets.forEach(worksheet => {\n // assign unique filenames to tables\n worksheet.tables.forEach(table => {\n tableCount++;\n table.target = `table${tableCount}.xml`;\n table.id = tableCount;\n model.tables.push(table);\n });\n\n worksheetXform.prepare(worksheet, worksheetOptions);\n });\n\n // TODO: workbook drawing list\n }\n\n async write(stream, options) {\n options = options || {};\n const {model} = this.workbook;\n const zip = new ZipStream.ZipWriter(options.zip);\n zip.pipe(stream);\n\n this.prepareModel(model, options);\n\n // render\n await this.addContentTypes(zip, model);\n await this.addOfficeRels(zip, model);\n await this.addWorkbookRels(zip, model);\n await this.addWorksheets(zip, model);\n await this.addSharedStrings(zip, model); // always after worksheets\n await this.addDrawings(zip, model);\n await this.addTables(zip, model);\n await Promise.all([this.addThemes(zip, model), this.addStyles(zip, model)]);\n await this.addMedia(zip, model);\n await Promise.all([this.addApp(zip, model), this.addCore(zip, model)]);\n await this.addWorkbook(zip, model);\n return this._finalize(zip);\n }\n\n writeFile(filename, options) {\n const stream = fs.createWriteStream(filename);\n\n return new Promise((resolve, reject) => {\n stream.on('finish', () => {\n resolve();\n });\n stream.on('error', error => {\n reject(error);\n });\n\n this.write(stream, options).then(() => {\n stream.end();\n }).catch(err=>{\n reject(err);\n });\n });\n }\n\n async writeBuffer(options) {\n const stream = new StreamBuf();\n await this.write(stream, options);\n return stream.read();\n }\n}\n\nXLSX.RelType = require('./rel-type');\n\nmodule.exports = XLSX;\n","/* eslint-disable */\nmodule.exports =\n '\\n ';\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CsvFormatterStream = void 0;\nconst stream_1 = require(\"stream\");\nconst formatter_1 = require(\"./formatter\");\nclass CsvFormatterStream extends stream_1.Transform {\n constructor(formatterOptions) {\n super({\n writableObjectMode: formatterOptions.objectMode\n });\n this.hasWrittenBOM = false;\n this.formatterOptions = formatterOptions;\n this.rowFormatter = new formatter_1.RowFormatter(formatterOptions);\n // if writeBOM is false then set to true\n // if writeBOM is true then set to false by default so it is written out\n this.hasWrittenBOM = !formatterOptions.writeBOM;\n }\n transform(transformFunction) {\n this.rowFormatter.rowTransform = transformFunction;\n return this;\n }\n _transform(row, encoding, cb) {\n let cbCalled = false;\n try {\n if (!this.hasWrittenBOM) {\n this.push(this.formatterOptions.BOM);\n this.hasWrittenBOM = true;\n }\n this.rowFormatter.format(row, (err, rows) => {\n if (err) {\n cbCalled = true;\n return cb(err);\n }\n if (rows) {\n rows.forEach(r => {\n this.push(Buffer.from(r, 'utf8'));\n });\n }\n cbCalled = true;\n return cb();\n });\n } catch (e) {\n if (cbCalled) {\n throw e;\n }\n cb(e);\n }\n }\n _flush(cb) {\n this.rowFormatter.finish((err, rows) => {\n if (err) {\n return cb(err);\n }\n if (rows) {\n rows.forEach(r => {\n this.push(Buffer.from(r, 'utf8'));\n });\n }\n return cb();\n });\n }\n}\nexports.CsvFormatterStream = CsvFormatterStream;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHJlYW1fMSIsInJlcXVpcmUiLCJmb3JtYXR0ZXJfMSIsIkNzdkZvcm1hdHRlclN0cmVhbSIsIlRyYW5zZm9ybSIsImNvbnN0cnVjdG9yIiwiZm9ybWF0dGVyT3B0aW9ucyIsIndyaXRhYmxlT2JqZWN0TW9kZSIsIm9iamVjdE1vZGUiLCJoYXNXcml0dGVuQk9NIiwicm93Rm9ybWF0dGVyIiwiUm93Rm9ybWF0dGVyIiwid3JpdGVCT00iLCJ0cmFuc2Zvcm0iLCJ0cmFuc2Zvcm1GdW5jdGlvbiIsInJvd1RyYW5zZm9ybSIsIl90cmFuc2Zvcm0iLCJyb3ciLCJlbmNvZGluZyIsImNiIiwiY2JDYWxsZWQiLCJwdXNoIiwiQk9NIiwiZm9ybWF0IiwiZXJyIiwicm93cyIsImZvckVhY2giLCJyIiwiQnVmZmVyIiwiZnJvbSIsImUiLCJfZmx1c2giLCJmaW5pc2giLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NzdkZvcm1hdHRlclN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBR0EsTUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBRUEsTUFBYUUsa0JBQWlELFNBQVFILFFBQUEsQ0FBQUksU0FBUztFQU8zRUMsWUFBbUJDLGdCQUF3QztJQUN2RCxLQUFLLENBQUM7TUFBRUMsa0JBQWtCLEVBQUVELGdCQUFnQixDQUFDRTtJQUFVLENBQUUsQ0FBQztJQUh0RCxLQUFBQyxhQUFhLEdBQUcsS0FBSztJQUl6QixJQUFJLENBQUNILGdCQUFnQixHQUFHQSxnQkFBZ0I7SUFDeEMsSUFBSSxDQUFDSSxZQUFZLEdBQUcsSUFBSVIsV0FBQSxDQUFBUyxZQUFZLENBQUNMLGdCQUFnQixDQUFDO0lBQ3REO0lBQ0E7SUFDQSxJQUFJLENBQUNHLGFBQWEsR0FBRyxDQUFDSCxnQkFBZ0IsQ0FBQ00sUUFBUTtFQUNuRDtFQUVPQyxTQUFTQSxDQUFDQyxpQkFBNkM7SUFDMUQsSUFBSSxDQUFDSixZQUFZLENBQUNLLFlBQVksR0FBR0QsaUJBQWlCO0lBQ2xELE9BQU8sSUFBSTtFQUNmO0VBRU9FLFVBQVVBLENBQUNDLEdBQU0sRUFBRUMsUUFBZ0IsRUFBRUMsRUFBcUI7SUFDN0QsSUFBSUMsUUFBUSxHQUFHLEtBQUs7SUFDcEIsSUFBSTtNQUNBLElBQUksQ0FBQyxJQUFJLENBQUNYLGFBQWEsRUFBRTtRQUNyQixJQUFJLENBQUNZLElBQUksQ0FBQyxJQUFJLENBQUNmLGdCQUFnQixDQUFDZ0IsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQ2IsYUFBYSxHQUFHLElBQUk7O01BRTdCLElBQUksQ0FBQ0MsWUFBWSxDQUFDYSxNQUFNLENBQUNOLEdBQUcsRUFBRSxDQUFDTyxHQUFHLEVBQUVDLElBQUksS0FBVTtRQUM5QyxJQUFJRCxHQUFHLEVBQUU7VUFDTEosUUFBUSxHQUFHLElBQUk7VUFDZixPQUFPRCxFQUFFLENBQUNLLEdBQUcsQ0FBQzs7UUFFbEIsSUFBSUMsSUFBSSxFQUFFO1VBQ05BLElBQUksQ0FBQ0MsT0FBTyxDQUFFQyxDQUFDLElBQVU7WUFDckIsSUFBSSxDQUFDTixJQUFJLENBQUNPLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDRixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7VUFDckMsQ0FBQyxDQUFDOztRQUVOUCxRQUFRLEdBQUcsSUFBSTtRQUNmLE9BQU9ELEVBQUUsRUFBRTtNQUNmLENBQUMsQ0FBQztLQUNMLENBQUMsT0FBT1csQ0FBQyxFQUFFO01BQ1IsSUFBSVYsUUFBUSxFQUFFO1FBQ1YsTUFBTVUsQ0FBQzs7TUFFWFgsRUFBRSxDQUFDVyxDQUFDLENBQUM7O0VBRWI7RUFFT0MsTUFBTUEsQ0FBQ1osRUFBcUI7SUFDL0IsSUFBSSxDQUFDVCxZQUFZLENBQUNzQixNQUFNLENBQUMsQ0FBQ1IsR0FBRyxFQUFFQyxJQUFJLEtBQVU7TUFDekMsSUFBSUQsR0FBRyxFQUFFO1FBQ0wsT0FBT0wsRUFBRSxDQUFDSyxHQUFHLENBQUM7O01BRWxCLElBQUlDLElBQUksRUFBRTtRQUNOQSxJQUFJLENBQUNDLE9BQU8sQ0FBRUMsQ0FBQyxJQUFVO1VBQ3JCLElBQUksQ0FBQ04sSUFBSSxDQUFDTyxNQUFNLENBQUNDLElBQUksQ0FBQ0YsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQzs7TUFFTixPQUFPUixFQUFFLEVBQUU7SUFDZixDQUFDLENBQUM7RUFDTjs7QUE3REpjLE9BQUEsQ0FBQTlCLGtCQUFBLEdBQUFBLGtCQUFBIn0=","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FormatterOptions = void 0;\nclass FormatterOptions {\n constructor() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _a;\n this.objectMode = true;\n this.delimiter = ',';\n this.rowDelimiter = '\\n';\n this.quote = '\"';\n this.escape = this.quote;\n this.quoteColumns = false;\n this.quoteHeaders = this.quoteColumns;\n this.headers = null;\n this.includeEndRowDelimiter = false;\n this.writeBOM = false;\n this.BOM = '\\ufeff';\n this.alwaysWriteHeaders = false;\n Object.assign(this, opts || {});\n if (typeof (opts === null || opts === void 0 ? void 0 : opts.quoteHeaders) === 'undefined') {\n this.quoteHeaders = this.quoteColumns;\n }\n if ((opts === null || opts === void 0 ? void 0 : opts.quote) === true) {\n this.quote = '\"';\n } else if ((opts === null || opts === void 0 ? void 0 : opts.quote) === false) {\n this.quote = '';\n }\n if (typeof (opts === null || opts === void 0 ? void 0 : opts.escape) !== 'string') {\n this.escape = this.quote;\n }\n this.shouldWriteHeaders = !!this.headers && ((_a = opts.writeHeaders) !== null && _a !== void 0 ? _a : true);\n this.headers = Array.isArray(this.headers) ? this.headers : null;\n this.escapedQuote = `${this.escape}${this.quote}`;\n }\n}\nexports.FormatterOptions = FormatterOptions;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtYXR0ZXJPcHRpb25zIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwib2JqZWN0TW9kZSIsImRlbGltaXRlciIsInJvd0RlbGltaXRlciIsInF1b3RlIiwiZXNjYXBlIiwicXVvdGVDb2x1bW5zIiwicXVvdGVIZWFkZXJzIiwiaGVhZGVycyIsImluY2x1ZGVFbmRSb3dEZWxpbWl0ZXIiLCJ3cml0ZUJPTSIsIkJPTSIsImFsd2F5c1dyaXRlSGVhZGVycyIsIk9iamVjdCIsImFzc2lnbiIsInNob3VsZFdyaXRlSGVhZGVycyIsIl9hIiwid3JpdGVIZWFkZXJzIiwiQXJyYXkiLCJpc0FycmF5IiwiZXNjYXBlZFF1b3RlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Gb3JtYXR0ZXJPcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7QUF3QkEsTUFBYUEsZ0JBQWdCO0VBK0J6QkMsWUFBQSxFQUF3RDtJQUFBLElBQXJDQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFtQyxFQUFFOztJQTlCeEMsS0FBQUcsVUFBVSxHQUFZLElBQUk7SUFFMUIsS0FBQUMsU0FBUyxHQUFXLEdBQUc7SUFFdkIsS0FBQUMsWUFBWSxHQUFXLElBQUk7SUFFM0IsS0FBQUMsS0FBSyxHQUFXLEdBQUc7SUFFbkIsS0FBQUMsTUFBTSxHQUFXLElBQUksQ0FBQ0QsS0FBSztJQUUzQixLQUFBRSxZQUFZLEdBQWlCLEtBQUs7SUFFbEMsS0FBQUMsWUFBWSxHQUFpQixJQUFJLENBQUNELFlBQVk7SUFFOUMsS0FBQUUsT0FBTyxHQUFvQixJQUFJO0lBRS9CLEtBQUFDLHNCQUFzQixHQUFZLEtBQUs7SUFNdkMsS0FBQUMsUUFBUSxHQUFZLEtBQUs7SUFJekIsS0FBQUMsR0FBRyxHQUFXLFFBQVE7SUFFdEIsS0FBQUMsa0JBQWtCLEdBQVksS0FBSztJQUcvQ0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxFQUFFakIsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQU9BLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFVSxZQUFZLE1BQUssV0FBVyxFQUFFO01BQzNDLElBQUksQ0FBQ0EsWUFBWSxHQUFHLElBQUksQ0FBQ0QsWUFBWTs7SUFFekMsSUFBSSxDQUFBVCxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRU8sS0FBSyxNQUFLLElBQUksRUFBRTtNQUN0QixJQUFJLENBQUNBLEtBQUssR0FBRyxHQUFHO0tBQ25CLE1BQU0sSUFBSSxDQUFBUCxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRU8sS0FBSyxNQUFLLEtBQUssRUFBRTtNQUM5QixJQUFJLENBQUNBLEtBQUssR0FBRyxFQUFFOztJQUVuQixJQUFJLFFBQU9QLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFUSxNQUFNLE1BQUssUUFBUSxFQUFFO01BQ2xDLElBQUksQ0FBQ0EsTUFBTSxHQUFHLElBQUksQ0FBQ0QsS0FBSzs7SUFFNUIsSUFBSSxDQUFDVyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDUCxPQUFPLEtBQUksQ0FBQVEsRUFBQSxHQUFDbkIsSUFBSSxDQUFDb0IsWUFBWSxjQUFBRCxFQUFBLGNBQUFBLEVBQUEsR0FBSSxJQUFJLENBQUM7SUFDdkUsSUFBSSxDQUFDUixPQUFPLEdBQUdVLEtBQUssQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQ1gsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDQSxPQUFPLEdBQUcsSUFBSTtJQUNoRSxJQUFJLENBQUNZLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQ2YsTUFBTSxHQUFHLElBQUksQ0FBQ0QsS0FBSyxFQUFFO0VBQ3JEOztBQWhESmlCLE9BQUEsQ0FBQTFCLGdCQUFBLEdBQUFBLGdCQUFBIn0=","\"use strict\";\n\nvar __importDefault = void 0 && (void 0).__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FieldFormatter = void 0;\nconst lodash_isboolean_1 = __importDefault(require(\"lodash.isboolean\"));\nconst lodash_isnil_1 = __importDefault(require(\"lodash.isnil\"));\nconst lodash_escaperegexp_1 = __importDefault(require(\"lodash.escaperegexp\"));\nclass FieldFormatter {\n constructor(formatterOptions) {\n this._headers = null;\n this.formatterOptions = formatterOptions;\n if (formatterOptions.headers !== null) {\n this.headers = formatterOptions.headers;\n }\n this.REPLACE_REGEXP = new RegExp(formatterOptions.quote, 'g');\n const escapePattern = `[${formatterOptions.delimiter}${lodash_escaperegexp_1.default(formatterOptions.rowDelimiter)}|\\r|\\n]`;\n this.ESCAPE_REGEXP = new RegExp(escapePattern);\n }\n set headers(headers) {\n this._headers = headers;\n }\n shouldQuote(fieldIndex, isHeader) {\n const quoteConfig = isHeader ? this.formatterOptions.quoteHeaders : this.formatterOptions.quoteColumns;\n if (lodash_isboolean_1.default(quoteConfig)) {\n return quoteConfig;\n }\n if (Array.isArray(quoteConfig)) {\n return quoteConfig[fieldIndex];\n }\n if (this._headers !== null) {\n return quoteConfig[this._headers[fieldIndex]];\n }\n return false;\n }\n format(field, fieldIndex, isHeader) {\n const preparedField = `${lodash_isnil_1.default(field) ? '' : field}`.replace(/\\0/g, '');\n const {\n formatterOptions\n } = this;\n if (formatterOptions.quote !== '') {\n const shouldEscape = preparedField.indexOf(formatterOptions.quote) !== -1;\n if (shouldEscape) {\n return this.quoteField(preparedField.replace(this.REPLACE_REGEXP, formatterOptions.escapedQuote));\n }\n }\n const hasEscapeCharacters = preparedField.search(this.ESCAPE_REGEXP) !== -1;\n if (hasEscapeCharacters || this.shouldQuote(fieldIndex, isHeader)) {\n return this.quoteField(preparedField);\n }\n return preparedField;\n }\n quoteField(field) {\n const {\n quote\n } = this.formatterOptions;\n return `${quote}${field}${quote}`;\n }\n}\nexports.FieldFormatter = FieldFormatter;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2Rhc2hfaXNib29sZWFuXzEiLCJfX2ltcG9ydERlZmF1bHQiLCJyZXF1aXJlIiwibG9kYXNoX2lzbmlsXzEiLCJsb2Rhc2hfZXNjYXBlcmVnZXhwXzEiLCJGaWVsZEZvcm1hdHRlciIsImNvbnN0cnVjdG9yIiwiZm9ybWF0dGVyT3B0aW9ucyIsIl9oZWFkZXJzIiwiaGVhZGVycyIsIlJFUExBQ0VfUkVHRVhQIiwiUmVnRXhwIiwicXVvdGUiLCJlc2NhcGVQYXR0ZXJuIiwiZGVsaW1pdGVyIiwiZGVmYXVsdCIsInJvd0RlbGltaXRlciIsIkVTQ0FQRV9SRUdFWFAiLCJzaG91bGRRdW90ZSIsImZpZWxkSW5kZXgiLCJpc0hlYWRlciIsInF1b3RlQ29uZmlnIiwicXVvdGVIZWFkZXJzIiwicXVvdGVDb2x1bW5zIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwiZmllbGQiLCJwcmVwYXJlZEZpZWxkIiwicmVwbGFjZSIsInNob3VsZEVzY2FwZSIsImluZGV4T2YiLCJxdW90ZUZpZWxkIiwiZXNjYXBlZFF1b3RlIiwiaGFzRXNjYXBlQ2hhcmFjdGVycyIsInNlYXJjaCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZm9ybWF0dGVyL0ZpZWxkRm9ybWF0dGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE1BQUFBLGtCQUFBLEdBQUFDLGVBQUEsQ0FBQUMsT0FBQTtBQUNBLE1BQUFDLGNBQUEsR0FBQUYsZUFBQSxDQUFBQyxPQUFBO0FBQ0EsTUFBQUUscUJBQUEsR0FBQUgsZUFBQSxDQUFBQyxPQUFBO0FBSUEsTUFBYUcsY0FBYztFQVN2QkMsWUFBbUJDLGdCQUF3QztJQU5uRCxLQUFBQyxRQUFRLEdBQW9CLElBQUk7SUFPcEMsSUFBSSxDQUFDRCxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0lBQ3hDLElBQUlBLGdCQUFnQixDQUFDRSxPQUFPLEtBQUssSUFBSSxFQUFFO01BQ25DLElBQUksQ0FBQ0EsT0FBTyxHQUFHRixnQkFBZ0IsQ0FBQ0UsT0FBTzs7SUFFM0MsSUFBSSxDQUFDQyxjQUFjLEdBQUcsSUFBSUMsTUFBTSxDQUFDSixnQkFBZ0IsQ0FBQ0ssS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUM3RCxNQUFNQyxhQUFhLEdBQUcsSUFBSU4sZ0JBQWdCLENBQUNPLFNBQVMsR0FBR1YscUJBQUEsQ0FBQVcsT0FBWSxDQUFDUixnQkFBZ0IsQ0FBQ1MsWUFBWSxDQUFDLFNBQVM7SUFDM0csSUFBSSxDQUFDQyxhQUFhLEdBQUcsSUFBSU4sTUFBTSxDQUFDRSxhQUFhLENBQUM7RUFDbEQ7RUFFQSxJQUFXSixPQUFPQSxDQUFDQSxPQUFpQjtJQUNoQyxJQUFJLENBQUNELFFBQVEsR0FBR0MsT0FBTztFQUMzQjtFQUVRUyxXQUFXQSxDQUFDQyxVQUFrQixFQUFFQyxRQUFpQjtJQUNyRCxNQUFNQyxXQUFXLEdBQUdELFFBQVEsR0FBRyxJQUFJLENBQUNiLGdCQUFnQixDQUFDZSxZQUFZLEdBQUcsSUFBSSxDQUFDZixnQkFBZ0IsQ0FBQ2dCLFlBQVk7SUFDdEcsSUFBSXZCLGtCQUFBLENBQUFlLE9BQVMsQ0FBQ00sV0FBVyxDQUFDLEVBQUU7TUFDeEIsT0FBT0EsV0FBVzs7SUFFdEIsSUFBSUcsS0FBSyxDQUFDQyxPQUFPLENBQUNKLFdBQVcsQ0FBQyxFQUFFO01BQzVCLE9BQU9BLFdBQVcsQ0FBQ0YsVUFBVSxDQUFDOztJQUVsQyxJQUFJLElBQUksQ0FBQ1gsUUFBUSxLQUFLLElBQUksRUFBRTtNQUN4QixPQUFPYSxXQUFXLENBQUMsSUFBSSxDQUFDYixRQUFRLENBQUNXLFVBQVUsQ0FBQyxDQUFDOztJQUVqRCxPQUFPLEtBQUs7RUFDaEI7RUFFT08sTUFBTUEsQ0FBQ0MsS0FBYSxFQUFFUixVQUFrQixFQUFFQyxRQUFpQjtJQUM5RCxNQUFNUSxhQUFhLEdBQUcsR0FBR3pCLGNBQUEsQ0FBQVksT0FBSyxDQUFDWSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUdBLEtBQUssRUFBRSxDQUFDRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUN2RSxNQUFNO01BQUV0QjtJQUFnQixDQUFFLEdBQUcsSUFBSTtJQUNqQyxJQUFJQSxnQkFBZ0IsQ0FBQ0ssS0FBSyxLQUFLLEVBQUUsRUFBRTtNQUMvQixNQUFNa0IsWUFBWSxHQUFHRixhQUFhLENBQUNHLE9BQU8sQ0FBQ3hCLGdCQUFnQixDQUFDSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7TUFDekUsSUFBSWtCLFlBQVksRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDRSxVQUFVLENBQUNKLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQ25CLGNBQWMsRUFBRUgsZ0JBQWdCLENBQUMwQixZQUFZLENBQUMsQ0FBQzs7O0lBR3pHLE1BQU1DLG1CQUFtQixHQUFHTixhQUFhLENBQUNPLE1BQU0sQ0FBQyxJQUFJLENBQUNsQixhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0UsSUFBSWlCLG1CQUFtQixJQUFJLElBQUksQ0FBQ2hCLFdBQVcsQ0FBQ0MsVUFBVSxFQUFFQyxRQUFRLENBQUMsRUFBRTtNQUMvRCxPQUFPLElBQUksQ0FBQ1ksVUFBVSxDQUFDSixhQUFhLENBQUM7O0lBRXpDLE9BQU9BLGFBQWE7RUFDeEI7RUFFUUksVUFBVUEsQ0FBQ0wsS0FBYTtJQUM1QixNQUFNO01BQUVmO0lBQUssQ0FBRSxHQUFHLElBQUksQ0FBQ0wsZ0JBQWdCO0lBQ3ZDLE9BQU8sR0FBR0ssS0FBSyxHQUFHZSxLQUFLLEdBQUdmLEtBQUssRUFBRTtFQUNyQzs7QUF4REp3QixPQUFBLENBQUEvQixjQUFBLEdBQUFBLGNBQUEifQ==","\"use strict\";\n\nvar __importDefault = void 0 && (void 0).__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RowFormatter = void 0;\nconst lodash_isfunction_1 = __importDefault(require(\"lodash.isfunction\"));\nconst lodash_isequal_1 = __importDefault(require(\"lodash.isequal\"));\nconst FieldFormatter_1 = require(\"./FieldFormatter\");\nconst types_1 = require(\"../types\");\nclass RowFormatter {\n constructor(formatterOptions) {\n this.rowCount = 0;\n this.formatterOptions = formatterOptions;\n this.fieldFormatter = new FieldFormatter_1.FieldFormatter(formatterOptions);\n this.headers = formatterOptions.headers;\n this.shouldWriteHeaders = formatterOptions.shouldWriteHeaders;\n this.hasWrittenHeaders = false;\n if (this.headers !== null) {\n this.fieldFormatter.headers = this.headers;\n }\n if (formatterOptions.transform) {\n this.rowTransform = formatterOptions.transform;\n }\n }\n static isRowHashArray(row) {\n if (Array.isArray(row)) {\n return Array.isArray(row[0]) && row[0].length === 2;\n }\n return false;\n }\n static isRowArray(row) {\n return Array.isArray(row) && !this.isRowHashArray(row);\n }\n // get headers from a row item\n static gatherHeaders(row) {\n if (RowFormatter.isRowHashArray(row)) {\n // lets assume a multi-dimesional array with item 0 being the header\n return row.map(it => it[0]);\n }\n if (Array.isArray(row)) {\n return row;\n }\n return Object.keys(row);\n }\n // eslint-disable-next-line @typescript-eslint/no-shadow\n static createTransform(transformFunction) {\n if (types_1.isSyncTransform(transformFunction)) {\n return (row, cb) => {\n let transformedRow = null;\n try {\n transformedRow = transformFunction(row);\n } catch (e) {\n return cb(e);\n }\n return cb(null, transformedRow);\n };\n }\n return (row, cb) => {\n transformFunction(row, cb);\n };\n }\n set rowTransform(transformFunction) {\n if (!lodash_isfunction_1.default(transformFunction)) {\n throw new TypeError('The transform should be a function');\n }\n this._rowTransform = RowFormatter.createTransform(transformFunction);\n }\n format(row, cb) {\n this.callTransformer(row, (err, transformedRow) => {\n if (err) {\n return cb(err);\n }\n if (!row) {\n return cb(null);\n }\n const rows = [];\n if (transformedRow) {\n const {\n shouldFormatColumns,\n headers\n } = this.checkHeaders(transformedRow);\n if (this.shouldWriteHeaders && headers && !this.hasWrittenHeaders) {\n rows.push(this.formatColumns(headers, true));\n this.hasWrittenHeaders = true;\n }\n if (shouldFormatColumns) {\n const columns = this.gatherColumns(transformedRow);\n rows.push(this.formatColumns(columns, false));\n }\n }\n return cb(null, rows);\n });\n }\n finish(cb) {\n const rows = [];\n // check if we should write headers and we didnt get any rows\n if (this.formatterOptions.alwaysWriteHeaders && this.rowCount === 0) {\n if (!this.headers) {\n return cb(new Error('`alwaysWriteHeaders` option is set to true but `headers` option not provided.'));\n }\n rows.push(this.formatColumns(this.headers, true));\n }\n if (this.formatterOptions.includeEndRowDelimiter) {\n rows.push(this.formatterOptions.rowDelimiter);\n }\n return cb(null, rows);\n }\n // check if we need to write header return true if we should also write a row\n // could be false if headers is true and the header row(first item) is passed in\n checkHeaders(row) {\n if (this.headers) {\n // either the headers were provided by the user or we have already gathered them.\n return {\n shouldFormatColumns: true,\n headers: this.headers\n };\n }\n const headers = RowFormatter.gatherHeaders(row);\n this.headers = headers;\n this.fieldFormatter.headers = headers;\n if (!this.shouldWriteHeaders) {\n // if we are not supposed to write the headers then\n // always format the columns\n return {\n shouldFormatColumns: true,\n headers: null\n };\n }\n // if the row is equal to headers dont format\n return {\n shouldFormatColumns: !lodash_isequal_1.default(headers, row),\n headers\n };\n }\n // todo change this method to unknown[]\n gatherColumns(row) {\n if (this.headers === null) {\n throw new Error('Headers is currently null');\n }\n if (!Array.isArray(row)) {\n return this.headers.map(header => row[header]);\n }\n if (RowFormatter.isRowHashArray(row)) {\n return this.headers.map((header, i) => {\n const col = row[i];\n if (col) {\n return col[1];\n }\n return '';\n });\n }\n // if its a one dimensional array and headers were not provided\n // then just return the row\n if (RowFormatter.isRowArray(row) && !this.shouldWriteHeaders) {\n return row;\n }\n return this.headers.map((header, i) => row[i]);\n }\n callTransformer(row, cb) {\n if (!this._rowTransform) {\n return cb(null, row);\n }\n return this._rowTransform(row, cb);\n }\n formatColumns(columns, isHeadersRow) {\n const formattedCols = columns.map((field, i) => this.fieldFormatter.format(field, i, isHeadersRow)).join(this.formatterOptions.delimiter);\n const {\n rowCount\n } = this;\n this.rowCount += 1;\n if (rowCount) {\n return [this.formatterOptions.rowDelimiter, formattedCols].join('');\n }\n return formattedCols;\n }\n}\nexports.RowFormatter = RowFormatter;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2Rhc2hfaXNmdW5jdGlvbl8xIiwiX19pbXBvcnREZWZhdWx0IiwicmVxdWlyZSIsImxvZGFzaF9pc2VxdWFsXzEiLCJGaWVsZEZvcm1hdHRlcl8xIiwidHlwZXNfMSIsIlJvd0Zvcm1hdHRlciIsImNvbnN0cnVjdG9yIiwiZm9ybWF0dGVyT3B0aW9ucyIsInJvd0NvdW50IiwiZmllbGRGb3JtYXR0ZXIiLCJGaWVsZEZvcm1hdHRlciIsImhlYWRlcnMiLCJzaG91bGRXcml0ZUhlYWRlcnMiLCJoYXNXcml0dGVuSGVhZGVycyIsInRyYW5zZm9ybSIsInJvd1RyYW5zZm9ybSIsImlzUm93SGFzaEFycmF5Iiwicm93IiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNSb3dBcnJheSIsImdhdGhlckhlYWRlcnMiLCJtYXAiLCJpdCIsIk9iamVjdCIsImtleXMiLCJjcmVhdGVUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm1GdW5jdGlvbiIsImlzU3luY1RyYW5zZm9ybSIsImNiIiwidHJhbnNmb3JtZWRSb3ciLCJlIiwiZGVmYXVsdCIsIlR5cGVFcnJvciIsIl9yb3dUcmFuc2Zvcm0iLCJmb3JtYXQiLCJjYWxsVHJhbnNmb3JtZXIiLCJlcnIiLCJyb3dzIiwic2hvdWxkRm9ybWF0Q29sdW1ucyIsImNoZWNrSGVhZGVycyIsInB1c2giLCJmb3JtYXRDb2x1bW5zIiwiY29sdW1ucyIsImdhdGhlckNvbHVtbnMiLCJmaW5pc2giLCJhbHdheXNXcml0ZUhlYWRlcnMiLCJFcnJvciIsImluY2x1ZGVFbmRSb3dEZWxpbWl0ZXIiLCJyb3dEZWxpbWl0ZXIiLCJoZWFkZXIiLCJpIiwiY29sIiwiaXNIZWFkZXJzUm93IiwiZm9ybWF0dGVkQ29scyIsImZpZWxkIiwiam9pbiIsImRlbGltaXRlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZm9ybWF0dGVyL1Jvd0Zvcm1hdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FieldFormatter = exports.RowFormatter = void 0;\nvar RowFormatter_1 = require(\"./RowFormatter\");\nObject.defineProperty(exports, \"RowFormatter\", {\n enumerable: true,\n get: function () {\n return RowFormatter_1.RowFormatter;\n }\n});\nvar FieldFormatter_1 = require(\"./FieldFormatter\");\nObject.defineProperty(exports, \"FieldFormatter\", {\n enumerable: true,\n get: function () {\n return FieldFormatter_1.FieldFormatter;\n }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3dGb3JtYXR0ZXJfMSIsInJlcXVpcmUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiUm93Rm9ybWF0dGVyIiwiRmllbGRGb3JtYXR0ZXJfMSIsIkZpZWxkRm9ybWF0dGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zvcm1hdHRlci9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQVNDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQU4sY0FBQSxDQUFBTyxZQUFZO0VBQUE7QUFBQTtBQUNyQixJQUFBQyxnQkFBQSxHQUFBUCxPQUFBO0FBQVNDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUUsZ0JBQUEsQ0FBQUMsY0FBYztFQUFBO0FBQUEifQ==","\"use strict\";\n\nvar __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = void 0 && (void 0).__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = void 0 && (void 0).__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.writeToPath = exports.writeToString = exports.writeToBuffer = exports.writeToStream = exports.write = exports.format = exports.FormatterOptions = exports.CsvFormatterStream = void 0;\nconst util_1 = require(\"util\");\nconst stream_1 = require(\"stream\");\nconst fs = __importStar(require(\"fs\"));\nconst FormatterOptions_1 = require(\"./FormatterOptions\");\nconst CsvFormatterStream_1 = require(\"./CsvFormatterStream\");\n__exportStar(require(\"./types\"), exports);\nvar CsvFormatterStream_2 = require(\"./CsvFormatterStream\");\nObject.defineProperty(exports, \"CsvFormatterStream\", {\n enumerable: true,\n get: function () {\n return CsvFormatterStream_2.CsvFormatterStream;\n }\n});\nvar FormatterOptions_2 = require(\"./FormatterOptions\");\nObject.defineProperty(exports, \"FormatterOptions\", {\n enumerable: true,\n get: function () {\n return FormatterOptions_2.FormatterOptions;\n }\n});\nexports.format = options => new CsvFormatterStream_1.CsvFormatterStream(new FormatterOptions_1.FormatterOptions(options));\nexports.write = (rows, options) => {\n const csvStream = exports.format(options);\n const promiseWrite = util_1.promisify((row, cb) => {\n csvStream.write(row, undefined, cb);\n });\n rows.reduce((prev, row) => prev.then(() => promiseWrite(row)), Promise.resolve()).then(() => csvStream.end()).catch(err => {\n csvStream.emit('error', err);\n });\n return csvStream;\n};\nexports.writeToStream = (ws, rows, options) => exports.write(rows, options).pipe(ws);\nexports.writeToBuffer = function (rows) {\n let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const buffers = [];\n const ws = new stream_1.Writable({\n write(data, enc, writeCb) {\n buffers.push(data);\n writeCb();\n }\n });\n return new Promise((res, rej) => {\n ws.on('error', rej).on('finish', () => res(Buffer.concat(buffers)));\n exports.write(rows, opts).pipe(ws);\n });\n};\nexports.writeToString = (rows, options) => exports.writeToBuffer(rows, options).then(buffer => buffer.toString());\nexports.writeToPath = (path, rows, options) => {\n const stream = fs.createWriteStream(path, {\n encoding: 'utf8'\n });\n return exports.write(rows, options).pipe(stream);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1dGlsXzEiLCJyZXF1aXJlIiwic3RyZWFtXzEiLCJmcyIsIl9faW1wb3J0U3RhciIsIkZvcm1hdHRlck9wdGlvbnNfMSIsIkNzdkZvcm1hdHRlclN0cmVhbV8xIiwiX19leHBvcnRTdGFyIiwiZXhwb3J0cyIsIkNzdkZvcm1hdHRlclN0cmVhbV8yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiQ3N2Rm9ybWF0dGVyU3RyZWFtIiwiRm9ybWF0dGVyT3B0aW9uc18yIiwiRm9ybWF0dGVyT3B0aW9ucyIsImZvcm1hdCIsIm9wdGlvbnMiLCJ3cml0ZSIsInJvd3MiLCJjc3ZTdHJlYW0iLCJwcm9taXNlV3JpdGUiLCJwcm9taXNpZnkiLCJyb3ciLCJjYiIsInVuZGVmaW5lZCIsInJlZHVjZSIsInByZXYiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlbmQiLCJjYXRjaCIsImVyciIsImVtaXQiLCJ3cml0ZVRvU3RyZWFtIiwid3MiLCJwaXBlIiwid3JpdGVUb0J1ZmZlciIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJidWZmZXJzIiwiV3JpdGFibGUiLCJkYXRhIiwiZW5jIiwid3JpdGVDYiIsInB1c2giLCJyZXMiLCJyZWoiLCJvbiIsIkJ1ZmZlciIsImNvbmNhdCIsIndyaXRlVG9TdHJpbmciLCJidWZmZXIiLCJ0b1N0cmluZyIsIndyaXRlVG9QYXRoIiwicGF0aCIsInN0cmVhbSIsImNyZWF0ZVdyaXRlU3RyZWFtIiwiZW5jb2RpbmciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLE1BQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLE1BQUFFLEVBQUEsR0FBQUMsWUFBQSxDQUFBSCxPQUFBO0FBRUEsTUFBQUksa0JBQUEsR0FBQUosT0FBQTtBQUNBLE1BQUFLLG9CQUFBLEdBQUFMLE9BQUE7QUFFQU0sWUFBQSxDQUFBTixPQUFBLGFBQUFPLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBUixPQUFBO0FBQVNTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxPQUFBO0VBQUFJLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUosb0JBQUEsQ0FBQUssa0JBQWtCO0VBQUE7QUFBQTtBQUMzQixJQUFBQyxrQkFBQSxHQUFBZCxPQUFBO0FBQVNTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxPQUFBO0VBQUFJLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUUsa0JBQUEsQ0FBQUMsZ0JBQWdCO0VBQUE7QUFBQTtBQUVaUixPQUFBLENBQUFTLE1BQU0sR0FBa0NDLE9BQW9DLElBQ3JGLElBQUlaLG9CQUFBLENBQUFRLGtCQUFrQixDQUFDLElBQUlULGtCQUFBLENBQUFXLGdCQUFnQixDQUFDRSxPQUFPLENBQUMsQ0FBQztBQUU1Q1YsT0FBQSxDQUFBVyxLQUFLLEdBQUcsQ0FDakJDLElBQVMsRUFDVEYsT0FBb0MsS0FDVjtFQUMxQixNQUFNRyxTQUFTLEdBQUdiLE9BQUEsQ0FBQVMsTUFBTSxDQUFDQyxPQUFPLENBQUM7RUFDakMsTUFBTUksWUFBWSxHQUFHdEIsTUFBQSxDQUFBdUIsU0FBUyxDQUFDLENBQUNDLEdBQU0sRUFBRUMsRUFBa0MsS0FBVTtJQUNoRkosU0FBUyxDQUFDRixLQUFLLENBQUNLLEdBQUcsRUFBRUUsU0FBUyxFQUFFRCxFQUFFLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0VBQ0ZMLElBQUksQ0FBQ08sTUFBTSxDQUNQLENBQUNDLElBQW1CLEVBQUVKLEdBQU0sS0FBb0JJLElBQUksQ0FBQ0MsSUFBSSxDQUFDLE1BQXFCUCxZQUFZLENBQUNFLEdBQUcsQ0FBQyxDQUFDLEVBQ2pHTSxPQUFPLENBQUNDLE9BQU8sRUFBRSxDQUNwQixDQUNJRixJQUFJLENBQUMsTUFBWVIsU0FBUyxDQUFDVyxHQUFHLEVBQUUsQ0FBQyxDQUNqQ0MsS0FBSyxDQUFFQyxHQUFHLElBQVU7SUFDakJiLFNBQVMsQ0FBQ2MsSUFBSSxDQUFDLE9BQU8sRUFBRUQsR0FBRyxDQUFDO0VBQ2hDLENBQUMsQ0FBQztFQUNOLE9BQU9iLFNBQVM7QUFDcEIsQ0FBQztBQUVZYixPQUFBLENBQUE0QixhQUFhLEdBQUcsQ0FDekJDLEVBQUssRUFDTGpCLElBQVMsRUFDVEYsT0FBb0MsS0FDaENWLE9BQUEsQ0FBQVcsS0FBSyxDQUFDQyxJQUFJLEVBQUVGLE9BQU8sQ0FBQyxDQUFDb0IsSUFBSSxDQUFDRCxFQUFFLENBQUM7QUFFeEI3QixPQUFBLENBQUErQixhQUFhLEdBQUcsVUFDekJuQixJQUFTLEVBRVE7RUFBQSxJQURqQm9CLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWYsU0FBQSxHQUFBZSxTQUFBLE1BQW1DLEVBQUU7RUFFckMsTUFBTUUsT0FBTyxHQUFhLEVBQUU7RUFDNUIsTUFBTU4sRUFBRSxHQUFHLElBQUluQyxRQUFBLENBQUEwQyxRQUFRLENBQUM7SUFDcEJ6QixLQUFLQSxDQUFDMEIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLE9BQU87TUFDcEJKLE9BQU8sQ0FBQ0ssSUFBSSxDQUFDSCxJQUFJLENBQUM7TUFDbEJFLE9BQU8sRUFBRTtJQUNiO0dBQ0gsQ0FBQztFQUNGLE9BQU8sSUFBSWpCLE9BQU8sQ0FBQyxDQUFDbUIsR0FBRyxFQUFFQyxHQUFHLEtBQVU7SUFDbENiLEVBQUUsQ0FBQ2MsRUFBRSxDQUFDLE9BQU8sRUFBRUQsR0FBRyxDQUFDLENBQUNDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBWUYsR0FBRyxDQUFDRyxNQUFNLENBQUNDLE1BQU0sQ0FBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6RW5DLE9BQUEsQ0FBQVcsS0FBSyxDQUFDQyxJQUFJLEVBQUVvQixJQUFJLENBQUMsQ0FBQ0YsSUFBSSxDQUFDRCxFQUFFLENBQUM7RUFDOUIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVZN0IsT0FBQSxDQUFBOEMsYUFBYSxHQUFHLENBQ3pCbEMsSUFBUyxFQUNURixPQUFvQyxLQUNsQlYsT0FBQSxDQUFBK0IsYUFBYSxDQUFDbkIsSUFBSSxFQUFFRixPQUFPLENBQUMsQ0FBQ1csSUFBSSxDQUFFMEIsTUFBTSxJQUFhQSxNQUFNLENBQUNDLFFBQVEsRUFBRSxDQUFDO0FBRWpGaEQsT0FBQSxDQUFBaUQsV0FBVyxHQUFHLENBQ3ZCQyxJQUFZLEVBQ1p0QyxJQUFTLEVBQ1RGLE9BQW9DLEtBQ3BCO0VBQ2hCLE1BQU15QyxNQUFNLEdBQUd4RCxFQUFFLENBQUN5RCxpQkFBaUIsQ0FBQ0YsSUFBSSxFQUFFO0lBQUVHLFFBQVEsRUFBRTtFQUFNLENBQUUsQ0FBQztFQUMvRCxPQUFPckQsT0FBQSxDQUFBVyxLQUFLLENBQUNDLElBQUksRUFBRUYsT0FBTyxDQUFDLENBQUNvQixJQUFJLENBQUNxQixNQUFNLENBQUM7QUFDNUMsQ0FBQyJ9","\"use strict\";\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isSyncTransform = void 0;\nexports.isSyncTransform = transform => transform.length === 1;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBvcnRzIiwiaXNTeW5jVHJhbnNmb3JtIiwidHJhbnNmb3JtIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOztBQUFBOzs7OztBQVlhQSxPQUFBLENBQUFDLGVBQWUsR0FDeEJDLFNBQXFDLElBQ0NBLFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLENBQUMifQ==","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CsvParserStream = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst stream_1 = require(\"stream\");\nconst transforms_1 = require(\"./transforms\");\nconst parser_1 = require(\"./parser\");\nclass CsvParserStream extends stream_1.Transform {\n constructor(parserOptions) {\n super({\n objectMode: parserOptions.objectMode\n });\n this.lines = '';\n this.rowCount = 0;\n this.parsedRowCount = 0;\n this.parsedLineCount = 0;\n this.endEmitted = false;\n this.headersEmitted = false;\n this.parserOptions = parserOptions;\n this.parser = new parser_1.Parser(parserOptions);\n this.headerTransformer = new transforms_1.HeaderTransformer(parserOptions);\n this.decoder = new string_decoder_1.StringDecoder(parserOptions.encoding);\n this.rowTransformerValidator = new transforms_1.RowTransformerValidator();\n }\n get hasHitRowLimit() {\n return this.parserOptions.limitRows && this.rowCount >= this.parserOptions.maxRows;\n }\n get shouldEmitRows() {\n return this.parsedRowCount > this.parserOptions.skipRows;\n }\n get shouldSkipLine() {\n return this.parsedLineCount <= this.parserOptions.skipLines;\n }\n transform(transformFunction) {\n this.rowTransformerValidator.rowTransform = transformFunction;\n return this;\n }\n validate(validateFunction) {\n this.rowTransformerValidator.rowValidator = validateFunction;\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n emit(event) {\n if (event === 'end') {\n if (!this.endEmitted) {\n this.endEmitted = true;\n super.emit('end', this.rowCount);\n }\n return false;\n }\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n return super.emit(event, ...rest);\n }\n _transform(data, encoding, done) {\n // if we have hit our maxRows parsing limit then skip parsing\n if (this.hasHitRowLimit) {\n return done();\n }\n const wrappedCallback = CsvParserStream.wrapDoneCallback(done);\n try {\n const {\n lines\n } = this;\n const newLine = lines + this.decoder.write(data);\n const rows = this.parse(newLine, true);\n return this.processRows(rows, wrappedCallback);\n } catch (e) {\n return wrappedCallback(e);\n }\n }\n _flush(done) {\n const wrappedCallback = CsvParserStream.wrapDoneCallback(done);\n // if we have hit our maxRows parsing limit then skip parsing\n if (this.hasHitRowLimit) {\n return wrappedCallback();\n }\n try {\n const newLine = this.lines + this.decoder.end();\n const rows = this.parse(newLine, false);\n return this.processRows(rows, wrappedCallback);\n } catch (e) {\n return wrappedCallback(e);\n }\n }\n parse(data, hasMoreData) {\n if (!data) {\n return [];\n }\n const {\n line,\n rows\n } = this.parser.parse(data, hasMoreData);\n this.lines = line;\n return rows;\n }\n processRows(rows, cb) {\n const rowsLength = rows.length;\n const iterate = i => {\n const callNext = err => {\n if (err) {\n return cb(err);\n }\n if (i % 100 === 0) {\n // incase the transform are sync insert a next tick to prevent stack overflow\n setImmediate(() => iterate(i + 1));\n return undefined;\n }\n return iterate(i + 1);\n };\n this.checkAndEmitHeaders();\n // if we have emitted all rows or we have hit the maxRows limit option\n // then end\n if (i >= rowsLength || this.hasHitRowLimit) {\n return cb();\n }\n this.parsedLineCount += 1;\n if (this.shouldSkipLine) {\n return callNext();\n }\n const row = rows[i];\n this.rowCount += 1;\n this.parsedRowCount += 1;\n const nextRowCount = this.rowCount;\n return this.transformRow(row, (err, transformResult) => {\n if (err) {\n this.rowCount -= 1;\n return callNext(err);\n }\n if (!transformResult) {\n return callNext(new Error('expected transform result'));\n }\n if (!transformResult.isValid) {\n this.emit('data-invalid', transformResult.row, nextRowCount, transformResult.reason);\n } else if (transformResult.row) {\n return this.pushRow(transformResult.row, callNext);\n }\n return callNext();\n });\n };\n iterate(0);\n }\n transformRow(parsedRow, cb) {\n try {\n this.headerTransformer.transform(parsedRow, (err, withHeaders) => {\n if (err) {\n return cb(err);\n }\n if (!withHeaders) {\n return cb(new Error('Expected result from header transform'));\n }\n if (!withHeaders.isValid) {\n if (this.shouldEmitRows) {\n return cb(null, {\n isValid: false,\n row: parsedRow\n });\n }\n // skipped because of skipRows option remove from total row count\n return this.skipRow(cb);\n }\n if (withHeaders.row) {\n if (this.shouldEmitRows) {\n return this.rowTransformerValidator.transformAndValidate(withHeaders.row, cb);\n }\n // skipped because of skipRows option remove from total row count\n return this.skipRow(cb);\n }\n // this is a header row dont include in the rowCount or parsedRowCount\n this.rowCount -= 1;\n this.parsedRowCount -= 1;\n return cb(null, {\n row: null,\n isValid: true\n });\n });\n } catch (e) {\n cb(e);\n }\n }\n checkAndEmitHeaders() {\n if (!this.headersEmitted && this.headerTransformer.headers) {\n this.headersEmitted = true;\n this.emit('headers', this.headerTransformer.headers);\n }\n }\n skipRow(cb) {\n // skipped because of skipRows option remove from total row count\n this.rowCount -= 1;\n return cb(null, {\n row: null,\n isValid: true\n });\n }\n pushRow(row, cb) {\n try {\n if (!this.parserOptions.objectMode) {\n this.push(JSON.stringify(row));\n } else {\n this.push(row);\n }\n cb();\n } catch (e) {\n cb(e);\n }\n }\n static wrapDoneCallback(done) {\n let errorCalled = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (err) {\n if (err) {\n if (errorCalled) {\n throw err;\n }\n errorCalled = true;\n done(err);\n return;\n }\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n done(...args);\n };\n }\n}\nexports.CsvParserStream = CsvParserStream;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHJpbmdfZGVjb2Rlcl8xIiwicmVxdWlyZSIsInN0cmVhbV8xIiwidHJhbnNmb3Jtc18xIiwicGFyc2VyXzEiLCJDc3ZQYXJzZXJTdHJlYW0iLCJUcmFuc2Zvcm0iLCJjb25zdHJ1Y3RvciIsInBhcnNlck9wdGlvbnMiLCJvYmplY3RNb2RlIiwibGluZXMiLCJyb3dDb3VudCIsInBhcnNlZFJvd0NvdW50IiwicGFyc2VkTGluZUNvdW50IiwiZW5kRW1pdHRlZCIsImhlYWRlcnNFbWl0dGVkIiwicGFyc2VyIiwiUGFyc2VyIiwiaGVhZGVyVHJhbnNmb3JtZXIiLCJIZWFkZXJUcmFuc2Zvcm1lciIsImRlY29kZXIiLCJTdHJpbmdEZWNvZGVyIiwiZW5jb2RpbmciLCJyb3dUcmFuc2Zvcm1lclZhbGlkYXRvciIsIlJvd1RyYW5zZm9ybWVyVmFsaWRhdG9yIiwiaGFzSGl0Um93TGltaXQiLCJsaW1pdFJvd3MiLCJtYXhSb3dzIiwic2hvdWxkRW1pdFJvd3MiLCJza2lwUm93cyIsInNob3VsZFNraXBMaW5lIiwic2tpcExpbmVzIiwidHJhbnNmb3JtIiwidHJhbnNmb3JtRnVuY3Rpb24iLCJyb3dUcmFuc2Zvcm0iLCJ2YWxpZGF0ZSIsInZhbGlkYXRlRnVuY3Rpb24iLCJyb3dWYWxpZGF0b3IiLCJlbWl0IiwiZXZlbnQiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwicmVzdCIsIkFycmF5IiwiX2tleSIsIl90cmFuc2Zvcm0iLCJkYXRhIiwiZG9uZSIsIndyYXBwZWRDYWxsYmFjayIsIndyYXBEb25lQ2FsbGJhY2siLCJuZXdMaW5lIiwid3JpdGUiLCJyb3dzIiwicGFyc2UiLCJwcm9jZXNzUm93cyIsImUiLCJfZmx1c2giLCJlbmQiLCJoYXNNb3JlRGF0YSIsImxpbmUiLCJjYiIsInJvd3NMZW5ndGgiLCJpdGVyYXRlIiwiaSIsImNhbGxOZXh0IiwiZXJyIiwic2V0SW1tZWRpYXRlIiwidW5kZWZpbmVkIiwiY2hlY2tBbmRFbWl0SGVhZGVycyIsInJvdyIsIm5leHRSb3dDb3VudCIsInRyYW5zZm9ybVJvdyIsInRyYW5zZm9ybVJlc3VsdCIsIkVycm9yIiwiaXNWYWxpZCIsInJlYXNvbiIsInB1c2hSb3ciLCJwYXJzZWRSb3ciLCJ3aXRoSGVhZGVycyIsInNraXBSb3ciLCJ0cmFuc2Zvcm1BbmRWYWxpZGF0ZSIsImhlYWRlcnMiLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImVycm9yQ2FsbGVkIiwiX2xlbjIiLCJhcmdzIiwiX2tleTIiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NzdlBhcnNlclN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUNBLE1BQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUVBLE1BQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLE1BQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUdBLE1BQWFJLGVBQThDLFNBQVFILFFBQUEsQ0FBQUksU0FBUztFQXVCeEVDLFlBQW1CQyxhQUE0QjtJQUMzQyxLQUFLLENBQUM7TUFBRUMsVUFBVSxFQUFFRCxhQUFhLENBQUNDO0lBQVUsQ0FBRSxDQUFDO0lBYjNDLEtBQUFDLEtBQUssR0FBRyxFQUFFO0lBRVYsS0FBQUMsUUFBUSxHQUFHLENBQUM7SUFFWixLQUFBQyxjQUFjLEdBQUcsQ0FBQztJQUVsQixLQUFBQyxlQUFlLEdBQUcsQ0FBQztJQUVuQixLQUFBQyxVQUFVLEdBQUcsS0FBSztJQUVsQixLQUFBQyxjQUFjLEdBQUcsS0FBSztJQUkxQixJQUFJLENBQUNQLGFBQWEsR0FBR0EsYUFBYTtJQUNsQyxJQUFJLENBQUNRLE1BQU0sR0FBRyxJQUFJWixRQUFBLENBQUFhLE1BQU0sQ0FBQ1QsYUFBYSxDQUFDO0lBQ3ZDLElBQUksQ0FBQ1UsaUJBQWlCLEdBQUcsSUFBSWYsWUFBQSxDQUFBZ0IsaUJBQWlCLENBQUNYLGFBQWEsQ0FBQztJQUM3RCxJQUFJLENBQUNZLE9BQU8sR0FBRyxJQUFJ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","\"use strict\";\n\nvar __importDefault = void 0 && (void 0).__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ParserOptions = void 0;\nconst lodash_escaperegexp_1 = __importDefault(require(\"lodash.escaperegexp\"));\nconst lodash_isnil_1 = __importDefault(require(\"lodash.isnil\"));\nclass ParserOptions {\n constructor(opts) {\n var _a;\n this.objectMode = true;\n this.delimiter = ',';\n this.ignoreEmpty = false;\n this.quote = '\"';\n this.escape = null;\n this.escapeChar = this.quote;\n this.comment = null;\n this.supportsComments = false;\n this.ltrim = false;\n this.rtrim = false;\n this.trim = false;\n this.headers = null;\n this.renameHeaders = false;\n this.strictColumnHandling = false;\n this.discardUnmappedColumns = false;\n this.carriageReturn = '\\r';\n this.encoding = 'utf8';\n this.limitRows = false;\n this.maxRows = 0;\n this.skipLines = 0;\n this.skipRows = 0;\n Object.assign(this, opts || {});\n if (this.delimiter.length > 1) {\n throw new Error('delimiter option must be one character long');\n }\n this.escapedDelimiter = lodash_escaperegexp_1.default(this.delimiter);\n this.escapeChar = (_a = this.escape) !== null && _a !== void 0 ? _a : this.quote;\n this.supportsComments = !lodash_isnil_1.default(this.comment);\n this.NEXT_TOKEN_REGEXP = new RegExp(`([^\\\\s]|\\\\r\\\\n|\\\\n|\\\\r|${this.escapedDelimiter})`);\n if (this.maxRows > 0) {\n this.limitRows = true;\n }\n }\n}\nexports.ParserOptions = ParserOptions;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2Rhc2hfZXNjYXBlcmVnZXhwXzEiLCJfX2ltcG9ydERlZmF1bHQiLCJyZXF1aXJlIiwibG9kYXNoX2lzbmlsXzEiLCJQYXJzZXJPcHRpb25zIiwiY29uc3RydWN0b3IiLCJvcHRzIiwib2JqZWN0TW9kZSIsImRlbGltaXRlciIsImlnbm9yZUVtcHR5IiwicXVvdGUiLCJlc2NhcGUiLCJlc2NhcGVDaGFyIiwiY29tbWVudCIsInN1cHBvcnRzQ29tbWVudHMiLCJsdHJpbSIsInJ0cmltIiwidHJpbSIsImhlYWRlcnMiLCJyZW5hbWVIZWFkZXJzIiwic3RyaWN0Q29sdW1uSGFuZGxpbmciLCJkaXNjYXJkVW5tYXBwZWRDb2x1bW5zIiwiY2FycmlhZ2VSZXR1cm4iLCJlbmNvZGluZyIsImxpbWl0Um93cyIsIm1heFJvd3MiLCJza2lwTGluZXMiLCJza2lwUm93cyIsIk9iamVjdCIsImFzc2lnbiIsImxlbmd0aCIsIkVycm9yIiwiZXNjYXBlZERlbGltaXRlciIsImRlZmF1bHQiLCJfYSIsIk5FWFRfVE9LRU5fUkVHRVhQIiwiUmVnRXhwIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9QYXJzZXJPcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE1BQUFBLHFCQUFBLEdBQUFDLGVBQUEsQ0FBQUMsT0FBQTtBQUNBLE1BQUFDLGNBQUEsR0FBQUYsZUFBQSxDQUFBQyxPQUFBO0FBdUJBLE1BQWFFLGFBQWE7RUErQ3RCQyxZQUFtQkMsSUFBd0I7O0lBNUMzQixLQUFBQyxVQUFVLEdBQVksSUFBSTtJQUUxQixLQUFBQyxTQUFTLEdBQVcsR0FBRztJQUV2QixLQUFBQyxXQUFXLEdBQVksS0FBSztJQUU1QixLQUFBQyxLQUFLLEdBQWtCLEdBQUc7SUFFMUIsS0FBQUMsTUFBTSxHQUFrQixJQUFJO0lBRTVCLEtBQUFDLFVBQVUsR0FBa0IsSUFBSSxDQUFDRixLQUFLO0lBRXRDLEtBQUFHLE9BQU8sR0FBa0IsSUFBSTtJQUU3QixLQUFBQyxnQkFBZ0IsR0FBWSxLQUFLO0lBRWpDLEtBQUFDLEtBQUssR0FBWSxLQUFLO0lBRXRCLEtBQUFDLEtBQUssR0FBWSxLQUFLO0lBRXRCLEtBQUFDLElBQUksR0FBWSxLQUFLO0lBRXJCLEtBQUFDLE9BQU8sR0FBMkQsSUFBSTtJQUV0RSxLQUFBQyxhQUFhLEdBQVksS0FBSztJQUU5QixLQUFBQyxvQkFBb0IsR0FBWSxLQUFLO0lBRXJDLEtBQUFDLHNCQUFzQixHQUFZLEtBQUs7SUFFdkMsS0FBQUMsY0FBYyxHQUFXLElBQUk7SUFJN0IsS0FBQUMsUUFBUSxHQUFtQixNQUFNO0lBRWpDLEtBQUFDLFNBQVMsR0FBWSxLQUFLO0lBRTFCLEtBQUFDLE9BQU8sR0FBVyxDQUFDO0lBRW5CLEtBQUFDLFNBQVMsR0FBVyxDQUFDO0lBRXJCLEtBQUFDLFFBQVEsR0FBVyxDQUFDO0lBR2hDQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLEVBQUV2QixJQUFJLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksSUFBSSxDQUFDRSxTQUFTLENBQUNzQixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQzNCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDOztJQUVsRSxJQUFJLENBQUNDLGdCQUFnQixHQUFHaEMscUJBQUEsQ0FBQWlDLE9BQVksQ0FBQyxJQUFJLENBQUN6QixTQUFTLENBQUM7SUFDcEQsSUFBSSxDQUFDSSxVQUFVLElBQUFzQixFQUFBLEdBQUcsSUFBSSxDQUFDdkIsTUFBTSxjQUFBdUIsRUFBQSxjQUFBQSxFQUFBLEdBQUksSUFBSSxDQUFDeEIsS0FBSztJQUMzQyxJQUFJLENBQUNJLGdCQUFnQixHQUFHLENBQUNYLGNBQUEsQ0FBQThCLE9BQUssQ0FBQyxJQUFJLENBQUNwQixPQUFPLENBQUM7SUFDNUMsSUFBSSxDQUFDc0IsaUJBQWlCLEdBQUcsSUFBSUMsTUFBTSxDQUFDLDBCQUEwQixJQUFJLENBQUNKLGdCQUFnQixHQUFHLENBQUM7SUFFdkYsSUFBSSxJQUFJLENBQUNQLE9BQU8sR0FBRyxDQUFDLEVBQUU7TUFDbEIsSUFBSSxDQUFDRCxTQUFTLEdBQUcsSUFBSTs7RUFFN0I7O0FBNURKYSxPQUFBLENBQUFqQyxhQUFBLEdBQUFBLGFBQUEifQ==","\"use strict\";\n\nvar __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = void 0 && (void 0).__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = void 0 && (void 0).__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseString = exports.parseFile = exports.parseStream = exports.parse = exports.ParserOptions = exports.CsvParserStream = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst stream_1 = require(\"stream\");\nconst ParserOptions_1 = require(\"./ParserOptions\");\nconst CsvParserStream_1 = require(\"./CsvParserStream\");\n__exportStar(require(\"./types\"), exports);\nvar CsvParserStream_2 = require(\"./CsvParserStream\");\nObject.defineProperty(exports, \"CsvParserStream\", {\n enumerable: true,\n get: function () {\n return CsvParserStream_2.CsvParserStream;\n }\n});\nvar ParserOptions_2 = require(\"./ParserOptions\");\nObject.defineProperty(exports, \"ParserOptions\", {\n enumerable: true,\n get: function () {\n return ParserOptions_2.ParserOptions;\n }\n});\nexports.parse = args => new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(args));\nexports.parseStream = (stream, options) => stream.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));\nexports.parseFile = function (location) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return fs.createReadStream(location).pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));\n};\nexports.parseString = (string, options) => {\n const rs = new stream_1.Readable();\n rs.push(string);\n rs.push(null);\n return rs.pipe(new CsvParserStream_1.CsvParserStream(new ParserOptions_1.ParserOptions(options)));\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9faW1wb3J0U3RhciIsInJlcXVpcmUiLCJzdHJlYW1fMSIsIlBhcnNlck9wdGlvbnNfMSIsIkNzdlBhcnNlclN0cmVhbV8xIiwiX19leHBvcnRTdGFyIiwiZXhwb3J0cyIsIkNzdlBhcnNlclN0cmVhbV8yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiQ3N2UGFyc2VyU3RyZWFtIiwiUGFyc2VyT3B0aW9uc18yIiwiUGFyc2VyT3B0aW9ucyIsInBhcnNlIiwiYXJncyIsInBhcnNlU3RyZWFtIiwic3RyZWFtIiwib3B0aW9ucyIsInBpcGUiLCJwYXJzZUZpbGUiLCJsb2NhdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNyZWF0ZVJlYWRTdHJlYW0iLCJwYXJzZVN0cmluZyIsInN0cmluZyIsInJzIiwiUmVhZGFibGUiLCJwdXNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFBQSxFQUFBLEdBQUFDLFlBQUEsQ0FBQUMsT0FBQTtBQUNBLE1BQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLE1BQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLE1BQUFHLGlCQUFBLEdBQUFILE9BQUE7QUFHQUksWUFBQSxDQUFBSixPQUFBLGFBQUFLLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBTixPQUFBO0FBQVNPLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxPQUFBO0VBQUFJLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUosaUJBQUEsQ0FBQUssZUFBZTtFQUFBO0FBQUE7QUFDeEIsSUFBQUMsZUFBQSxHQUFBWixPQUFBO0FBQVNPLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxPQUFBO0VBQUFJLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUUsZUFBQSxDQUFBQyxhQUFhO0VBQUE7QUFBQTtBQUVUUixPQUFBLENBQUFTLEtBQUssR0FBa0NDLElBQXdCLElBQ3hFLElBQUlaLGlCQUFBLENBQUFRLGVBQWUsQ0FBQyxJQUFJVCxlQUFBLENBQUFXLGFBQWEsQ0FBQ0UsSUFBSSxDQUFDLENBQUM7QUFFbkNWLE9BQUEsQ0FBQVcsV0FBVyxHQUFHLENBQ3ZCQyxNQUE2QixFQUM3QkMsT0FBMkIsS0FDSEQsTUFBTSxDQUFDRSxJQUFJLENBQUMsSUFBSWhCLGlCQUFBLENBQUFRLGVBQWUsQ0FBQyxJQUFJVCxlQUFBLENBQUFXLGFBQWEsQ0FBQ0ssT0FBTyxDQUFDLENBQUMsQ0FBQztBQUUzRWIsT0FBQSxDQUFBZSxTQUFTLEdBQUcsVUFDckJDLFFBQWdCO0VBQUEsSUFDaEJILE9BQUEsR0FBQUksU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQTZCLEVBQUU7RUFBQSxPQUNQeEIsRUFBRSxDQUFDMkIsZ0JBQWdCLENBQUNKLFFBQVEsQ0FBQyxDQUFDRixJQUFJLENBQUMsSUFBSWhCLGlCQUFBLENBQUFRLGVBQWUsQ0FBQyxJQUFJVCxlQUFBLENBQUFXLGFBQWEsQ0FBQ0ssT0FBTyxDQUFDLENBQUMsQ0FBQztBQUFBO0FBRWxHYixPQUFBLENBQUFxQixXQUFXLEdBQUcsQ0FDdkJDLE1BQWMsRUFDZFQsT0FBMkIsS0FDSjtFQUN2QixNQUFNVSxFQUFFLEdBQUcsSUFBSTNCLFFBQUEsQ0FBQTRCLFFBQVEsRUFBRTtFQUN6QkQsRUFBRSxDQUFDRSxJQUFJLENBQUNILE1BQU0sQ0FBQztFQUNmQyxFQUFFLENBQUNFLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDYixPQUFPRixFQUFFLENBQUNULElBQUksQ0FBQyxJQUFJaEIsaUJBQUEsQ0FBQVEsZUFBZSxDQUFDLElBQUlULGVBQUEsQ0FBQVcsYUFBYSxDQUFDSyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUMifQ==","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = void 0;\nconst Scanner_1 = require(\"./Scanner\");\nconst RowParser_1 = require(\"./RowParser\");\nconst Token_1 = require(\"./Token\");\nclass Parser {\n constructor(parserOptions) {\n this.parserOptions = parserOptions;\n this.rowParser = new RowParser_1.RowParser(this.parserOptions);\n }\n static removeBOM(line) {\n // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n // conversion translates it to FEFF (UTF-16 BOM)\n if (line && line.charCodeAt(0) === 0xfeff) {\n return line.slice(1);\n }\n return line;\n }\n parse(line, hasMoreData) {\n const scanner = new Scanner_1.Scanner({\n line: Parser.removeBOM(line),\n parserOptions: this.parserOptions,\n hasMoreData\n });\n if (this.parserOptions.supportsComments) {\n return this.parseWithComments(scanner);\n }\n return this.parseWithoutComments(scanner);\n }\n parseWithoutComments(scanner) {\n const rows = [];\n let shouldContinue = true;\n while (shouldContinue) {\n shouldContinue = this.parseRow(scanner, rows);\n }\n return {\n line: scanner.line,\n rows\n };\n }\n parseWithComments(scanner) {\n const {\n parserOptions\n } = this;\n const rows = [];\n for (let nextToken = scanner.nextCharacterToken; nextToken !== null; nextToken = scanner.nextCharacterToken) {\n if (Token_1.Token.isTokenComment(nextToken, parserOptions)) {\n const cursor = scanner.advancePastLine();\n if (cursor === null) {\n return {\n line: scanner.lineFromCursor,\n rows\n };\n }\n if (!scanner.hasMoreCharacters) {\n return {\n line: scanner.lineFromCursor,\n rows\n };\n }\n scanner.truncateToCursor();\n } else if (!this.parseRow(scanner, rows)) {\n break;\n }\n }\n return {\n line: scanner.line,\n rows\n };\n }\n parseRow(scanner, rows) {\n const nextToken = scanner.nextNonSpaceToken;\n if (!nextToken) {\n return false;\n }\n const row = this.rowParser.parse(scanner);\n if (row === null) {\n return false;\n }\n if (this.parserOptions.ignoreEmpty && RowParser_1.RowParser.isEmptyRow(row)) {\n return true;\n }\n rows.push(row);\n return true;\n }\n}\nexports.Parser = Parser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTY2FubmVyXzEiLCJyZXF1aXJlIiwiUm93UGFyc2VyXzEiLCJUb2tlbl8xIiwiUGFyc2VyIiwiY29uc3RydWN0b3IiLCJwYXJzZXJPcHRpb25zIiwicm93UGFyc2VyIiwiUm93UGFyc2VyIiwicmVtb3ZlQk9NIiwibGluZSIsImNoYXJDb2RlQXQiLCJzbGljZSIsInBhcnNlIiwiaGFzTW9yZURhdGEiLCJzY2FubmVyIiwiU2Nhbm5lciIsInN1cHBvcnRzQ29tbWVudHMiLCJwYXJzZVdpdGhDb21tZW50cyIsInBhcnNlV2l0aG91dENvbW1lbnRzIiwicm93cyIsInNob3VsZENvbnRpbnVlIiwicGFyc2VSb3ciLCJuZXh0VG9rZW4iLCJuZXh0Q2hhcmFjdGVyVG9rZW4iLCJUb2tlbiIsImlzVG9rZW5Db21tZW50IiwiY3Vyc29yIiwiYWR2YW5jZVBhc3RMaW5lIiwibGluZUZyb21DdXJzb3IiLCJoYXNNb3JlQ2hhcmFjdGVycyIsInRydW5jYXRlVG9DdXJzb3IiLCJuZXh0Tm9uU3BhY2VUb2tlbiIsInJvdyIsImlnbm9yZUVtcHR5IiwiaXNFbXB0eVJvdyIsInB1c2giLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhcnNlci9QYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLE1BQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBLE1BQUFFLE9BQUEsR0FBQUYsT0FBQTtBQU1BLE1BQWFHLE1BQU07RUFjZkMsWUFBbUJDLGFBQTRCO0lBQzNDLElBQUksQ0FBQ0EsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsU0FBUyxHQUFHLElBQUlMLFdBQUEsQ0FBQU0sU0FBUyxDQUFDLElBQUksQ0FBQ0YsYUFBYSxDQUFDO0VBQ3REO0VBaEJRLE9BQU9HLFNBQVNBLENBQUNDLElBQVk7SUFDakM7SUFDQTtJQUNBLElBQUlBLElBQUksSUFBSUEsSUFBSSxDQUFDQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxFQUFFO01BQ3ZDLE9BQU9ELElBQUksQ0FBQ0UsS0FBSyxDQUFDLENBQUMsQ0FBQzs7SUFFeEIsT0FBT0YsSUFBSTtFQUNmO0VBV09HLEtBQUtBLENBQUNILElBQVksRUFBRUksV0FBb0I7SUFDM0MsTUFBTUMsT0FBTyxHQUFHLElBQUlmLFNBQUEsQ0FBQWdCLE9BQU8sQ0FBQztNQUN4Qk4sSUFBSSxFQUFFTixNQUFNLENBQUNLLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDO01BQzVCSixhQUFhLEVBQUUsSUFBSSxDQUFDQSxhQUFhO01BQ2pDUTtLQUNILENBQUM7SUFDRixJQUFJLElBQUksQ0FBQ1IsYUFBYSxDQUFDVyxnQkFBZ0IsRUFBRTtNQUNyQyxPQUFPLElBQUksQ0FBQ0MsaUJBQWlCLENBQUNILE9BQU8sQ0FBQzs7SUFFMUMsT0FBTyxJQUFJLENBQUNJLG9CQUFvQixDQUFDSixPQUFPLENBQUM7RUFDN0M7RUFFUUksb0JBQW9CQSxDQUFDSixPQUFnQjtJQUN6QyxNQUFNSyxJQUFJLEdBQWUsRUFBRTtJQUMzQixJQUFJQyxjQUFjLEdBQUcsSUFBSTtJQUN6QixPQUFPQSxjQUFjLEVBQUU7TUFDbkJBLGNBQWMsR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQ1AsT0FBTyxFQUFFSyxJQUFJLENBQUM7O0lBRWpELE9BQU87TUFBRVYsSUFBSSxFQUFFSyxPQUFPLENBQUNMLElBQUk7TUFBRVU7SUFBSSxDQUFFO0VBQ3ZDO0VBRVFGLGlCQUFpQkEsQ0FBQ0gsT0FBZ0I7SUFDdEMsTUFBTTtNQUFFVDtJQUFhLENBQUUsR0FBRyxJQUFJO0lBQzlCLE1BQU1jLElBQUksR0FBZSxFQUFFO0lBQzNCLEtBQUssSUFBSUcsU0FBUyxHQUFHUixPQUFPLENBQUNTLGtCQUFrQixFQUFFRCxTQUFTLEtBQUssSUFBSSxFQUFFQSxTQUFTLEdBQUdSLE9BQU8sQ0FBQ1Msa0JBQWtCLEVBQUU7TUFDekcsSUFBSXJCLE9BQUEsQ0FBQXNCLEtBQUssQ0FBQ0MsY0FBYyxDQUFDSCxTQUFTLEVBQUVqQixhQUFhLENBQUMsRUFBRTtRQUNoRCxNQUFNcUIsTUFBTSxHQUFHWixPQUFPLENBQUNhLGVBQWUsRUFBRTtRQUN4QyxJQUFJRCxNQUFNLEtBQUssSUFBSSxFQUFFO1VBQ2pCLE9BQU87WUFBRWpCLElBQUksRUFBRUssT0FBTyxDQUFDYyxjQUFjO1lBQUVUO1VBQUksQ0FBRTs7UUFFakQsSUFBSSxDQUFDTCxPQUFPLENBQUNlLGlCQUFpQixFQUFFO1VBQzVCLE9BQU87WUFBRXBCLElBQUksRUFBRUssT0FBTyxDQUFDYyxjQUFjO1lBQUVUO1VBQUksQ0FBRTs7UUFFakRMLE9BQU8sQ0FBQ2dCLGdCQUFnQixFQUFFO09BQzdCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQ1QsUUFBUSxDQUFDUCxPQUFPLEVBQUVLLElBQUksQ0FBQyxFQUFFO1FBQ3RDOzs7SUFHUixPQUFPO01BQUVWLElBQUksRUFBRUssT0FBTyxDQUFDTCxJQUFJO01BQUVVO0lBQUksQ0FBRTtFQUN2QztFQUVRRSxRQUFRQSxDQUFDUCxPQUFnQixFQUFFSyxJQUFnQjtJQUMvQyxNQUFNRyxTQUFTLEdBQUdSLE9BQU8sQ0FBQ2lCLGlCQUFpQjtJQUMzQyxJQUFJLENBQUNULFNBQVMsRUFBRTtNQUNaLE9BQU8sS0FBSzs7SUFFaEIsTUFBTVUsR0FBRyxHQUFHLElBQUksQ0FBQzFCLFNBQVMsQ0FBQ00sS0FBSyxDQUFDRSxPQUFPLENBQUM7SUFDekMsSUFBSWtCLEdBQUcsS0FBSyxJQUFJLEVBQUU7TUFDZCxPQUFPLEtBQUs7O0lBRWhCLElBQUksSUFBSSxDQUFDM0IsYUFBYSxDQUFDNEIsV0FBVyxJQUFJaEMsV0FBQSxDQUFBTSxTQUFTLENBQUMyQixVQUFVLENBQUNGLEdBQUcsQ0FBQyxFQUFFO01BQzdELE9BQU8sSUFBSTs7SUFFZmIsSUFBSSxDQUFDZ0IsSUFBSSxDQUFDSCxHQUFHLENBQUM7SUFDZCxPQUFPLElBQUk7RUFDZjs7QUExRUpJLE9BQUEsQ0FBQWpDLE1BQUEsR0FBQUEsTUFBQSJ9","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RowParser = void 0;\nconst column_1 = require(\"./column\");\nconst Token_1 = require(\"./Token\");\nconst EMPTY_STRING = '';\nclass RowParser {\n constructor(parserOptions) {\n this.parserOptions = parserOptions;\n this.columnParser = new column_1.ColumnParser(parserOptions);\n }\n static isEmptyRow(row) {\n return row.join(EMPTY_STRING).replace(/\\s+/g, EMPTY_STRING) === EMPTY_STRING;\n }\n parse(scanner) {\n const {\n parserOptions\n } = this;\n const {\n hasMoreData\n } = scanner;\n const currentScanner = scanner;\n const columns = [];\n let currentToken = this.getStartToken(currentScanner, columns);\n while (currentToken) {\n if (Token_1.Token.isTokenRowDelimiter(currentToken)) {\n currentScanner.advancePastToken(currentToken);\n // if ends with CR and there is more data, keep unparsed due to possible\n // coming LF in CRLF\n if (!currentScanner.hasMoreCharacters && Token_1.Token.isTokenCarriageReturn(currentToken, parserOptions) && hasMoreData) {\n return null;\n }\n currentScanner.truncateToCursor();\n return columns;\n }\n if (!this.shouldSkipColumnParse(currentScanner, currentToken, columns)) {\n const item = this.columnParser.parse(currentScanner);\n if (item === null) {\n return null;\n }\n columns.push(item);\n }\n currentToken = currentScanner.nextNonSpaceToken;\n }\n if (!hasMoreData) {\n currentScanner.truncateToCursor();\n return columns;\n }\n return null;\n }\n getStartToken(scanner, columns) {\n const currentToken = scanner.nextNonSpaceToken;\n if (currentToken !== null && Token_1.Token.isTokenDelimiter(currentToken, this.parserOptions)) {\n columns.push('');\n return scanner.nextNonSpaceToken;\n }\n return currentToken;\n }\n shouldSkipColumnParse(scanner, currentToken, columns) {\n const {\n parserOptions\n } = this;\n if (Token_1.Token.isTokenDelimiter(currentToken, parserOptions)) {\n scanner.advancePastToken(currentToken);\n // if the delimiter is at the end of a line\n const nextToken = scanner.nextCharacterToken;\n if (!scanner.hasMoreCharacters || nextToken !== null && Token_1.Token.isTokenRowDelimiter(nextToken)) {\n columns.push('');\n return true;\n }\n if (nextToken !== null && Token_1.Token.isTokenDelimiter(nextToken, parserOptions)) {\n columns.push('');\n return true;\n }\n }\n return false;\n }\n}\nexports.RowParser = RowParser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb2x1bW5fMSIsInJlcXVpcmUiLCJUb2tlbl8xIiwiRU1QVFlfU1RSSU5HIiwiUm93UGFyc2VyIiwiY29uc3RydWN0b3IiLCJwYXJzZXJPcHRpb25zIiwiY29sdW1uUGFyc2VyIiwiQ29sdW1uUGFyc2VyIiwiaXNFbXB0eVJvdyIsInJvdyIsImpvaW4iLCJyZXBsYWNlIiwicGFyc2UiLCJzY2FubmVyIiwiaGFzTW9yZURhdGEiLCJjdXJyZW50U2Nhbm5lciIsImNvbHVtbnMiLCJjdXJyZW50VG9rZW4iLCJnZXRTdGFydFRva2VuIiwiVG9rZW4iLCJpc1Rva2VuUm93RGVsaW1pdGVyIiwiYWR2YW5jZVBhc3RUb2tlbiIsImhhc01vcmVDaGFyYWN0ZXJzIiwiaXNUb2tlbkNhcnJpYWdlUmV0dXJuIiwidHJ1bmNhdGVUb0N1cnNvciIsInNob3VsZFNraXBDb2x1bW5QYXJzZSIsIml0ZW0iLCJwdXNoIiwibmV4dE5vblNwYWNlVG9rZW4iLCJpc1Rva2VuRGVsaW1pdGVyIiwibmV4dFRva2VuIiwibmV4dENoYXJhY3RlclRva2VuIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJzZXIvUm93UGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxNQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFHQSxNQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxNQUFNRSxZQUFZLEdBQUcsRUFBRTtBQUV2QixNQUFhQyxTQUFTO0VBU2xCQyxZQUFtQkMsYUFBNEI7SUFDM0MsSUFBSSxDQUFDQSxhQUFhLEdBQUdBLGFBQWE7SUFDbEMsSUFBSSxDQUFDQyxZQUFZLEdBQUcsSUFBSVAsUUFBQSxDQUFBUSxZQUFZLENBQUNGLGFBQWEsQ0FBQztFQUN2RDtFQVhBLE9BQU9HLFVBQVVBLENBQUNDLEdBQWE7SUFDM0IsT0FBT0EsR0FBRyxDQUFDQyxJQUFJLENBQUNSLFlBQVksQ0FBQyxDQUFDUyxPQUFPLENBQUMsTUFB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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Scanner = void 0;\nconst Token_1 = require(\"./Token\");\nconst ROW_DELIMITER = /((?:\\r\\n)|\\n|\\r)/;\nclass Scanner {\n constructor(args) {\n this.cursor = 0;\n this.line = args.line;\n this.lineLength = this.line.length;\n this.parserOptions = args.parserOptions;\n this.hasMoreData = args.hasMoreData;\n this.cursor = args.cursor || 0;\n }\n get hasMoreCharacters() {\n return this.lineLength > this.cursor;\n }\n get nextNonSpaceToken() {\n const {\n lineFromCursor\n } = this;\n const regex = this.parserOptions.NEXT_TOKEN_REGEXP;\n if (lineFromCursor.search(regex) === -1) {\n return null;\n }\n const match = regex.exec(lineFromCursor);\n if (match == null) {\n return null;\n }\n const token = match[1];\n const startCursor = this.cursor + (match.index || 0);\n return new Token_1.Token({\n token,\n startCursor,\n endCursor: startCursor + token.length - 1\n });\n }\n get nextCharacterToken() {\n const {\n cursor,\n lineLength\n } = this;\n if (lineLength <= cursor) {\n return null;\n }\n return new Token_1.Token({\n token: this.line[cursor],\n startCursor: cursor,\n endCursor: cursor\n });\n }\n get lineFromCursor() {\n return this.line.substr(this.cursor);\n }\n advancePastLine() {\n const match = ROW_DELIMITER.exec(this.lineFromCursor);\n if (!match) {\n if (this.hasMoreData) {\n return null;\n }\n this.cursor = this.lineLength;\n return this;\n }\n this.cursor += (match.index || 0) + match[0].length;\n return this;\n }\n advanceTo(cursor) {\n this.cursor = cursor;\n return this;\n }\n advanceToToken(token) {\n this.cursor = token.startCursor;\n return this;\n }\n advancePastToken(token) {\n this.cursor = token.endCursor + 1;\n return this;\n }\n truncateToCursor() {\n this.line = this.lineFromCursor;\n this.lineLength = this.line.length;\n this.cursor = 0;\n return this;\n }\n}\nexports.Scanner = Scanner;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb2tlbl8xIiwicmVxdWlyZSIsIlJPV19ERUxJTUlURVIiLCJTY2FubmVyIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiY3Vyc29yIiwibGluZSIsImxpbmVMZW5ndGgiLCJsZW5ndGgiLCJwYXJzZXJPcHRpb25zIiwiaGFzTW9yZURhdGEiLCJoYXNNb3JlQ2hhcmFjdGVycyIsIm5leHROb25TcGFjZVRva2VuIiwibGluZUZyb21DdXJzb3IiLCJyZWdleCIsIk5FWFRfVE9LRU5fUkVHRVhQIiwic2VhcmNoIiwibWF0Y2giLCJleGVjIiwidG9rZW4iLCJzdGFydEN1cnNvciIsImluZGV4IiwiVG9rZW4iLCJlbmRDdXJzb3IiLCJuZXh0Q2hhcmFjdGVyVG9rZW4iLCJzdWJzdHIiLCJhZHZhbmNlUGFzdExpbmUiLCJhZHZhbmNlVG8iLCJhZHZhbmNlVG9Ub2tlbiIsImFkdmFuY2VQYXN0VG9rZW4iLCJ0cnVuY2F0ZVRvQ3Vyc29yIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJzZXIvU2Nhbm5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsTUFBTUMsYUFBYSxHQUFHLGtCQUFrQjtBQVN4QyxNQUFhQyxPQUFPO0VBV2hCQyxZQUFtQkMsSUFBaUI7SUFGN0IsS0FBQUMsTUFBTSxHQUFHLENBQUM7SUFHYixJQUFJLENBQUNDLElBQUksR0FBR0YsSUFBSSxDQUFDRSxJQUFJO0lBQ3JCLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUksQ0FBQ0QsSUFBSSxDQUFDRSxNQUFNO0lBQ2xDLElBQUksQ0FBQ0MsYUFBYSxHQUFHTCxJQUFJLENBQUNLLGFBQWE7SUFDdkMsSUFBSSxDQUFDQyxXQUFXLEdBQUdOLElBQUksQ0FBQ00sV0FBVztJQUNuQyxJQUFJLENBQUNMLE1BQU0sR0FBR0QsSUFBSSxDQUFDQyxNQUFNLElBQUksQ0FBQztFQUNsQztFQUVBLElB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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Token = void 0;\nclass Token {\n constructor(tokenArgs) {\n this.token = tokenArgs.token;\n this.startCursor = tokenArgs.startCursor;\n this.endCursor = tokenArgs.endCursor;\n }\n static isTokenRowDelimiter(token) {\n const content = token.token;\n return content === '\\r' || content === '\\n' || content === '\\r\\n';\n }\n static isTokenCarriageReturn(token, parserOptions) {\n return token.token === parserOptions.carriageReturn;\n }\n static isTokenComment(token, parserOptions) {\n return parserOptions.supportsComments && !!token && token.token === parserOptions.comment;\n }\n static isTokenEscapeCharacter(token, parserOptions) {\n return token.token === parserOptions.escapeChar;\n }\n static isTokenQuote(token, parserOptions) {\n return token.token === parserOptions.quote;\n }\n static isTokenDelimiter(token, parserOptions) {\n return token.token === parserOptions.delimiter;\n }\n}\nexports.Token = Token;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb2tlbiIsImNvbnN0cnVjdG9yIiwidG9rZW5BcmdzIiwidG9rZW4iLCJzdGFydEN1cnNvciIsImVuZEN1cnNvciIsImlzVG9rZW5Sb3dEZWxpbWl0ZXIiLCJjb250ZW50IiwiaXNUb2tlbkNhcnJpYWdlUmV0dXJuIiwicGFyc2VyT3B0aW9ucyIsImNhcnJpYWdlUmV0dXJuIiwiaXNUb2tlbkNvbW1lbnQiLCJzdXBwb3J0c0NvbW1lbnRzIiwiY29tbWVudCIsImlzVG9rZW5Fc2NhcGVDaGFyYWN0ZXIiLCJlc2NhcGVDaGFyIiwiaXNUb2tlblF1b3RlIiwicXVvdGUiLCJpc1Rva2VuRGVsaW1pdGVyIiwiZGVsaW1pdGVyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXJzZXIvVG9rZW4udHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7OztBQVVBLE1BQWFBLEtBQUs7RUFnQ2RDLFlBQW1CQyxTQUFvQjtJQUNuQyxJQUFJLENBQUNDLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUFLO0lBQzVCLElBQUksQ0FBQ0MsV0FBVyxHQUFHRixTQUFTLENBQUNFLFdBQVc7SUFDeEMsSUFBSSxDQUFDQyxTQUFTLEdBQUdILFNBQVMsQ0FBQ0csU0FBUztFQUN4QztFQW5DTyxPQUFPQyxtQkFBbUJBLENBQUNILEtBQVk7SUFDMUMsTUFBTUksT0FBTyxHQUFHSixLQUFLLENBQUNBLEtBQUs7SUFDM0IsT0FBT0ksT0FBTyxLQUFLLElBQUksSUFBSUEsT0FBTyxLQUFLLElBQUksSUFBSUEsT0FBTyxLQUFLLE1BQU07RUFDckU7RUFFTyxPQUFPQyxxQkFBcUJBLENBQUNMLEtBQVksRUFBRU0sYUFBNEI7SUFDMUUsT0FBT04sS0FBSyxDQUFDQSxLQUFLLEtBQUtNLGFBQWEsQ0FBQ0MsY0FBYztFQUN2RDtFQUVPLE9BQU9DLGNBQWNBLENBQUNSLEtBQVksRUFBRU0sYUFBNEI7SUFDbkUsT0FBT0EsYUFBYSxDQUFDRyxnQkFBZ0IsSUFBSSxDQUFDLENBQUNULEtBQUssSUFBSUEsS0FBSyxDQUFDQSxLQUFLLEtBQUtNLGFBQWEsQ0FBQ0ksT0FBTztFQUM3RjtFQUVPLE9BQU9DLHNCQUFzQkEsQ0FBQ1gsS0FBWSxFQUFFTSxhQUE0QjtJQUMzRSxPQUFPTixLQUFLLENBQUNBLEtBQUssS0FBS00sYUFBYSxDQUFDTSxVQUFVO0VBQ25EO0VBRU8sT0FBT0MsWUFBWUEsQ0FBQ2IsS0FBWSxFQUFFTSxhQUE0QjtJQUNqRSxPQUFPTixLQUFLLENBQUNBLEtBQUssS0FBS00sYUFBYSxDQUFDUSxLQUFLO0VBQzlDO0VBRU8sT0FBT0MsZ0JBQWdCQSxDQUFDZixLQUFZLEVBQUVNLGFBQTRCO0lBQ3JFLE9BQU9OLEtBQUssQ0FBQ0EsS0FBSyxLQUFLTSxhQUFhLENBQUNVLFNBQVM7RUFDbEQ7O0FBeEJKQyxPQUFBLENBQUFwQixLQUFBLEdBQUFBLEtBQUEifQ==","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColumnFormatter = void 0;\nclass ColumnFormatter {\n constructor(parserOptions) {\n if (parserOptions.trim) {\n this.format = col => col.trim();\n } else if (parserOptions.ltrim) {\n this.format = col => col.trimLeft();\n } else if (parserOptions.rtrim) {\n this.format = col => col.trimRight();\n } else {\n this.format = col => col;\n }\n }\n}\nexports.ColumnFormatter = ColumnFormatter;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW5Gb3JtYXR0ZXIiLCJjb25zdHJ1Y3RvciIsInBhcnNlck9wdGlvbnMiLCJ0cmltIiwiZm9ybWF0IiwiY29sIiwibHRyaW0iLCJ0cmltTGVmdCIsInJ0cmltIiwidHJpbVJpZ2h0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYXJzZXIvY29sdW1uL0NvbHVtbkZvcm1hdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBYUEsZUFBZTtFQUd4QkMsWUFBbUJDLGFBQTRCO0lBQzNDLElBQUlBLGFBQWEsQ0FBQ0MsSUFBSSxFQUFFO01BQ3BCLElBQUksQ0FBQ0MsTUFBTSxHQUFJQyxHQUFXLElBQWFBLEdBQUcsQ0FBQ0YsSUFBSSxFQUFFO0tBQ3BELE1BQU0sSUFBSUQsYUFBYSxDQUFDSSxLQUFLLEVBQUU7TUFDNUIsSUFBSSxDQUFDRixNQUFNLEdBQUlDLEdBQVcsSUFBYUEsR0FBRyxDQUFDRSxRQUFRLEVBQUU7S0FDeEQsTUFBTSxJQUFJTCxhQUFhLENBQUNNLEtBQUssRUFBRTtNQUM1QixJQUFJLENBQUNKLE1BQU0sR0FBSUMsR0FBVyxJQUFhQSxHQUFHLENBQUNJLFNBQVMsRUFBRTtLQUN6RCxNQUFNO01BQ0gsSUFBSSxDQUFDTCxNQUFNLEdBQUlDLEdBQVcsSUFBYUEsR0FBRzs7RUFFbEQ7O0FBYkpLLE9BQUEsQ0FBQVYsZUFBQSxHQUFBQSxlQUFBIn0=","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColumnParser = void 0;\nconst NonQuotedColumnParser_1 = require(\"./NonQuotedColumnParser\");\nconst QuotedColumnParser_1 = require(\"./QuotedColumnParser\");\nconst Token_1 = require(\"../Token\");\nclass ColumnParser {\n constructor(parserOptions) {\n this.parserOptions = parserOptions;\n this.quotedColumnParser = new QuotedColumnParser_1.QuotedColumnParser(parserOptions);\n this.nonQuotedColumnParser = new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);\n }\n parse(scanner) {\n const {\n nextNonSpaceToken\n } = scanner;\n if (nextNonSpaceToken !== null && Token_1.Token.isTokenQuote(nextNonSpaceToken, this.parserOptions)) {\n scanner.advanceToToken(nextNonSpaceToken);\n return this.quotedColumnParser.parse(scanner);\n }\n return this.nonQuotedColumnParser.parse(scanner);\n }\n}\nexports.ColumnParser = ColumnParser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOb25RdW90ZWRDb2x1bW5QYXJzZXJfMSIsInJlcXVpcmUiLCJRdW90ZWRDb2x1bW5QYXJzZXJfMSIsIlRva2VuXzEiLCJDb2x1bW5QYXJzZXIiLCJjb25zdHJ1Y3RvciIsInBhcnNlck9wdGlvbnMiLCJxdW90ZWRDb2x1bW5QYXJzZXIiLCJRdW90ZWRDb2x1bW5QYXJzZXIiLCJub25RdW90ZWRDb2x1bW5QYXJzZXIiLCJOb25RdW90ZWRDb2x1bW5QYXJzZXIiLCJwYXJzZSIsInNjYW5uZXIiLCJuZXh0Tm9uU3BhY2VUb2tlbiIsIlRva2VuIiwiaXNUb2tlblF1b3RlIiwiYWR2YW5jZVRvVG9rZW4iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhcnNlci9jb2x1bW4vQ29sdW1uUGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxNQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsTUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUVBLE1BQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLE1BQWFHLFlBQVk7RUFPckJDLFlBQW1CQyxhQUE0QjtJQUMzQyxJQUFJLENBQUNBLGFBQWEsR0FBR0EsYUFBYTtJQUNsQyxJQUFJLENBQUNDLGtCQUFrQixHQUFHLElBQUlMLG9CQUFBLENBQUFNLGtCQUFrQixDQUFDRixhQUFhLENBQUM7SUFDL0QsSUFBSSxDQUFDRyxxQkFBcUIsR0FBRyxJQUFJVCx1QkFBQSxDQUFBVSxxQkFBcUIsQ0FBQ0osYUFBYSxDQUFDO0VBQ3pFO0VBRU9LLEtBQUtBLENBQUNDLE9BQWdCO0lBQ3pCLE1BQU07TUFBRUM7SUFBaUIsQ0FBRSxHQUFHRCxPQUFPO0lBQ3JDLElBQUlDLGlCQUFpQixLQUFLLElBQUksSUFBSVYsT0FBQSxDQUFBVyxLQUFLLENBQUNDLFlBQVksQ0FBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDUCxhQUFhLENBQUMsRUFBRTtNQUN6Rk0sT0FBTyxDQUFDSSxjQUFjLENBQUNILGlCQUFpQixDQUFDO01BQ3pDLE9BQU8sSUFBSSxDQUFDTixrQkFBa0IsQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLENBQUM7O0lBRWpELE9BQU8sSUFBSSxDQUFDSCxxQkFBcUIsQ0FBQ0UsS0FBSyxDQUFDQyxPQUFPLENBQUM7RUFDcEQ7O0FBcEJKSyxPQUFBLENBQUFiLFlBQUEsR0FBQUEsWUFBQSJ9","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NonQuotedColumnParser = void 0;\nconst ColumnFormatter_1 = require(\"./ColumnFormatter\");\nconst Token_1 = require(\"../Token\");\nclass NonQuotedColumnParser {\n constructor(parserOptions) {\n this.parserOptions = parserOptions;\n this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);\n }\n parse(scanner) {\n if (!scanner.hasMoreCharacters) {\n return null;\n }\n const {\n parserOptions\n } = this;\n const characters = [];\n let nextToken = scanner.nextCharacterToken;\n for (; nextToken; nextToken = scanner.nextCharacterToken) {\n if (Token_1.Token.isTokenDelimiter(nextToken, parserOptions) || Token_1.Token.isTokenRowDelimiter(nextToken)) {\n break;\n }\n characters.push(nextToken.token);\n scanner.advancePastToken(nextToken);\n }\n return this.columnFormatter.format(characters.join(''));\n }\n}\nexports.NonQuotedColumnParser = NonQuotedColumnParser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW5Gb3JtYXR0ZXJfMSIsInJlcXVpcmUiLCJUb2tlbl8xIiwiTm9uUXVvdGVkQ29sdW1uUGFyc2VyIiwiY29uc3RydWN0b3IiLCJwYXJzZXJPcHRpb25zIiwiY29sdW1uRm9ybWF0dGVyIiwiQ29sdW1uRm9ybWF0dGVyIiwicGFyc2UiLCJzY2FubmVyIiwiaGFzTW9yZUNoYXJhY3RlcnMiLCJjaGFyYWN0ZXJzIiwibmV4dFRva2VuIiwibmV4dENoYXJhY3RlclRva2VuIiwiVG9rZW4iLCJpc1Rva2VuRGVsaW1pdGVyIiwiaXNUb2tlblJvd0RlbGltaXRlciIsInB1c2giLCJ0b2tlbiIsImFkdmFuY2VQYXN0VG9rZW4iLCJmb3JtYXQiLCJqb2luIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYXJzZXIvY29sdW1uL05vblF1b3RlZENvbHVtblBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBQUEsaUJBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUVBLE1BQWFFLHFCQUFxQjtFQUs5QkMsWUFBbUJDLGFBQTRCO0lBQzNDLElBQUksQ0FBQ0EsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsZUFBZSxHQUFHLElBQUlOLGlCQUFBLENBQUFPLGVBQWUsQ0FBQ0YsYUFBYSxDQUFDO0VBQzdEO0VBRU9HLEtBQUtBLENBQUNDLE9BQWdCO0lBQ3pCLElBQUksQ0FBQ0EsT0FBTyxDQUFDQyxpQkFBaUIsRUFBRTtNQUM1QixPQUFPLElBQUk7O0lBRWYsTUFBTTtNQUFFTDtJQUFhLENBQUUsR0FBRyxJQUFJO0lBQzlCLE1BQU1NLFVBQVUsR0FBRyxFQUFFO0lBQ3JCLElBQUlDLFNBQVMsR0FBR0gsT0FBTyxDQUFDSSxrQkFBa0I7SUFDMUMsT0FBT0QsU0FBUyxFQUFFQSxTQUFTLEdBQUdILE9BQU8sQ0FBQ0ksa0JBQWtCLEVBQUU7TUFDdEQsSUFBSVgsT0FBQSxDQUFBWSxLQUFLLENBQUNDLGdCQUFnQixDQUFDSCxTQUFTLEVBQUVQLGFBQWEsQ0FBQyxJQUFJSCxPQUFBLENBQUFZLEtBQUssQ0FBQ0UsbUJBQW1CLENBQUNKLFNBQVMsQ0FBQyxFQUFFO1FBQzFGOztNQUVKRCxVQUFVLENBQUNNLElBQUksQ0FBQ0wsU0FBUyxDQUFDTSxLQUFLLENBQUM7TUFDaENULE9BQU8sQ0FBQ1UsZ0JBQWdCLENBQUNQLFNBQVMsQ0FBQzs7SUFFdkMsT0FBTyxJQUFJLENBQUNOLGVBQWUsQ0FBQ2MsTUFBTSxDQUFDVCxVQUFVLENBQUNVLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUMzRDs7QUF6QkpDLE9BQUEsQ0FBQW5CLHFCQUFBLEdBQUFBLHFCQUFBIn0=","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QuotedColumnParser = void 0;\nconst ColumnFormatter_1 = require(\"./ColumnFormatter\");\nconst Token_1 = require(\"../Token\");\nclass QuotedColumnParser {\n constructor(parserOptions) {\n this.parserOptions = parserOptions;\n this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);\n }\n parse(scanner) {\n if (!scanner.hasMoreCharacters) {\n return null;\n }\n const originalCursor = scanner.cursor;\n const {\n foundClosingQuote,\n col\n } = this.gatherDataBetweenQuotes(scanner);\n if (!foundClosingQuote) {\n // reset the cursor to the original\n scanner.advanceTo(originalCursor);\n // if we didnt find a closing quote but we potentially have more data then skip the parsing\n // and return the original scanner.\n if (!scanner.hasMoreData) {\n throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote || ''}' in line: at '${scanner.lineFromCursor.replace(/[\\r\\n]/g, \"\\\\n'\")}'`);\n }\n return null;\n }\n this.checkForMalformedColumn(scanner);\n return col;\n }\n gatherDataBetweenQuotes(scanner) {\n const {\n parserOptions\n } = this;\n let foundStartingQuote = false;\n let foundClosingQuote = false;\n const characters = [];\n let nextToken = scanner.nextCharacterToken;\n for (; !foundClosingQuote && nextToken !== null; nextToken = scanner.nextCharacterToken) {\n const isQuote = Token_1.Token.isTokenQuote(nextToken, parserOptions);\n // ignore first quote\n if (!foundStartingQuote && isQuote) {\n foundStartingQuote = true;\n } else if (foundStartingQuote) {\n if (Token_1.Token.isTokenEscapeCharacter(nextToken, parserOptions)) {\n // advance past the escape character so we can get the next one in line\n scanner.advancePastToken(nextToken);\n const tokenFollowingEscape = scanner.nextCharacterToken;\n // if the character following the escape is a quote character then just add\n // the quote and advance to that character\n if (tokenFollowingEscape !== null && (Token_1.Token.isTokenQuote(tokenFollowingEscape, parserOptions) || Token_1.Token.isTokenEscapeCharacter(tokenFollowingEscape, parserOptions))) {\n characters.push(tokenFollowingEscape.token);\n nextToken = tokenFollowingEscape;\n } else if (isQuote) {\n // if the escape is also a quote then we found our closing quote and finish early\n foundClosingQuote = true;\n } else {\n // other wise add the escape token to the characters since it wast escaping anything\n characters.push(nextToken.token);\n }\n } else if (isQuote) {\n // we found our closing quote!\n foundClosingQuote = true;\n } else {\n // add the token to the characters\n characters.push(nextToken.token);\n }\n }\n scanner.advancePastToken(nextToken);\n }\n return {\n col: this.columnFormatter.format(characters.join('')),\n foundClosingQuote\n };\n }\n checkForMalformedColumn(scanner) {\n const {\n parserOptions\n } = this;\n const {\n nextNonSpaceToken\n } = scanner;\n if (nextNonSpaceToken) {\n const isNextTokenADelimiter = Token_1.Token.isTokenDelimiter(nextNonSpaceToken, parserOptions);\n const isNextTokenARowDelimiter = Token_1.Token.isTokenRowDelimiter(nextNonSpaceToken);\n if (!(isNextTokenADelimiter || isNextTokenARowDelimiter)) {\n // if the final quote was NOT followed by a column (,) or row(\\n) delimiter then its a bad column\n // tldr: only part of the column was quoted\n const linePreview = scanner.lineFromCursor.substr(0, 10).replace(/[\\r\\n]/g, \"\\\\n'\");\n throw new Error(`Parse Error: expected: '${parserOptions.escapedDelimiter}' OR new line got: '${nextNonSpaceToken.token}'. at '${linePreview}`);\n }\n scanner.advanceToToken(nextNonSpaceToken);\n } else if (!scanner.hasMoreData) {\n scanner.advancePastLine();\n }\n }\n}\nexports.QuotedColumnParser = QuotedColumnParser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW5Gb3JtYXR0ZXJfMSIsInJlcXVpcmUiLCJUb2tlbl8xIiwiUXVvdGVkQ29sdW1uUGFyc2VyIiwiY29uc3RydWN0b3IiLCJwYXJzZXJPcHRpb25zIiwiY29sdW1uRm9ybWF0dGVyIiwiQ29sdW1uRm9ybWF0dGVyIiwicGFyc2UiLCJzY2FubmVyIiwiaGFzTW9yZUNoYXJhY3RlcnMiLCJvcmlnaW5hbEN1cnNvciIsImN1cnNvciIsImZvdW5kQ2xvc2luZ1F1b3RlIiwiY29sIiwiZ2F0aGVyRGF0YUJldHdlZW5RdW90ZXMiLCJhZHZhbmNlVG8iLCJoYXNNb3JlRGF0YSIsIkVycm9yIiwicXVvdGUiLCJsaW5lRnJvbUN1cnNvciIsInJlcGxhY2UiLCJjaGVja0Zvck1hbGZvcm1lZENvbHVtbiIsImZvdW5kU3RhcnRpbmdRdW90ZSIsImNoYXJhY3RlcnMiLCJuZXh0VG9rZW4iLCJuZXh0Q2hhcmFjdGVyVG9rZW4iLCJpc1F1b3RlIiwiVG9rZW4iLCJpc1Rva2VuUXVvdGUiLCJpc1Rva2VuRXNjYXBlQ2hhcmFjdGVyIiwiYWR2YW5jZVBhc3RUb2tlbiIsInRva2VuRm9sbG93aW5nRXNjYXBlIiwicHVzaCIsInRva2VuIiwiZm9ybWF0Iiwiam9pbiIsIm5leHROb25TcGFjZVRva2VuIiwiaXNOZXh0VG9rZW5BRGVsaW1pdGVyIiwiaXNUb2tlbkRlbGltaXRlciIsImlzTmV4dFRva2VuQVJvd0RlbGltaXRlciIsImlzVG9rZW5Sb3dEZWxpbWl0ZXIiLCJsaW5lUHJldmlldyIsInN1YnN0ciIsImVzY2FwZWREZWxpbWl0ZXIiLCJhZHZhbmNlVG9Ub2tlbiIsImFkdmFuY2VQYXN0TGluZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFyc2VyL2NvbHVtbi9RdW90ZWRDb2x1bW5QYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQUFBLGlCQUFBLEdBQUFDLE9BQUE7QUFHQSxN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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColumnFormatter = exports.QuotedColumnParser = exports.NonQuotedColumnParser = exports.ColumnParser = void 0;\nvar ColumnParser_1 = require(\"./ColumnParser\");\nObject.defineProperty(exports, \"ColumnParser\", {\n enumerable: true,\n get: function () {\n return ColumnParser_1.ColumnParser;\n }\n});\nvar NonQuotedColumnParser_1 = require(\"./NonQuotedColumnParser\");\nObject.defineProperty(exports, \"NonQuotedColumnParser\", {\n enumerable: true,\n get: function () {\n return NonQuotedColumnParser_1.NonQuotedColumnParser;\n }\n});\nvar QuotedColumnParser_1 = require(\"./QuotedColumnParser\");\nObject.defineProperty(exports, \"QuotedColumnParser\", {\n enumerable: true,\n get: function () {\n return QuotedColumnParser_1.QuotedColumnParser;\n }\n});\nvar ColumnFormatter_1 = require(\"./ColumnFormatter\");\nObject.defineProperty(exports, \"ColumnFormatter\", {\n enumerable: true,\n get: function () {\n return ColumnFormatter_1.ColumnFormatter;\n }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2x1bW5QYXJzZXJfMSIsInJlcXVpcmUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiQ29sdW1uUGFyc2VyIiwiTm9uUXVvdGVkQ29sdW1uUGFyc2VyXzEiLCJOb25RdW90ZWRDb2x1bW5QYXJzZXIiLCJRdW90ZWRDb2x1bW5QYXJzZXJfMSIsIlF1b3RlZENvbHVtblBhcnNlciIsIkNvbHVtbkZvcm1hdHRlcl8xIiwiQ29sdW1uRm9ybWF0dGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhcnNlci9jb2x1bW4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsT0FBQTtBQUFTQyxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFOLGNBQUEsQ0FBQU8sWUFBWTtFQUFBO0FBQUE7QUFDckIsSUFBQUMsdUJBQUEsR0FBQVAsT0FBQTtBQUFTQyxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFFLHVCQUFBLENBQUFDLHFCQUFxQjtFQUFBO0FBQUE7QUFDOUIsSUFBQUMsb0JBQUEsR0FBQVQsT0FBQTtBQUFTQyxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFJLG9CQUFBLENBQUFDLGtCQUFrQjtFQUFBO0FBQUE7QUFDM0IsSUFBQUMsaUJBQUEsR0FBQVgsT0FBQTtBQUFTQyxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFNLGlCQUFBLENBQUFDLGVBQWU7RUFBQTtBQUFBIn0=","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QuotedColumnParser = exports.NonQuotedColumnParser = exports.ColumnParser = exports.Token = exports.Scanner = exports.RowParser = exports.Parser = void 0;\nvar Parser_1 = require(\"./Parser\");\nObject.defineProperty(exports, \"Parser\", {\n enumerable: true,\n get: function () {\n return Parser_1.Parser;\n }\n});\nvar RowParser_1 = require(\"./RowParser\");\nObject.defineProperty(exports, \"RowParser\", {\n enumerable: true,\n get: function () {\n return RowParser_1.RowParser;\n }\n});\nvar Scanner_1 = require(\"./Scanner\");\nObject.defineProperty(exports, \"Scanner\", {\n enumerable: true,\n get: function () {\n return Scanner_1.Scanner;\n }\n});\nvar Token_1 = require(\"./Token\");\nObject.defineProperty(exports, \"Token\", {\n enumerable: true,\n get: function () {\n return Token_1.Token;\n }\n});\nvar column_1 = require(\"./column\");\nObject.defineProperty(exports, \"ColumnParser\", {\n enumerable: true,\n get: function () {\n return column_1.ColumnParser;\n }\n});\nObject.defineProperty(exports, \"NonQuotedColumnParser\", {\n enumerable: true,\n get: function () {\n return column_1.NonQuotedColumnParser;\n }\n});\nObject.defineProperty(exports, \"QuotedColumnParser\", {\n enumerable: true,\n get: function () {\n return column_1.QuotedColumnParser;\n }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZXJfMSIsInJlcXVpcmUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiUGFyc2VyIiwiUm93UGFyc2VyXzEiLCJSb3dQYXJzZXIiLCJTY2FubmVyXzEiLCJTY2FubmVyIiwiVG9rZW5fMSIsIlRva2VuIiwiY29sdW1uXzEiLCJDb2x1bW5QYXJzZXIiLCJOb25RdW90ZWRDb2x1bW5QYXJzZXIiLCJRdW90ZWRDb2x1bW5QYXJzZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFyc2VyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFBU0MsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBTixRQUFBLENBQUFPLE1BQU07RUFBQTtBQUFBO0FBQ2YsSUFBQUMsV0FBQSxHQUFBUCxPQUFBO0FBQVNDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUUsV0FBQSxDQUFBQyxTQUFTO0VBQUE7QUFBQTtBQUNsQixJQUFBQyxTQUFBLEdBQUFULE9BQUE7QUFBU0MsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBSSxTQUFBLENBQUFDLE9BQU87RUFBQTtBQUFBO0FBQ2hCLElBQUFDLE9BQUEsR0FBQVgsT0FBQTtBQUFTQyxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFNLE9BQUEsQ0FBQUMsS0FBSztFQUFBO0FBQUE7QUFDZCxJQUFBQyxRQUFBLEdBQUFiLE9BQUE7QUFBU0MsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBUSxRQUFBLENBQUFDLFlBQVk7RUFBQTtBQUFBO0FBQUViLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQVEsUUFBQSxDQUFBRSxxQkFBcUI7RUFBQTtBQUFBO0FBQUVkLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQVEsUUFBQSxDQUFBRyxrQkFBa0I7RUFBQTtBQUFBIn0=","\"use strict\";\n\nvar __importDefault = void 0 && (void 0).__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HeaderTransformer = void 0;\nconst lodash_isundefined_1 = __importDefault(require(\"lodash.isundefined\"));\nconst lodash_isfunction_1 = __importDefault(require(\"lodash.isfunction\"));\nconst lodash_uniq_1 = __importDefault(require(\"lodash.uniq\"));\nconst lodash_groupby_1 = __importDefault(require(\"lodash.groupby\"));\nclass HeaderTransformer {\n constructor(parserOptions) {\n this.headers = null;\n this.receivedHeaders = false;\n this.shouldUseFirstRow = false;\n this.processedFirstRow = false;\n this.headersLength = 0;\n this.parserOptions = parserOptions;\n if (parserOptions.headers === true) {\n this.shouldUseFirstRow = true;\n } else if (Array.isArray(parserOptions.headers)) {\n this.setHeaders(parserOptions.headers);\n } else if (lodash_isfunction_1.default(parserOptions.headers)) {\n this.headersTransform = parserOptions.headers;\n }\n }\n transform(row, cb) {\n if (!this.shouldMapRow(row)) {\n return cb(null, {\n row: null,\n isValid: true\n });\n }\n return cb(null, this.processRow(row));\n }\n shouldMapRow(row) {\n const {\n parserOptions\n } = this;\n if (!this.headersTransform && parserOptions.renameHeaders && !this.processedFirstRow) {\n if (!this.receivedHeaders) {\n throw new Error('Error renaming headers: new headers must be provided in an array');\n }\n this.processedFirstRow = true;\n return false;\n }\n if (!this.receivedHeaders && Array.isArray(row)) {\n if (this.headersTransform) {\n this.setHeaders(this.headersTransform(row));\n } else if (this.shouldUseFirstRow) {\n this.setHeaders(row);\n } else {\n // dont do anything with the headers if we didnt receive a transform or shouldnt use the first row.\n return true;\n }\n return false;\n }\n return true;\n }\n processRow(row) {\n if (!this.headers) {\n return {\n row: row,\n isValid: true\n };\n }\n const {\n parserOptions\n } = this;\n if (!parserOptions.discardUnmappedColumns && row.length > this.headersLength) {\n if (!parserOptions.strictColumnHandling) {\n throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${row.length}`);\n }\n return {\n row: row,\n isValid: false,\n reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`\n };\n }\n if (parserOptions.strictColumnHandling && row.length < this.headersLength) {\n return {\n row: row,\n isValid: false,\n reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`\n };\n }\n return {\n row: this.mapHeaders(row),\n isValid: true\n };\n }\n mapHeaders(row) {\n const rowMap = {};\n const {\n headers,\n headersLength\n } = this;\n for (let i = 0; i < headersLength; i += 1) {\n const header = headers[i];\n if (!lodash_isundefined_1.default(header)) {\n const val = row[i];\n // eslint-disable-next-line no-param-reassign\n if (lodash_isundefined_1.default(val)) {\n rowMap[header] = '';\n } else {\n rowMap[header] = val;\n }\n }\n }\n return rowMap;\n }\n setHeaders(headers) {\n var _a;\n const filteredHeaders = headers.filter(h => !!h);\n if (lodash_uniq_1.default(filteredHeaders).length !== filteredHeaders.length) {\n const grouped = lodash_groupby_1.default(filteredHeaders);\n const duplicates = Object.keys(grouped).filter(dup => grouped[dup].length > 1);\n throw new Error(`Duplicate headers found ${JSON.stringify(duplicates)}`);\n }\n this.headers = headers;\n this.receivedHeaders = true;\n this.headersLength = ((_a = this.headers) === null || _a === void 0 ? void 0 : _a.length) || 0;\n }\n}\nexports.HeaderTransformer = HeaderTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2Rhc2hfaXN1bmRlZmluZWRfMSIsIl9faW1wb3J0RGVmYXVsdCIsInJlcXVpcmUiLCJsb2Rhc2hfaXNmdW5jdGlvbl8xIiwibG9kYXNoX3VuaXFfMSIsImxvZGFzaF9ncm91cGJ5XzEiLCJIZWFkZXJUcmFuc2Zvcm1lciIsImNvbnN0cnVjdG9yIiwicGFyc2VyT3B0aW9ucyIsImhlYWRlcnMiLCJyZWNlaXZlZEhlYWRlcnMiLCJzaG91bGRVc2VGaXJzdFJvdyIsInByb2Nlc3NlZEZpcnN0Um93IiwiaGVhZGVyc0xlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsInNldEhlYWRlcnMiLCJkZWZhdWx0IiwiaGVhZGVyc1RyYW5zZm9ybSIsInRyYW5zZm9ybSIsInJvdyIsImNiIiwic2hvdWxkTWFwUm93IiwiaXNWYWxpZCIsInByb2Nlc3NSb3ciLCJyZW5hbWVIZWFkZXJzIiwiRXJyb3IiLCJkaXNjYXJkVW5tYXBwZWRDb2x1bW5zIiwibGVuZ3RoIiwic3RyaWN0Q29sdW1uSGFuZGxpbmciLCJyZWFzb24iLCJtYXBIZWFkZXJzIiwicm93TWFwIiwiaSIsImhlYWRlciIsInZhbCIsImZpbHRlcmVkSGVhZGVycyIsImZpbHRlciIsImgiLCJncm91cGVkIiwiZHVwbGljYXRlcyIsIk9iamVjdCIsImtleXMiLCJkdXAiLCJKU09OIiwic3RyaW5naWZ5IiwiX2EiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zZm9ybXMvSGVhZGVyVHJhbnNmb3JtZXIudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsTUFBQUEsb0JBQUEsR0FBQUMsZUFBQSxDQUFBQyxPQUFBO0FBQ0EsTUFBQUMsbUJBQUEsR0FBQUYsZUFBQSxDQUFBQyxPQUFBO0FBQ0EsTUFBQUUsYUFBQSxHQUFBSCxlQUFBLENBQUFDLE9BQUE7QUFDQSxNQUFBRyxnQkFBQSxHQUFBSixlQUFBLENBQUFDLE9BQUE7QUFZQSxNQUFhSSxp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","\"use strict\";\n\nvar __importDefault = void 0 && (void 0).__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RowTransformerValidator = void 0;\nconst lodash_isfunction_1 = __importDefault(require(\"lodash.isfunction\"));\nconst types_1 = require(\"../types\");\nclass RowTransformerValidator {\n constructor() {\n this._rowTransform = null;\n this._rowValidator = null;\n }\n // eslint-disable-next-line @typescript-eslint/no-shadow\n static createTransform(transformFunction) {\n if (types_1.isSyncTransform(transformFunction)) {\n return (row, cb) => {\n let transformed = null;\n try {\n transformed = transformFunction(row);\n } catch (e) {\n return cb(e);\n }\n return cb(null, transformed);\n };\n }\n return transformFunction;\n }\n static createValidator(validateFunction) {\n if (types_1.isSyncValidate(validateFunction)) {\n return (row, cb) => {\n cb(null, {\n row,\n isValid: validateFunction(row)\n });\n };\n }\n return (row, cb) => {\n validateFunction(row, (err, isValid, reason) => {\n if (err) {\n return cb(err);\n }\n if (isValid) {\n return cb(null, {\n row,\n isValid,\n reason\n });\n }\n return cb(null, {\n row,\n isValid: false,\n reason\n });\n });\n };\n }\n set rowTransform(transformFunction) {\n if (!lodash_isfunction_1.default(transformFunction)) {\n throw new TypeError('The transform should be a function');\n }\n this._rowTransform = RowTransformerValidator.createTransform(transformFunction);\n }\n set rowValidator(validateFunction) {\n if (!lodash_isfunction_1.default(validateFunction)) {\n throw new TypeError('The validate should be a function');\n }\n this._rowValidator = RowTransformerValidator.createValidator(validateFunction);\n }\n transformAndValidate(row, cb) {\n return this.callTransformer(row, (transformErr, transformedRow) => {\n if (transformErr) {\n return cb(transformErr);\n }\n if (!transformedRow) {\n return cb(null, {\n row: null,\n isValid: true\n });\n }\n return this.callValidator(transformedRow, (validateErr, validationResult) => {\n if (validateErr) {\n return cb(validateErr);\n }\n if (validationResult && !validationResult.isValid) {\n return cb(null, {\n row: transformedRow,\n isValid: false,\n reason: validationResult.reason\n });\n }\n return cb(null, {\n row: transformedRow,\n isValid: true\n });\n });\n });\n }\n callTransformer(row, cb) {\n if (!this._rowTransform) {\n return cb(null, row);\n }\n return this._rowTransform(row, cb);\n }\n callValidator(row, cb) {\n if (!this._rowValidator) {\n return cb(null, {\n row,\n isValid: true\n });\n }\n return this._rowValidator(row, cb);\n }\n}\nexports.RowTransformerValidator = RowTransformerValidator;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2Rhc2hfaXNmdW5jdGlvbl8xIiwiX19pbXBvcnREZWZhdWx0IiwicmVxdWlyZSIsInR5cGVzXzEiLCJSb3dUcmFuc2Zvcm1lclZhbGlkYXRvciIsImNvbnN0cnVjdG9yIiwiX3Jvd1RyYW5zZm9ybSIsIl9yb3dWYWxpZGF0b3IiLCJjcmVhdGVUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm1GdW5jdGlvbiIsImlzU3luY1RyYW5zZm9ybSIsInJvdyIsImNiIiwidHJhbnNmb3JtZWQiLCJlIiwiY3JlYXRlVmFsaWRhdG9yIiwidmFsaWRhdGVGdW5jdGlvbiIsImlzU3luY1ZhbGlkYXRlIiwiaXNWYWxpZCIsImVyciIsInJlYXNvbiIsInJvd1RyYW5zZm9ybSIsImRlZmF1bHQiLCJUeXBlRXJyb3IiLCJyb3dWYWxpZGF0b3IiLCJ0cmFuc2Zvcm1BbmRWYWxpZGF0ZSIsImNhbGxUcmFuc2Zvcm1lciIsInRyYW5zZm9ybUVyciIsInRyYW5zZm9ybWVkUm93IiwiY2FsbFZhbGlkYXRvciIsInZhbGlkYXRlRXJyIiwidmFsaWRhdGlvblJlc3VsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNmb3Jtcy9Sb3dUcmFuc2Zvcm1lclZhbGlkYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxNQUFBQSxtQkFBQSxHQUFBQyxlQUFBLENBQUFDLE9BQUE7QUFDQSxNQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFhQSxNQUFhRSx1QkFBdUI7RUFBcENDLFlBQUE7SUFzQ1ksS0FBQUMsYUFBYSxHQUFtQyxJQUFJO0lBRXBELEtBQUFDLGFBQWEsR0FBMkIsSUFBSTtFQWlEeEQ7RUF4Rkk7RUFDUSxPQUFPQyxlQUFlQSxDQUMxQkMsaUJBQTZDO0lBRTdDLElBQUlOLE9BQUEsQ0FBQU8sZUFBZSxDQUFDRCxpQkFBaUIsQ0FBQyxFQUFFO01BQ3BDLE9BQU8sQ0FBQ0UsR0FBTSxFQUFFQyxFQUEyQixLQUFV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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.HeaderTransformer = exports.RowTransformerValidator = void 0;\nvar RowTransformerValidator_1 = require(\"./RowTransformerValidator\");\nObject.defineProperty(exports, \"RowTransformerValidator\", {\n enumerable: true,\n get: function () {\n return RowTransformerValidator_1.RowTransformerValidator;\n }\n});\nvar HeaderTransformer_1 = require(\"./HeaderTransformer\");\nObject.defineProperty(exports, \"HeaderTransformer\", {\n enumerable: true,\n get: function () {\n return HeaderTransformer_1.HeaderTransformer;\n }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3dUcmFuc2Zvcm1lclZhbGlkYXRvcl8xIiwicmVxdWlyZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsImVudW1lcmFibGUiLCJnZXQiLCJSb3dUcmFuc2Zvcm1lclZhbGlkYXRvciIsIkhlYWRlclRyYW5zZm9ybWVyXzEiLCJIZWFkZXJUcmFuc2Zvcm1lciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSx5QkFBQSxHQUFBQyxPQUFBO0FBQVNDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQU4seUJBQUEsQ0FBQU8sdUJBQXVCO0VBQUE7QUFBQTtBQUNoQyxJQUFBQyxtQkFBQSxHQUFBUCxPQUFBO0FBQVNDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQUUsbUJBQUEsQ0FBQUMsaUJBQWlCO0VBQUE7QUFBQSJ9","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isSyncValidate = exports.isSyncTransform = void 0;\nexports.isSyncTransform = transform => transform.length === 1;\nexports.isSyncValidate = validate => validate.length === 1;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBvcnRzIiwiaXNTeW5jVHJhbnNmb3JtIiwidHJhbnNmb3JtIiwibGVuZ3RoIiwiaXNTeW5jVmFsaWRhdGUiLCJ2YWxpZGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBb0JhQSxPQUFBLENBQUFDLGVBQWUsR0FDeEJDLFNBQXFDLElBQ0NBLFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLENBQUM7QUFRbkRILE9BQUEsQ0FBQUksY0FBYyxHQUFtQkMsUUFBd0IsSUFDbEVBLFFBQVEsQ0FBQ0YsTUFBTSxLQUFLLENBQUMifQ==","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","module.exports={\n \"aes-128-ecb\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 0,\n \"mode\": \"ECB\",\n \"type\": \"block\"\n },\n \"aes-192-ecb\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 0,\n \"mode\": \"ECB\",\n \"type\": \"block\"\n },\n \"aes-256-ecb\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 0,\n \"mode\": \"ECB\",\n \"type\": \"block\"\n },\n \"aes-128-cbc\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes-192-cbc\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes-256-cbc\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes128\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes192\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes256\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CBC\",\n \"type\": \"block\"\n },\n \"aes-128-cfb\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CFB\",\n \"type\": \"stream\"\n },\n \"aes-192-cfb\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CFB\",\n \"type\": \"stream\"\n },\n \"aes-256-cfb\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CFB\",\n \"type\": \"stream\"\n },\n \"aes-128-cfb8\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CFB8\",\n \"type\": \"stream\"\n },\n \"aes-192-cfb8\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CFB8\",\n \"type\": \"stream\"\n },\n \"aes-256-cfb8\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CFB8\",\n \"type\": \"stream\"\n },\n \"aes-128-cfb1\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CFB1\",\n \"type\": \"stream\"\n },\n \"aes-192-cfb1\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CFB1\",\n \"type\": \"stream\"\n },\n \"aes-256-cfb1\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CFB1\",\n \"type\": \"stream\"\n },\n \"aes-128-ofb\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"OFB\",\n \"type\": \"stream\"\n },\n \"aes-192-ofb\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"OFB\",\n \"type\": \"stream\"\n },\n \"aes-256-ofb\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"OFB\",\n \"type\": \"stream\"\n },\n \"aes-128-ctr\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 16,\n \"mode\": \"CTR\",\n \"type\": \"stream\"\n },\n \"aes-192-ctr\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 16,\n \"mode\": \"CTR\",\n \"type\": \"stream\"\n },\n \"aes-256-ctr\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 16,\n \"mode\": \"CTR\",\n \"type\": \"stream\"\n },\n \"aes-128-gcm\": {\n \"cipher\": \"AES\",\n \"key\": 128,\n \"iv\": 12,\n \"mode\": \"GCM\",\n \"type\": \"auth\"\n },\n \"aes-192-gcm\": {\n \"cipher\": \"AES\",\n \"key\": 192,\n \"iv\": 12,\n \"mode\": \"GCM\",\n \"type\": \"auth\"\n },\n \"aes-256-gcm\": {\n \"cipher\": \"AES\",\n \"key\": 256,\n \"iv\": 12,\n \"mode\": \"GCM\",\n \"type\": \"auth\"\n }\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","module.exports = require('./browser/algorithms.json')\n","module.exports={\n \"sha224WithRSAEncryption\": {\n \"sign\": \"rsa\",\n \"hash\": \"sha224\",\n \"id\": \"302d300d06096086480165030402040500041c\"\n },\n \"RSA-SHA224\": {\n \"sign\": \"ecdsa/rsa\",\n \"hash\": \"sha224\",\n \"id\": \"302d300d06096086480165030402040500041c\"\n },\n \"sha256WithRSAEncryption\": {\n \"sign\": \"rsa\",\n \"hash\": \"sha256\",\n \"id\": \"3031300d060960864801650304020105000420\"\n },\n \"RSA-SHA256\": {\n \"sign\": \"ecdsa/rsa\",\n \"hash\": \"sha256\",\n \"id\": \"3031300d060960864801650304020105000420\"\n },\n \"sha384WithRSAEncryption\": {\n \"sign\": \"rsa\",\n \"hash\": \"sha384\",\n \"id\": \"3041300d060960864801650304020205000430\"\n },\n \"RSA-SHA384\": {\n \"sign\": \"ecdsa/rsa\",\n \"hash\": \"sha384\",\n \"id\": \"3041300d060960864801650304020205000430\"\n },\n \"sha512WithRSAEncryption\": {\n \"sign\": \"rsa\",\n \"hash\": \"sha512\",\n \"id\": \"3051300d060960864801650304020305000440\"\n },\n \"RSA-SHA512\": {\n \"sign\": \"ecdsa/rsa\",\n \"hash\": \"sha512\",\n \"id\": \"3051300d060960864801650304020305000440\"\n },\n \"RSA-SHA1\": {\n \"sign\": \"rsa\",\n \"hash\": \"sha1\",\n \"id\": \"3021300906052b0e03021a05000414\"\n },\n \"ecdsa-with-SHA1\": {\n \"sign\": \"ecdsa\",\n \"hash\": \"sha1\",\n \"id\": \"\"\n },\n \"sha256\": {\n \"sign\": \"ecdsa\",\n \"hash\": \"sha256\",\n \"id\": \"\"\n },\n \"sha224\": {\n \"sign\": \"ecdsa\",\n \"hash\": \"sha224\",\n \"id\": \"\"\n },\n \"sha384\": {\n \"sign\": \"ecdsa\",\n \"hash\": \"sha384\",\n \"id\": \"\"\n },\n \"sha512\": {\n \"sign\": \"ecdsa\",\n \"hash\": \"sha512\",\n \"id\": \"\"\n },\n \"DSA-SHA\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha1\",\n \"id\": \"\"\n },\n \"DSA-SHA1\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha1\",\n \"id\": \"\"\n },\n \"DSA\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha1\",\n \"id\": \"\"\n },\n \"DSA-WITH-SHA224\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha224\",\n \"id\": \"\"\n },\n \"DSA-SHA224\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha224\",\n \"id\": \"\"\n },\n \"DSA-WITH-SHA256\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha256\",\n \"id\": \"\"\n },\n \"DSA-SHA256\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha256\",\n \"id\": \"\"\n },\n \"DSA-WITH-SHA384\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha384\",\n \"id\": \"\"\n },\n \"DSA-SHA384\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha384\",\n \"id\": \"\"\n },\n \"DSA-WITH-SHA512\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha512\",\n \"id\": \"\"\n },\n \"DSA-SHA512\": {\n \"sign\": \"dsa\",\n \"hash\": \"sha512\",\n \"id\": \"\"\n },\n \"DSA-RIPEMD160\": {\n \"sign\": \"dsa\",\n \"hash\": \"rmd160\",\n \"id\": \"\"\n },\n \"ripemd160WithRSA\": {\n \"sign\": \"rsa\",\n \"hash\": \"rmd160\",\n \"id\": \"3021300906052b2403020105000414\"\n },\n \"RSA-RIPEMD160\": {\n \"sign\": \"rsa\",\n \"hash\": \"rmd160\",\n \"id\": \"3021300906052b2403020105000414\"\n },\n \"md5WithRSAEncryption\": {\n \"sign\": \"rsa\",\n \"hash\": \"md5\",\n \"id\": \"3020300c06082a864886f70d020505000410\"\n },\n \"RSA-MD5\": {\n \"sign\": \"rsa\",\n \"hash\": \"md5\",\n \"id\": \"3020300c06082a864886f70d020505000410\"\n }\n}\n","module.exports={\n \"1.3.132.0.10\": \"secp256k1\",\n \"1.3.132.0.33\": \"p224\",\n \"1.2.840.10045.3.1.1\": \"p192\",\n \"1.2.840.10045.3.1.7\": \"p256\",\n \"1.3.132.0.34\": \"p384\",\n \"1.3.132.0.35\": \"p521\"\n}\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } }\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar $RangeError = RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor(this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty(this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","module.exports={\n \"modp1\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"\n },\n \"modp2\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"\n },\n \"modp5\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"\n },\n \"modp14\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"\n },\n \"modp15\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"\n },\n \"modp16\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"\n },\n \"modp17\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"\n },\n \"modp18\": {\n \"gen\": \"02\",\n \"prime\": \"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"\n }\n}","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","module.exports={\n \"name\": \"elliptic\",\n \"version\": \"6.5.4\",\n \"description\": \"EC cryptography\",\n \"main\": \"lib/elliptic.js\",\n \"files\": [\n \"lib\"\n ],\n \"scripts\": {\n \"lint\": \"eslint lib test\",\n \"lint:fix\": \"npm run lint -- --fix\",\n \"unit\": \"istanbul test _mocha --reporter=spec test/index.js\",\n \"test\": \"npm run lint && npm run unit\",\n \"version\": \"grunt dist && git add dist/\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git@github.com:indutny/elliptic\"\n },\n \"keywords\": [\n \"EC\",\n \"Elliptic\",\n \"curve\",\n \"Cryptography\"\n ],\n \"author\": \"Fedor Indutny \",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/indutny/elliptic/issues\"\n },\n \"homepage\": \"https://github.com/indutny/elliptic\",\n \"devDependencies\": {\n \"brfs\": \"^2.0.2\",\n \"coveralls\": \"^3.1.0\",\n \"eslint\": \"^7.6.0\",\n \"grunt\": \"^1.2.1\",\n \"grunt-browserify\": \"^5.3.0\",\n \"grunt-cli\": \"^1.3.2\",\n \"grunt-contrib-connect\": \"^3.0.0\",\n \"grunt-contrib-copy\": \"^1.0.0\",\n \"grunt-contrib-uglify\": \"^5.0.0\",\n \"grunt-mocha-istanbul\": \"^5.0.2\",\n \"grunt-saucelabs\": \"^9.0.1\",\n \"istanbul\": \"^0.4.5\",\n \"mocha\": \"^8.0.1\"\n },\n \"dependencies\": {\n \"bn.js\": \"^4.11.9\",\n \"brorand\": \"^1.1.0\",\n \"hash.js\": \"^1.0.0\",\n \"hmac-drbg\": \"^1.0.1\",\n \"inherits\": \"^2.0.4\",\n \"minimalistic-assert\": \"^1.0.1\",\n \"minimalistic-crypto-utils\": \"^1.0.1\"\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar objectCreate = Object.create || objectCreatePolyfill\nvar objectKeys = Object.keys || objectKeysPolyfill\nvar bind = Function.prototype.bind || functionBindPolyfill\n\nfunction EventEmitter() {\n if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) {\n this._events = objectCreate(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nvar hasDefineProperty;\ntry {\n var o = {};\n if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 });\n hasDefineProperty = o.x === 0;\n} catch (err) { hasDefineProperty = false }\nif (hasDefineProperty) {\n Object.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n // check whether the input is a positive number (whose value is zero or\n // greater and not a NaN).\n if (typeof arg !== 'number' || arg < 0 || arg !== arg)\n throw new TypeError('\"defaultMaxListeners\" must be a positive number');\n defaultMaxListeners = arg;\n }\n });\n} else {\n EventEmitter.defaultMaxListeners = defaultMaxListeners;\n}\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n if (arguments.length > 1)\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Unhandled \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = objectCreate(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' \"' + String(type) + '\" listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit.');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n if (typeof console === 'object' && console.warn) {\n console.warn('%s: %s', w.name, w.message);\n }\n }\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n switch (arguments.length) {\n case 0:\n return this.listener.call(this.target);\n case 1:\n return this.listener.call(this.target, arguments[0]);\n case 2:\n return this.listener.call(this.target, arguments[0], arguments[1]);\n case 3:\n return this.listener.call(this.target, arguments[0], arguments[1],\n arguments[2]);\n default:\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i)\n args[i] = arguments[i];\n this.listener.apply(this.target, args);\n }\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = bind.call(onceWrapper, state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = objectCreate(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else\n spliceOne(list, position);\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = objectCreate(null);\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = objectCreate(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = objectKeys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = objectCreate(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (!events)\n return [];\n\n var evlistener = events[type];\n if (!evlistener)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction objectCreatePolyfill(proto) {\n var F = function() {};\n F.prototype = proto;\n return new F;\n}\nfunction objectKeysPolyfill(obj) {\n var keys = [];\n for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) {\n keys.push(k);\n }\n return k;\n}\nfunction functionBindPolyfill(context) {\n var fn = this;\n return function () {\n return fn.apply(context, arguments);\n };\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CsvParserStream = exports.ParserOptions = exports.parseFile = exports.parseStream = exports.parseString = exports.parse = exports.FormatterOptions = exports.CsvFormatterStream = exports.writeToPath = exports.writeToString = exports.writeToBuffer = exports.writeToStream = exports.write = exports.format = void 0;\nvar format_1 = require(\"@fast-csv/format\");\nObject.defineProperty(exports, \"format\", {\n enumerable: true,\n get: function () {\n return format_1.format;\n }\n});\nObject.defineProperty(exports, \"write\", {\n enumerable: true,\n get: function () {\n return format_1.write;\n }\n});\nObject.defineProperty(exports, \"writeToStream\", {\n enumerable: true,\n get: function () {\n return format_1.writeToStream;\n }\n});\nObject.defineProperty(exports, \"writeToBuffer\", {\n enumerable: true,\n get: function () {\n return format_1.writeToBuffer;\n }\n});\nObject.defineProperty(exports, \"writeToString\", {\n enumerable: true,\n get: function () {\n return format_1.writeToString;\n }\n});\nObject.defineProperty(exports, \"writeToPath\", {\n enumerable: true,\n get: function () {\n return format_1.writeToPath;\n }\n});\nObject.defineProperty(exports, \"CsvFormatterStream\", {\n enumerable: true,\n get: function () {\n return format_1.CsvFormatterStream;\n }\n});\nObject.defineProperty(exports, \"FormatterOptions\", {\n enumerable: true,\n get: function () {\n return format_1.FormatterOptions;\n }\n});\nvar parse_1 = require(\"@fast-csv/parse\");\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return parse_1.parse;\n }\n});\nObject.defineProperty(exports, \"parseString\", {\n enumerable: true,\n get: function () {\n return parse_1.parseString;\n }\n});\nObject.defineProperty(exports, \"parseStream\", {\n enumerable: true,\n get: function () {\n return parse_1.parseStream;\n }\n});\nObject.defineProperty(exports, \"parseFile\", {\n enumerable: true,\n get: function () {\n return parse_1.parseFile;\n }\n});\nObject.defineProperty(exports, \"ParserOptions\", {\n enumerable: true,\n get: function () {\n return parse_1.ParserOptions;\n }\n});\nObject.defineProperty(exports, \"CsvParserStream\", {\n enumerable: true,\n get: function () {\n return parse_1.CsvParserStream;\n }\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRfMSIsInJlcXVpcmUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZm9ybWF0Iiwid3JpdGUiLCJ3cml0ZVRvU3RyZWFtIiwid3JpdGVUb0J1ZmZlciIsIndyaXRlVG9TdHJpbmciLCJ3cml0ZVRvUGF0aCIsIkNzdkZvcm1hdHRlclN0cmVhbSIsIkZvcm1hdHRlck9wdGlvbnMiLCJwYXJzZV8xIiwicGFyc2UiLCJwYXJzZVN0cmluZyIsInBhcnNlU3RyZWFtIiwicGFyc2VGaWxlIiwiUGFyc2VyT3B0aW9ucyIsIkNzdlBhcnNlclN0cmVhbSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0lDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQU4sUUFBQSxDQUFBTyxNQUFNO0VBQUE7QUFBQTtBQUNOTCxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFOLFFBQUEsQ0FBQVEsS0FBSztFQUFBO0FBQUE7QUFDTE4sTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBTixRQUFBLENBQUFTLGFBQWE7RUFBQTtBQUFBO0FBQ2JQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQU4sUUFBQSxDQUFBVSxhQUFhO0VBQUE7QUFBQTtBQUNiUixNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFOLFFBQUEsQ0FBQVcsYUFBYTtFQUFBO0FBQUE7QUFDYlQsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBTixRQUFBLENBQUFZLFdBQVc7RUFBQTtBQUFBO0FBQ1hWLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQU4sUUFBQSxDQUFBYSxrQkFBa0I7RUFBQTtBQUFBO0FBQ2xCWCxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFOLFFBQUEsQ0FBQWMsZ0JBQWdCO0VBQUE7QUFBQTtBQVVwQixJQUFBQyxPQUFBLEdBQUFkLE9BQUE7QUFDSUMsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBUyxPQUFBLENBQUFDLEtBQUs7RUFBQTtBQUFBO0FBQ0xkLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQVMsT0FBQSxDQUFBRSxXQUFXO0VBQUE7QUFBQTtBQUNYZixNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFTLE9BQUEsQ0FBQUcsV0FBVztFQUFBO0FBQUE7QUFDWGhCLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLFVBQUE7RUFBQUMsR0FBQSxXQUFBQSxDQUFBO0lBQUEsT0FBQVMsT0FBQSxDQUFBSSxTQUFTO0VBQUE7QUFBQTtBQUNUakIsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsVUFBQTtFQUFBQyxHQUFBLFdBQUFBLENBQUE7SUFBQSxPQUFBUyxPQUFBLENBQUFLLGFBQWE7RUFBQTtBQUFBO0FBQ2JsQixNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxVQUFBO0VBQUFDLEdBQUEsV0FBQUEsQ0FBQTtJQUFBLE9BQUFTLE9BQUEsQ0FBQU0sZUFBZTtFQUFBO0FBQUEifQ==","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity]\n * The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n result[key] = [value];\n }\n});\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = groupBy;\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && objectToString.call(value) == boolTag);\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isBoolean;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n nullTag = '[object Null]',\n proxyTag = '[object Proxy]',\n undefinedTag = '[object Undefined]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isFunction;\n","/**\n * lodash 4.0.0 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","/**\n * lodash 3.0.1 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n Set = getNative(root, 'Set'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each\n * element is kept.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length)\n ? baseUniq(array)\n : [];\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = uniq;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","module.exports={\"2.16.840.1.101.3.4.1.1\": \"aes-128-ecb\",\n\"2.16.840.1.101.3.4.1.2\": \"aes-128-cbc\",\n\"2.16.840.1.101.3.4.1.3\": \"aes-128-ofb\",\n\"2.16.840.1.101.3.4.1.4\": \"aes-128-cfb\",\n\"2.16.840.1.101.3.4.1.21\": \"aes-192-ecb\",\n\"2.16.840.1.101.3.4.1.22\": \"aes-192-cbc\",\n\"2.16.840.1.101.3.4.1.23\": \"aes-192-ofb\",\n\"2.16.840.1.101.3.4.1.24\": \"aes-192-cfb\",\n\"2.16.840.1.101.3.4.1.41\": \"aes-256-ecb\",\n\"2.16.840.1.101.3.4.1.42\": \"aes-256-cbc\",\n\"2.16.840.1.101.3.4.1.43\": \"aes-256-ofb\",\n\"2.16.840.1.101.3.4.1.44\": \"aes-256-cfb\"\n}","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nconst ed5 = require(\"xmlchars/xml/1.0/ed5\");\nconst ed2 = require(\"xmlchars/xml/1.1/ed2\");\nconst NSed3 = require(\"xmlchars/xmlns/1.0/ed3\");\nvar isS = ed5.isS;\nvar isChar10 = ed5.isChar;\nvar isNameStartChar = ed5.isNameStartChar;\nvar isNameChar = ed5.isNameChar;\nvar S_LIST = ed5.S_LIST;\nvar NAME_RE = ed5.NAME_RE;\nvar isChar11 = ed2.isChar;\nvar isNCNameStartChar = NSed3.isNCNameStartChar;\nvar isNCNameChar = NSed3.isNCNameChar;\nvar NC_NAME_RE = NSed3.NC_NAME_RE;\nconst XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\nconst XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\nconst rootNS = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __proto__: null,\n xml: XML_NAMESPACE,\n xmlns: XMLNS_NAMESPACE\n};\nconst XML_ENTITIES = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __proto__: null,\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: \"\\\"\",\n apos: \"'\"\n};\n// EOC: end-of-chunk\nconst EOC = -1;\nconst NL_LIKE = -2;\nconst S_BEGIN = 0; // Initial state.\nconst S_BEGIN_WHITESPACE = 1; // leading whitespace\nconst S_DOCTYPE = 2; // \nconst TAB = 9;\nconst NL = 0xA;\nconst CR = 0xD;\nconst SPACE = 0x20;\nconst BANG = 0x21;\nconst DQUOTE = 0x22;\nconst AMP = 0x26;\nconst SQUOTE = 0x27;\nconst MINUS = 0x2D;\nconst FORWARD_SLASH = 0x2F;\nconst SEMICOLON = 0x3B;\nconst LESS = 0x3C;\nconst EQUAL = 0x3D;\nconst GREATER = 0x3E;\nconst QUESTION = 0x3F;\nconst OPEN_BRACKET = 0x5B;\nconst CLOSE_BRACKET = 0x5D;\nconst NEL = 0x85;\nconst LS = 0x2028; // Line Separator\nconst isQuote = c => c === DQUOTE || c === SQUOTE;\nconst QUOTES = [DQUOTE, SQUOTE];\nconst DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];\nconst DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];\nconst XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];\nconst ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];\nfunction nsPairCheck(parser, prefix, uri) {\n switch (prefix) {\n case \"xml\":\n if (uri !== XML_NAMESPACE) {\n parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);\n }\n break;\n case \"xmlns\":\n if (uri !== XMLNS_NAMESPACE) {\n parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);\n }\n break;\n default:\n }\n switch (uri) {\n case XMLNS_NAMESPACE:\n parser.fail(prefix === \"\" ? `the default namespace may not be set to ${uri}.` : `may not assign a prefix (even \"xmlns\") to the URI \\\n${XMLNS_NAMESPACE}.`);\n break;\n case XML_NAMESPACE:\n switch (prefix) {\n case \"xml\":\n // Assinging the XML namespace to \"xml\" is fine.\n break;\n case \"\":\n parser.fail(`the default namespace may not be set to ${uri}.`);\n break;\n default:\n parser.fail(\"may not assign the xml namespace to another prefix.\");\n }\n break;\n default:\n }\n}\nfunction nsMappingCheck(parser, mapping) {\n for (const local of Object.keys(mapping)) {\n nsPairCheck(parser, local, mapping[local]);\n }\n}\nconst isNCName = name => NC_NAME_RE.test(name);\nconst isName = name => NAME_RE.test(name);\nconst FORBIDDEN_START = 0;\nconst FORBIDDEN_BRACKET = 1;\nconst FORBIDDEN_BRACKET_BRACKET = 2;\n/**\n * The list of supported events.\n */\nexports.EVENTS = [\"xmldecl\", \"text\", \"processinginstruction\", \"doctype\", \"comment\", \"opentagstart\", \"attribute\", \"opentag\", \"closetag\", \"cdata\", \"error\", \"end\", \"ready\"];\nconst EVENT_NAME_TO_HANDLER_NAME = {\n xmldecl: \"xmldeclHandler\",\n text: \"textHandler\",\n processinginstruction: \"piHandler\",\n doctype: \"doctypeHandler\",\n comment: \"commentHandler\",\n opentagstart: \"openTagStartHandler\",\n attribute: \"attributeHandler\",\n opentag: \"openTagHandler\",\n closetag: \"closeTagHandler\",\n cdata: \"cdataHandler\",\n error: \"errorHandler\",\n end: \"endHandler\",\n ready: \"readyHandler\"\n};\nclass SaxesParser {\n /**\n * @param opt The parser options.\n */\n constructor(opt) {\n this.opt = opt !== null && opt !== void 0 ? opt : {};\n this.fragmentOpt = !!this.opt.fragment;\n const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;\n this.trackPosition = this.opt.position !== false;\n this.fileName = this.opt.fileName;\n if (xmlnsOpt) {\n // This is the function we use to perform name checks on PIs and entities.\n // When namespaces are used, colons are not allowed in PI target names or\n // entity names. So the check depends on whether namespaces are used. See:\n //\n // https://www.w3.org/XML/xml-names-19990114-errata.html\n // NE08\n //\n this.nameStartCheck = isNCNameStartChar;\n this.nameCheck = isNCNameChar;\n this.isName = isNCName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsNS;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribNS;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.ns = Object.assign({\n __proto__: null\n }, rootNS);\n const additional = this.opt.additionalNamespaces;\n if (additional != null) {\n nsMappingCheck(this, additional);\n Object.assign(this.ns, additional);\n }\n } else {\n this.nameStartCheck = isNameStartChar;\n this.nameCheck = isNameChar;\n this.isName = isName;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.processAttribs = this.processAttribsPlain;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.pushAttrib = this.pushAttribPlain;\n }\n //\n // The order of the members in this table needs to correspond to the state\n // numbers given to the states that correspond to the methods being recorded\n // here.\n //\n this.stateTable = [/* eslint-disable @typescript-eslint/unbound-method */\n this.sBegin, this.sBeginWhitespace, this.sDoctype, this.sDoctypeQuote, this.sDTD, this.sDTDQuoted, this.sDTDOpenWaka, this.sDTDOpenWakaBang, this.sDTDComment, this.sDTDCommentEnding, this.sDTDCommentEnded, this.sDTDPI, this.sDTDPIEnding, this.sText, this.sEntity, this.sOpenWaka, this.sOpenWakaBang, this.sComment, this.sCommentEnding, this.sCommentEnded, this.sCData, this.sCDataEnding, this.sCDataEnding2, this.sPIFirstChar, this.sPIRest, this.sPIBody, this.sPIEnding, this.sXMLDeclNameStart, this.sXMLDeclName, this.sXMLDeclEq, this.sXMLDeclValueStart, this.sXMLDeclValue, this.sXMLDeclSeparator, this.sXMLDeclEnding, this.sOpenTag, this.sOpenTagSlash, this.sAttrib, this.sAttribName, this.sAttribNameSawWhite, this.sAttribValue, this.sAttribValueQuoted, this.sAttribValueClosed, this.sAttribValueUnquoted, this.sCloseTag, this.sCloseTagSawWhite];\n this._init();\n }\n /**\n * Indicates whether or not the parser is closed. If ``true``, wait for\n * the ``ready`` event to write again.\n */\n get closed() {\n return this._closed;\n }\n _init() {\n var _a;\n this.openWakaBang = \"\";\n this.text = \"\";\n this.name = \"\";\n this.piTarget = \"\";\n this.entity = \"\";\n this.q = null;\n this.tags = [];\n this.tag = null;\n this.topNS = null;\n this.chunk = \"\";\n this.chunkPosition = 0;\n this.i = 0;\n this.prevI = 0;\n this.carriedFromPrevious = undefined;\n this.forbiddenState = FORBIDDEN_START;\n this.attribList = [];\n // The logic is organized so as to minimize the need to check\n // this.opt.fragment while parsing.\n const {\n fragmentOpt\n } = this;\n this.state = fragmentOpt ? S_TEXT : S_BEGIN;\n // We want these to be all true if we are dealing with a fragment.\n this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot = this.sawRoot = fragmentOpt;\n // An XML declaration is intially possible only when parsing whole\n // documents.\n this.xmlDeclPossible = !fragmentOpt;\n this.xmlDeclExpects = [\"version\"];\n this.entityReturnState = undefined;\n let {\n defaultXMLVersion\n } = this.opt;\n if (defaultXMLVersion === undefined) {\n if (this.opt.forceXMLVersion === true) {\n throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");\n }\n defaultXMLVersion = \"1.0\";\n }\n this.setXMLVersion(defaultXMLVersion);\n this.positionAtNewLine = 0;\n this.doctype = false;\n this._closed = false;\n this.xmlDecl = {\n version: undefined,\n encoding: undefined,\n standalone: undefined\n };\n this.line = 1;\n this.column = 0;\n this.ENTITIES = Object.create(XML_ENTITIES);\n // eslint-disable-next-line no-unused-expressions\n (_a = this.readyHandler) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n /**\n * The stream position the parser is currently looking at. This field is\n * zero-based.\n *\n * This field is not based on counting Unicode characters but is to be\n * interpreted as a plain index into a JavaScript string.\n */\n get position() {\n return this.chunkPosition + this.i;\n }\n /**\n * The column number of the next character to be read by the parser. *\n * This field is zero-based. (The first column in a line is 0.)\n *\n * This field reports the index at which the next character would be in the\n * line if the line were represented as a JavaScript string. Note that this\n * *can* be different to a count based on the number of *Unicode characters*\n * due to how JavaScript handles astral plane characters.\n *\n * See [[column]] for a number that corresponds to a count of Unicode\n * characters.\n */\n get columnIndex() {\n return this.position - this.positionAtNewLine;\n }\n /**\n * Set an event listener on an event. The parser supports one handler per\n * event type. If you try to set an event handler over an existing handler,\n * the old handler is silently overwritten.\n *\n * @param name The event to listen to.\n *\n * @param handler The handler to set.\n */\n on(name, handler) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;\n }\n /**\n * Unset an event handler.\n *\n * @parma name The event to stop listening to.\n */\n off(name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[EVENT_NAME_TO_HANDLER_NAME[name]] = undefined;\n }\n /**\n * Make an error object. The error object will have a message that contains\n * the ``fileName`` option passed at the creation of the parser. If position\n * tracking was turned on, it will also have line and column number\n * information.\n *\n * @param message The message describing the error to report.\n *\n * @returns An error object with a properly formatted message.\n */\n makeError(message) {\n var _a;\n let msg = (_a = this.fileName) !== null && _a !== void 0 ? _a : \"\";\n if (this.trackPosition) {\n if (msg.length > 0) {\n msg += \":\";\n }\n msg += `${this.line}:${this.column}`;\n }\n if (msg.length > 0) {\n msg += \": \";\n }\n return new Error(msg + message);\n }\n /**\n * Report a parsing error. This method is made public so that client code may\n * check for issues that are outside the scope of this project and can report\n * errors.\n *\n * @param message The error to report.\n *\n * @returns this\n */\n fail(message) {\n const err = this.makeError(message);\n const handler = this.errorHandler;\n if (handler === undefined) {\n throw err;\n } else {\n handler(err);\n }\n return this;\n }\n /**\n * Write a XML data to the parser.\n *\n * @param chunk The XML data to write.\n *\n * @returns this\n */\n write(chunk) {\n if (this.closed) {\n return this.fail(\"cannot write after close; assign an onready handler.\");\n }\n let end = false;\n if (chunk === null) {\n // We cannot return immediately because carriedFromPrevious may need\n // processing.\n end = true;\n chunk = \"\";\n } else if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n // We checked if performing a pre-decomposition of the string into an array\n // of single complete characters (``Array.from(chunk)``) would be faster\n // than the current repeated calls to ``charCodeAt``. As of August 2018, it\n // isn't. (There may be Node-specific code that would perform faster than\n // ``Array.from`` but don't want to be dependent on Node.)\n if (this.carriedFromPrevious !== undefined) {\n // The previous chunk had char we must carry over.\n chunk = `${this.carriedFromPrevious}${chunk}`;\n this.carriedFromPrevious = undefined;\n }\n let limit = chunk.length;\n const lastCode = chunk.charCodeAt(limit - 1);\n if (!end && (\n // A trailing CR or surrogate must be carried over to the next\n // chunk.\n lastCode === CR || lastCode >= 0xD800 && lastCode <= 0xDBFF)) {\n // The chunk ends with a character that must be carried over. We cannot\n // know how to handle it until we get the next chunk or the end of the\n // stream. So save it for later.\n this.carriedFromPrevious = chunk[limit - 1];\n limit--;\n chunk = chunk.slice(0, limit);\n }\n const {\n stateTable\n } = this;\n this.chunk = chunk;\n this.i = 0;\n while (this.i < limit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stateTable[this.state].call(this);\n }\n this.chunkPosition += limit;\n return end ? this.end() : this;\n }\n /**\n * Close the current stream. Perform final well-formedness checks and reset\n * the parser tstate.\n *\n * @returns this\n */\n close() {\n return this.write(null);\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.0.\n *\n * @returns The character read.\n */\n getCode10() {\n const {\n chunk,\n i\n } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if (code >= SPACE || code === TAB) {\n return code;\n }\n switch (code) {\n case NL:\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR:\n // We may get NaN if we read past the end of the chunk, which is fine.\n if (chunk.charCodeAt(i + 1) === NL) {\n // A \\r\\n sequence is converted to \\n so we have to skip over the\n // next character. We already know it has a size of 1 so ++ is fine\n // here.\n this.i = i + 2;\n }\n // Otherwise, a \\r is just converted to \\n, so we don't have to skip\n // ahead.\n // In either case, \\r becomes \\n.\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n // If we get here, then code < SPACE and it is not NL CR or TAB.\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isChar10 that takes into account\n // that in this context code > 0xDBFF and code <= 0xFFFF. So it does not\n // test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + (code - 0xD800) * 0x400 + (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isChar10 that takes into account that in\n // this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Get a single code point out of the current chunk. This updates the current\n * position if we do position tracking.\n *\n * This is the algorithm to use for XML 1.1.\n *\n * @returns {number} The character read.\n */\n getCode11() {\n const {\n chunk,\n i\n } = this;\n this.prevI = i;\n // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n // read this.i again, which is a bit faster.\n this.i = i + 1;\n if (i >= chunk.length) {\n return EOC;\n }\n // Using charCodeAt and handling the surrogates ourselves is faster\n // than using codePointAt.\n const code = chunk.charCodeAt(i);\n this.column++;\n if (code < 0xD800) {\n if (code > 0x1F && code < 0x7F || code > 0x9F && code !== LS || code === TAB) {\n return code;\n }\n switch (code) {\n case NL:\n // 0xA\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL;\n case CR:\n {\n // 0xD\n // We may get NaN if we read past the end of the chunk, which is\n // fine.\n const next = chunk.charCodeAt(i + 1);\n if (next === NL || next === NEL) {\n // A CR NL or CR NEL sequence is converted to NL so we have to skip\n // over the next character. We already know it has a size of 1.\n this.i = i + 2;\n }\n // Otherwise, a CR is just converted to NL, no skip.\n }\n /* yes, fall through */\n case NEL: // 0x85\n case LS:\n // Ox2028\n this.line++;\n this.column = 0;\n this.positionAtNewLine = this.position;\n return NL_LIKE;\n default:\n this.fail(\"disallowed character.\");\n return code;\n }\n }\n if (code > 0xDBFF) {\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context code > 0xDBFF and code <= 0xFFFF. So it\n // does not test cases that don't need testing.\n if (!(code >= 0xE000 && code <= 0xFFFD)) {\n this.fail(\"disallowed character.\");\n }\n return code;\n }\n const final = 0x10000 + (code - 0xD800) * 0x400 + (chunk.charCodeAt(i + 1) - 0xDC00);\n this.i = i + 2;\n // This is a specialized version of isCharAndNotRestricted that takes into\n // account that in this context necessarily final >= 0x10000.\n if (final > 0x10FFFF) {\n this.fail(\"disallowed character.\");\n }\n return final;\n }\n /**\n * Like ``getCode`` but with the return value normalized so that ``NL`` is\n * returned for ``NL_LIKE``.\n */\n getCodeNorm() {\n const c = this.getCode();\n return c === NL_LIKE ? NL : c;\n }\n unget() {\n this.i = this.prevI;\n this.column--;\n }\n /**\n * Capture characters into a buffer until encountering one of a set of\n * characters.\n *\n * @param chars An array of codepoints. Encountering a character in the array\n * ends the capture. (``chars`` may safely contain ``NL``.)\n *\n * @return The character code that made the capture end, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureTo(chars) {\n let {\n i: start\n } = this;\n const {\n chunk\n } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n const isNLLike = c === NL_LIKE;\n const final = isNLLike ? NL : c;\n if (final === EOC || chars.includes(final)) {\n this.text += chunk.slice(start, this.prevI);\n return final;\n }\n if (isNLLike) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n }\n }\n }\n /**\n * Capture characters into a buffer until encountering a character.\n *\n * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT\n * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.\n *\n * @return ``true`` if we ran into the character. Otherwise, we ran into the\n * end of the current chunk.\n */\n captureToChar(char) {\n let {\n i: start\n } = this;\n const {\n chunk\n } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let c = this.getCode();\n switch (c) {\n case NL_LIKE:\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n c = NL;\n break;\n case EOC:\n this.text += chunk.slice(start);\n return false;\n default:\n }\n if (c === char) {\n this.text += chunk.slice(start, this.prevI);\n return true;\n }\n }\n }\n /**\n * Capture characters that satisfy ``isNameChar`` into the ``name`` field of\n * this parser.\n *\n * @return The character code that made the test fail, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n captureNameChars() {\n const {\n chunk,\n i: start\n } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCode();\n if (c === EOC) {\n this.name += chunk.slice(start);\n return EOC;\n }\n // NL is not a name char so we don't have to test specifically for it.\n if (!isNameChar(c)) {\n this.name += chunk.slice(start, this.prevI);\n return c === NL_LIKE ? NL : c;\n }\n }\n }\n /**\n * Skip white spaces.\n *\n * @return The character that ended the skip, or ``EOC`` if we hit\n * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n * instead.\n */\n skipSpaces() {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC || !isS(c)) {\n return c;\n }\n }\n }\n setXMLVersion(version) {\n this.currentXMLVersion = version;\n /* eslint-disable @typescript-eslint/unbound-method */\n if (version === \"1.0\") {\n this.isChar = isChar10;\n this.getCode = this.getCode10;\n } else {\n this.isChar = isChar11;\n this.getCode = this.getCode11;\n }\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n // STATE ENGINE METHODS\n // This needs to be a state separate from S_BEGIN_WHITESPACE because we want\n // to be sure never to come back to this state later.\n sBegin() {\n // We are essentially peeking at the first character of the chunk. Since\n // S_BEGIN can be in effect only when we start working on the first chunk,\n // the index at which we must look is necessarily 0. Note also that the\n // following test does not depend on decoding surrogates.\n // If the initial character is 0xFEFF, ignore it.\n if (this.chunk.charCodeAt(0) === 0xFEFF) {\n this.i++;\n this.column++;\n }\n this.state = S_BEGIN_WHITESPACE;\n }\n sBeginWhitespace() {\n // We need to know whether we've encountered spaces or not because as soon\n // as we run into a space, an XML declaration is no longer possible. Rather\n // than slow down skipSpaces even in places where we don't care whether it\n // skipped anything or not, we check whether prevI is equal to the value of\n // i from before we skip spaces.\n const iBefore = this.i;\n const c = this.skipSpaces();\n if (this.prevI !== iBefore) {\n this.xmlDeclPossible = false;\n }\n switch (c) {\n case LESS:\n this.state = S_OPEN_WAKA;\n // We could naively call closeText but in this state, it is not normal\n // to have text be filled with any data.\n if (this.text.length !== 0) {\n throw new Error(\"no-empty text at start\");\n }\n break;\n case EOC:\n break;\n default:\n this.unget();\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n sDoctype() {\n var _a;\n const c = this.captureTo(DOCTYPE_TERMINATOR);\n switch (c) {\n case GREATER:\n {\n // eslint-disable-next-line no-unused-expressions\n (_a = this.doctypeHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n this.doctype = true; // just remember that we saw it.\n break;\n }\n case EOC:\n break;\n default:\n this.text += String.fromCodePoint(c);\n if (c === OPEN_BRACKET) {\n this.state = S_DTD;\n } else if (isQuote(c)) {\n this.state = S_DOCTYPE_QUOTE;\n this.q = c;\n }\n }\n }\n sDoctypeQuote() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.q = null;\n this.state = S_DOCTYPE;\n }\n }\n sDTD() {\n const c = this.captureTo(DTD_TERMINATOR);\n if (c === EOC) {\n return;\n }\n this.text += String.fromCodePoint(c);\n if (c === CLOSE_BRACKET) {\n this.state = S_DOCTYPE;\n } else if (c === LESS) {\n this.state = S_DTD_OPEN_WAKA;\n } else if (isQuote(c)) {\n this.state = S_DTD_QUOTED;\n this.q = c;\n }\n }\n sDTDQuoted() {\n const q = this.q;\n if (this.captureToChar(q)) {\n this.text += String.fromCodePoint(q);\n this.state = S_DTD;\n this.q = null;\n }\n }\n sDTDOpenWaka() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n switch (c) {\n case BANG:\n this.state = S_DTD_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n break;\n case QUESTION:\n this.state = S_DTD_PI;\n break;\n default:\n this.state = S_DTD;\n }\n }\n sDTDOpenWakaBang() {\n const char = String.fromCodePoint(this.getCodeNorm());\n const owb = this.openWakaBang += char;\n this.text += char;\n if (owb !== \"-\") {\n this.state = owb === \"--\" ? S_DTD_COMMENT : S_DTD;\n this.openWakaBang = \"\";\n }\n }\n sDTDComment() {\n if (this.captureToChar(MINUS)) {\n this.text += \"-\";\n this.state = S_DTD_COMMENT_ENDING;\n }\n }\n sDTDCommentEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n this.state = c === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;\n }\n sDTDCommentEnded() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n } else {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.state = S_DTD_COMMENT;\n }\n }\n sDTDPI() {\n if (this.captureToChar(QUESTION)) {\n this.text += \"?\";\n this.state = S_DTD_PI_ENDING;\n }\n }\n sDTDPIEnding() {\n const c = this.getCodeNorm();\n this.text += String.fromCodePoint(c);\n if (c === GREATER) {\n this.state = S_DTD;\n }\n }\n sText() {\n //\n // We did try a version of saxes where the S_TEXT state was split in two\n // states: one for text inside the root element, and one for text\n // outside. This was avoiding having to test this.tags.length to decide\n // what implementation to actually use.\n //\n // Peformance testing on gigabyte-size files did not show any advantage to\n // using the two states solution instead of the current one. Conversely, it\n // made the code a bit more complicated elsewhere. For instance, a comment\n // can appear before the root element so when a comment ended it was\n // necessary to determine whether to return to the S_TEXT state or to the\n // new text-outside-root state.\n //\n if (this.tags.length !== 0) {\n this.handleTextInRoot();\n } else {\n this.handleTextOutsideRoot();\n }\n }\n sEntity() {\n // This is essentially a specialized version of captureToChar(SEMICOLON...)\n let {\n i: start\n } = this;\n const {\n chunk\n } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n loop:\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case NL_LIKE:\n this.entity += `${chunk.slice(start, this.prevI)}\\n`;\n start = this.i;\n break;\n case SEMICOLON:\n {\n const {\n entityReturnState\n } = this;\n const entity = this.entity + chunk.slice(start, this.prevI);\n this.state = entityReturnState;\n let parsed;\n if (entity === \"\") {\n this.fail(\"empty entity name.\");\n parsed = \"&;\";\n } else {\n parsed = this.parseEntity(entity);\n this.entity = \"\";\n }\n if (entityReturnState !== S_TEXT || this.textHandler !== undefined) {\n this.text += parsed;\n }\n // eslint-disable-next-line no-labels\n break loop;\n }\n case EOC:\n this.entity += chunk.slice(start);\n // eslint-disable-next-line no-labels\n break loop;\n default:\n }\n }\n }\n sOpenWaka() {\n // Reminder: a state handler is called with at least one character\n // available in the current chunk. So the first call to get code inside of\n // a state handler cannot return ``EOC``. That's why we don't test\n // for it.\n const c = this.getCode();\n // either a /, ?, !, or text is coming next.\n if (isNameStartChar(c)) {\n this.state = S_OPEN_TAG;\n this.unget();\n this.xmlDeclPossible = false;\n } else {\n switch (c) {\n case FORWARD_SLASH:\n this.state = S_CLOSE_TAG;\n this.xmlDeclPossible = false;\n break;\n case BANG:\n this.state = S_OPEN_WAKA_BANG;\n this.openWakaBang = \"\";\n this.xmlDeclPossible = false;\n break;\n case QUESTION:\n this.state = S_PI_FIRST_CHAR;\n break;\n default:\n this.fail(\"disallowed character in tag name\");\n this.state = S_TEXT;\n this.xmlDeclPossible = false;\n }\n }\n }\n sOpenWakaBang() {\n this.openWakaBang += String.fromCodePoint(this.getCodeNorm());\n switch (this.openWakaBang) {\n case \"[CDATA[\":\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n this.state = S_CDATA;\n this.openWakaBang = \"\";\n break;\n case \"--\":\n this.state = S_COMMENT;\n this.openWakaBang = \"\";\n break;\n case \"DOCTYPE\":\n this.state = S_DOCTYPE;\n if (this.doctype || this.sawRoot) {\n this.fail(\"inappropriately located doctype declaration.\");\n }\n this.openWakaBang = \"\";\n break;\n default:\n // 7 happens to be the maximum length of the string that can possibly\n // match one of the cases above.\n if (this.openWakaBang.length >= 7) {\n this.fail(\"incorrect syntax.\");\n }\n }\n }\n sComment() {\n if (this.captureToChar(MINUS)) {\n this.state = S_COMMENT_ENDING;\n }\n }\n sCommentEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === MINUS) {\n this.state = S_COMMENT_ENDED;\n // eslint-disable-next-line no-unused-expressions\n (_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n } else {\n this.text += `-${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n }\n }\n sCommentEnded() {\n const c = this.getCodeNorm();\n if (c !== GREATER) {\n this.fail(\"malformed comment.\");\n // will be recorded as\n // a comment of \" blah -- bloo \"\n this.text += `--${String.fromCodePoint(c)}`;\n this.state = S_COMMENT;\n } else {\n this.state = S_TEXT;\n }\n }\n sCData() {\n if (this.captureToChar(CLOSE_BRACKET)) {\n this.state = S_CDATA_ENDING;\n }\n }\n sCDataEnding() {\n const c = this.getCodeNorm();\n if (c === CLOSE_BRACKET) {\n this.state = S_CDATA_ENDING_2;\n } else {\n this.text += `]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n sCDataEnding2() {\n var _a;\n const c = this.getCodeNorm();\n switch (c) {\n case GREATER:\n {\n // eslint-disable-next-line no-unused-expressions\n (_a = this.cdataHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n this.text = \"\";\n this.state = S_TEXT;\n break;\n }\n case CLOSE_BRACKET:\n this.text += \"]\";\n break;\n default:\n this.text += `]]${String.fromCodePoint(c)}`;\n this.state = S_CDATA;\n }\n }\n // We need this separate state to check the first character fo the pi target\n // with this.nameStartCheck which allows less characters than this.nameCheck.\n sPIFirstChar() {\n const c = this.getCodeNorm();\n // This is first because in the case where the file is well-formed this is\n // the branch taken. We optimize for well-formedness.\n if (this.nameStartCheck(c)) {\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n } else if (c === QUESTION || isS(c)) {\n this.fail(\"processing instruction without a target.\");\n this.state = c === QUESTION ? S_PI_ENDING : S_PI_BODY;\n } else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n this.state = S_PI_REST;\n }\n }\n sPIRest() {\n // Capture characters into a piTarget while ``this.nameCheck`` run on the\n // character read returns true.\n const {\n chunk,\n i: start\n } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const c = this.getCodeNorm();\n if (c === EOC) {\n this.piTarget += chunk.slice(start);\n return;\n }\n // NL cannot satisfy this.nameCheck so we don't have to test specifically\n // for it.\n if (!this.nameCheck(c)) {\n this.piTarget += chunk.slice(start, this.prevI);\n const isQuestion = c === QUESTION;\n if (isQuestion || isS(c)) {\n if (this.piTarget === \"xml\") {\n if (!this.xmlDeclPossible) {\n this.fail(\"an XML declaration must be at the start of the document.\");\n }\n this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;\n } else {\n this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;\n }\n } else {\n this.fail(\"disallowed character in processing instruction name.\");\n this.piTarget += String.fromCodePoint(c);\n }\n break;\n }\n }\n }\n sPIBody() {\n if (this.text.length === 0) {\n const c = this.getCodeNorm();\n if (c === QUESTION) {\n this.state = S_PI_ENDING;\n } else if (!isS(c)) {\n this.text = String.fromCodePoint(c);\n }\n }\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n else if (this.captureToChar(QUESTION)) {\n this.state = S_PI_ENDING;\n }\n }\n sPIEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n const {\n piTarget\n } = this;\n if (piTarget.toLowerCase() === \"xml\") {\n this.fail(\"the XML declaration must appear at the start of the document.\");\n }\n // eslint-disable-next-line no-unused-expressions\n (_a = this.piHandler) === null || _a === void 0 ? void 0 : _a.call(this, {\n target: piTarget,\n body: this.text\n });\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n } else if (c === QUESTION) {\n // We ran into ?? as part of a processing instruction. We initially took\n // the first ? as a sign that the PI was ending, but it is not. So we have\n // to add it to the body but we take the new ? as a sign that the PI is\n // ending.\n this.text += \"?\";\n } else {\n this.text += `?${String.fromCodePoint(c)}`;\n this.state = S_PI_BODY;\n }\n this.xmlDeclPossible = false;\n }\n sXMLDeclNameStart() {\n const c = this.skipSpaces();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (c !== EOC) {\n this.state = S_XML_DECL_NAME;\n this.name = String.fromCodePoint(c);\n }\n }\n sXMLDeclName() {\n const c = this.captureTo(XML_DECL_NAME_TERMINATOR);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.name += this.text;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (!(isS(c) || c === EQUAL)) {\n return;\n }\n this.name += this.text;\n this.text = \"\";\n if (!this.xmlDeclExpects.includes(this.name)) {\n switch (this.name.length) {\n case 0:\n this.fail(\"did not expect any more name/value pairs.\");\n break;\n case 1:\n this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);\n break;\n default:\n this.fail(`expected one of ${this.xmlDeclExpects.join(\", \")}`);\n }\n }\n this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;\n }\n sXMLDeclEq() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (c !== EQUAL) {\n this.fail(\"value required.\");\n }\n this.state = S_XML_DECL_VALUE_START;\n }\n sXMLDeclValueStart() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (isS(c)) {\n return;\n }\n if (!isQuote(c)) {\n this.fail(\"value must be quoted.\");\n this.q = SPACE;\n } else {\n this.q = c;\n }\n this.state = S_XML_DECL_VALUE;\n }\n sXMLDeclValue() {\n const c = this.captureTo([this.q, QUESTION]);\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n this.state = S_XML_DECL_ENDING;\n this.text = \"\";\n this.fail(\"XML declaration is incomplete.\");\n return;\n }\n if (c === EOC) {\n return;\n }\n const value = this.text;\n this.text = \"\";\n switch (this.name) {\n case \"version\":\n {\n this.xmlDeclExpects = [\"encoding\", \"standalone\"];\n const version = value;\n this.xmlDecl.version = version;\n // This is the test specified by XML 1.0 but it is fine for XML 1.1.\n if (!/^1\\.[0-9]+$/.test(version)) {\n this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");\n }\n // When forceXMLVersion is set, the XML declaration is ignored.\n else if (!this.opt.forceXMLVersion) {\n this.setXMLVersion(version);\n }\n break;\n }\n case \"encoding\":\n if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value)) {\n this.fail(\"encoding value must match \\\n/^[A-Za-z0-9][A-Za-z0-9._-]*$/.\");\n }\n this.xmlDeclExpects = [\"standalone\"];\n this.xmlDecl.encoding = value;\n break;\n case \"standalone\":\n if (value !== \"yes\" && value !== \"no\") {\n this.fail(\"standalone value must match \\\"yes\\\" or \\\"no\\\".\");\n }\n this.xmlDeclExpects = [];\n this.xmlDecl.standalone = value;\n break;\n default:\n // We don't need to raise an error here since we've already raised one\n // when checking what name was expected.\n }\n\n this.name = \"\";\n this.state = S_XML_DECL_SEPARATOR;\n }\n sXMLDeclSeparator() {\n const c = this.getCodeNorm();\n // The question mark character is not valid inside any of the XML\n // declaration name/value pairs.\n if (c === QUESTION) {\n // It is valid to go to S_XML_DECL_ENDING from this state.\n this.state = S_XML_DECL_ENDING;\n return;\n }\n if (!isS(c)) {\n this.fail(\"whitespace required.\");\n this.unget();\n }\n this.state = S_XML_DECL_NAME_START;\n }\n sXMLDeclEnding() {\n var _a;\n const c = this.getCodeNorm();\n if (c === GREATER) {\n if (this.piTarget !== \"xml\") {\n this.fail(\"processing instructions are not allowed before root.\");\n } else if (this.name !== \"version\" && this.xmlDeclExpects.includes(\"version\")) {\n this.fail(\"XML declaration must contain a version.\");\n }\n // eslint-disable-next-line no-unused-expressions\n (_a = this.xmldeclHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.xmlDecl);\n this.name = \"\";\n this.piTarget = this.text = \"\";\n this.state = S_TEXT;\n } else {\n // We got here because the previous character was a ?, but the question\n // mark character is not valid inside any of the XML declaration\n // name/value pairs.\n this.fail(\"The character ? is disallowed anywhere in XML declarations.\");\n }\n this.xmlDeclPossible = false;\n }\n sOpenTag() {\n var _a;\n const c = this.captureNameChars();\n if (c === EOC) {\n return;\n }\n const tag = this.tag = {\n name: this.name,\n attributes: Object.create(null)\n };\n this.name = \"\";\n if (this.xmlnsOpt) {\n this.topNS = tag.ns = Object.create(null);\n }\n // eslint-disable-next-line no-unused-expressions\n (_a = this.openTagStartHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n this.sawRoot = true;\n if (!this.fragmentOpt && this.closedRoot) {\n this.fail(\"documents may contain only one root.\");\n }\n switch (c) {\n case GREATER:\n this.openTag();\n break;\n case FORWARD_SLASH:\n this.state = S_OPEN_TAG_SLASH;\n break;\n default:\n if (!isS(c)) {\n this.fail(\"disallowed character in tag name.\");\n }\n this.state = S_ATTRIB;\n }\n }\n sOpenTagSlash() {\n if (this.getCode() === GREATER) {\n this.openSelfClosingTag();\n } else {\n this.fail(\"forward-slash in opening tag not followed by >.\");\n this.state = S_ATTRIB;\n }\n }\n sAttrib() {\n const c = this.skipSpaces();\n if (c === EOC) {\n return;\n }\n if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n } else if (c === GREATER) {\n this.openTag();\n } else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n } else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribName() {\n const c = this.captureNameChars();\n if (c === EQUAL) {\n this.state = S_ATTRIB_VALUE;\n } else if (isS(c)) {\n this.state = S_ATTRIB_NAME_SAW_WHITE;\n } else if (c === GREATER) {\n this.fail(\"attribute without value.\");\n this.pushAttrib(this.name, this.name);\n this.name = this.text = \"\";\n this.openTag();\n } else if (c !== EOC) {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribNameSawWhite() {\n const c = this.skipSpaces();\n switch (c) {\n case EOC:\n return;\n case EQUAL:\n this.state = S_ATTRIB_VALUE;\n break;\n default:\n this.fail(\"attribute without value.\");\n // Should we do this???\n // this.tag.attributes[this.name] = \"\";\n this.text = \"\";\n this.name = \"\";\n if (c === GREATER) {\n this.openTag();\n } else if (isNameStartChar(c)) {\n this.unget();\n this.state = S_ATTRIB_NAME;\n } else {\n this.fail(\"disallowed character in attribute name.\");\n this.state = S_ATTRIB;\n }\n }\n }\n sAttribValue() {\n const c = this.getCodeNorm();\n if (isQuote(c)) {\n this.q = c;\n this.state = S_ATTRIB_VALUE_QUOTED;\n } else if (!isS(c)) {\n this.fail(\"unquoted attribute value.\");\n this.state = S_ATTRIB_VALUE_UNQUOTED;\n this.unget();\n }\n }\n sAttribValueQuoted() {\n // We deliberately do not use captureTo here. The specialized code we use\n // here is faster than using captureTo.\n const {\n q,\n chunk\n } = this;\n let {\n i: start\n } = this;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case q:\n this.pushAttrib(this.name, this.text + chunk.slice(start, this.prevI));\n this.name = this.text = \"\";\n this.q = null;\n this.state = S_ATTRIB_VALUE_CLOSED;\n return;\n case AMP:\n this.text += chunk.slice(start, this.prevI);\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_QUOTED;\n return;\n case NL:\n case NL_LIKE:\n case TAB:\n this.text += `${chunk.slice(start, this.prevI)} `;\n start = this.i;\n break;\n case LESS:\n this.text += chunk.slice(start, this.prevI);\n this.fail(\"disallowed character.\");\n return;\n case EOC:\n this.text += chunk.slice(start);\n return;\n default:\n }\n }\n }\n sAttribValueClosed() {\n const c = this.getCodeNorm();\n if (isS(c)) {\n this.state = S_ATTRIB;\n } else if (c === GREATER) {\n this.openTag();\n } else if (c === FORWARD_SLASH) {\n this.state = S_OPEN_TAG_SLASH;\n } else if (isNameStartChar(c)) {\n this.fail(\"no whitespace between attributes.\");\n this.unget();\n this.state = S_ATTRIB_NAME;\n } else {\n this.fail(\"disallowed character in attribute name.\");\n }\n }\n sAttribValueUnquoted() {\n // We don't do anything regarding EOL or space handling for unquoted\n // attributes. We already have failed by the time we get here, and the\n // contract that saxes upholds states that upon failure, it is not safe to\n // rely on the data passed to event handlers (other than\n // ``onerror``). Passing \"bad\" data is not a problem.\n const c = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);\n switch (c) {\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;\n break;\n case LESS:\n this.fail(\"disallowed character.\");\n break;\n case EOC:\n break;\n default:\n if (this.text.includes(\"]]>\")) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n this.pushAttrib(this.name, this.text);\n this.name = this.text = \"\";\n if (c === GREATER) {\n this.openTag();\n } else {\n this.state = S_ATTRIB;\n }\n }\n }\n sCloseTag() {\n const c = this.captureNameChars();\n if (c === GREATER) {\n this.closeTag();\n } else if (isS(c)) {\n this.state = S_CLOSE_TAG_SAW_WHITE;\n } else if (c !== EOC) {\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n sCloseTagSawWhite() {\n switch (this.skipSpaces()) {\n case GREATER:\n this.closeTag();\n break;\n case EOC:\n break;\n default:\n this.fail(\"disallowed character in closing tag.\");\n }\n }\n // END OF STATE ENGINE METHODS\n handleTextInRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for performing the ]]> check. A previous version of this code, checked\n // ``this.text`` for the presence of ]]>. It simplified the code but was\n // very costly when character data contained a lot of entities to be parsed.\n //\n // Since we are using a specialized loop, we also keep track of the presence\n // of ]]> in text data. The sequence ]]> is forbidden to appear as-is.\n //\n let {\n i: start,\n forbiddenState\n } = this;\n const {\n chunk,\n textHandler: handler\n } = this;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n scanLoop:\n // eslint-disable-next-line no-constant-condition\n while (true) {\n switch (this.getCode()) {\n case LESS:\n {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const {\n text\n } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n } else if (slice.length !== 0) {\n handler(slice);\n }\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n forbiddenState = FORBIDDEN_START;\n // eslint-disable-next-line no-labels\n break scanLoop;\n case CLOSE_BRACKET:\n switch (forbiddenState) {\n case FORBIDDEN_START:\n forbiddenState = FORBIDDEN_BRACKET;\n break;\n case FORBIDDEN_BRACKET:\n forbiddenState = FORBIDDEN_BRACKET_BRACKET;\n break;\n case FORBIDDEN_BRACKET_BRACKET:\n break;\n default:\n throw new Error(\"impossible state\");\n }\n break;\n case GREATER:\n if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {\n this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n }\n forbiddenState = FORBIDDEN_START;\n break;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n forbiddenState = FORBIDDEN_START;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break scanLoop;\n default:\n forbiddenState = FORBIDDEN_START;\n }\n }\n this.forbiddenState = forbiddenState;\n }\n handleTextOutsideRoot() {\n // This is essentially a specialized version of captureTo which is optimized\n // for a specialized task. We keep track of the presence of non-space\n // characters in the text since these are errors when appearing outside the\n // document root element.\n let {\n i: start\n } = this;\n const {\n chunk,\n textHandler: handler\n } = this;\n let nonSpace = false;\n // eslint-disable-next-line no-labels, no-restricted-syntax\n outRootLoop:\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const code = this.getCode();\n switch (code) {\n case LESS:\n {\n this.state = S_OPEN_WAKA;\n if (handler !== undefined) {\n const {\n text\n } = this;\n const slice = chunk.slice(start, this.prevI);\n if (text.length !== 0) {\n handler(text + slice);\n this.text = \"\";\n } else if (slice.length !== 0) {\n handler(slice);\n }\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n }\n case AMP:\n this.state = S_ENTITY;\n this.entityReturnState = S_TEXT;\n if (handler !== undefined) {\n this.text += chunk.slice(start, this.prevI);\n }\n nonSpace = true;\n // eslint-disable-next-line no-labels\n break outRootLoop;\n case NL_LIKE:\n if (handler !== undefined) {\n this.text += `${chunk.slice(start, this.prevI)}\\n`;\n }\n start = this.i;\n break;\n case EOC:\n if (handler !== undefined) {\n this.text += chunk.slice(start);\n }\n // eslint-disable-next-line no-labels\n break outRootLoop;\n default:\n if (!isS(code)) {\n nonSpace = true;\n }\n }\n }\n if (!nonSpace) {\n return;\n }\n // We use the reportedTextBeforeRoot and reportedTextAfterRoot flags\n // to avoid reporting errors for every single character that is out of\n // place.\n if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextBeforeRoot = true;\n }\n if (this.closedRoot && !this.reportedTextAfterRoot) {\n this.fail(\"text data outside of root node.\");\n this.reportedTextAfterRoot = true;\n }\n }\n pushAttribNS(name, value) {\n var _a;\n const {\n prefix,\n local\n } = this.qname(name);\n const attr = {\n name,\n prefix,\n local,\n value\n };\n this.attribList.push(attr);\n // eslint-disable-next-line no-unused-expressions\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n if (prefix === \"xmlns\") {\n const trimmed = value.trim();\n if (this.currentXMLVersion === \"1.0\" && trimmed === \"\") {\n this.fail(\"invalid attempt to undefine prefix in XML 1.0\");\n }\n this.topNS[local] = trimmed;\n nsPairCheck(this, local, trimmed);\n } else if (name === \"xmlns\") {\n const trimmed = value.trim();\n this.topNS[\"\"] = trimmed;\n nsPairCheck(this, \"\", trimmed);\n }\n }\n pushAttribPlain(name, value) {\n var _a;\n const attr = {\n name,\n value\n };\n this.attribList.push(attr);\n // eslint-disable-next-line no-unused-expressions\n (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n }\n /**\n * End parsing. This performs final well-formedness checks and resets the\n * parser to a clean state.\n *\n * @returns this\n */\n end() {\n var _a, _b;\n if (!this.sawRoot) {\n this.fail(\"document must contain a root element.\");\n }\n const {\n tags\n } = this;\n while (tags.length > 0) {\n const tag = tags.pop();\n this.fail(`unclosed tag: ${tag.name}`);\n }\n if (this.state !== S_BEGIN && this.state !== S_TEXT) {\n this.fail(\"unexpected end.\");\n }\n const {\n text\n } = this;\n if (text.length !== 0) {\n // eslint-disable-next-line no-unused-expressions\n (_a = this.textHandler) === null || _a === void 0 ? void 0 : _a.call(this, text);\n this.text = \"\";\n }\n this._closed = true;\n // eslint-disable-next-line no-unused-expressions\n (_b = this.endHandler) === null || _b === void 0 ? void 0 : _b.call(this);\n this._init();\n return this;\n }\n /**\n * Resolve a namespace prefix.\n *\n * @param prefix The prefix to resolve.\n *\n * @returns The namespace URI or ``undefined`` if the prefix is not defined.\n */\n resolve(prefix) {\n var _a, _b;\n let uri = this.topNS[prefix];\n if (uri !== undefined) {\n return uri;\n }\n const {\n tags\n } = this;\n for (let index = tags.length - 1; index >= 0; index--) {\n uri = tags[index].ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n }\n uri = this.ns[prefix];\n if (uri !== undefined) {\n return uri;\n }\n return (_b = (_a = this.opt).resolvePrefix) === null || _b === void 0 ? void 0 : _b.call(_a, prefix);\n }\n /**\n * Parse a qname into its prefix and local name parts.\n *\n * @param name The name to parse\n *\n * @returns\n */\n qname(name) {\n // This is faster than using name.split(\":\").\n const colon = name.indexOf(\":\");\n if (colon === -1) {\n return {\n prefix: \"\",\n local: name\n };\n }\n const local = name.slice(colon + 1);\n const prefix = name.slice(0, colon);\n if (prefix === \"\" || local === \"\" || local.includes(\":\")) {\n this.fail(`malformed name: ${name}.`);\n }\n return {\n prefix,\n local\n };\n }\n processAttribsNS() {\n var _a;\n const {\n attribList\n } = this;\n const tag = this.tag;\n {\n // add namespace info to tag\n const {\n prefix,\n local\n } = this.qname(tag.name);\n tag.prefix = prefix;\n tag.local = local;\n const uri = tag.uri = (_a = this.resolve(prefix)) !== null && _a !== void 0 ? _a : \"\";\n if (prefix !== \"\") {\n if (prefix === \"xmlns\") {\n this.fail(\"tags may not have \\\"xmlns\\\" as prefix.\");\n }\n if (uri === \"\") {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n tag.uri = prefix;\n }\n }\n }\n if (attribList.length === 0) {\n return;\n }\n const {\n attributes\n } = tag;\n const seen = new Set();\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (const attr of attribList) {\n const {\n name,\n prefix,\n local\n } = attr;\n let uri;\n let eqname;\n if (prefix === \"\") {\n uri = name === \"xmlns\" ? XMLNS_NAMESPACE : \"\";\n eqname = name;\n } else {\n uri = this.resolve(prefix);\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (uri === undefined) {\n this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n uri = prefix;\n }\n eqname = `{${uri}}${local}`;\n }\n if (seen.has(eqname)) {\n this.fail(`duplicate attribute: ${eqname}.`);\n }\n seen.add(eqname);\n attr.uri = uri;\n attributes[name] = attr;\n }\n this.attribList = [];\n }\n processAttribsPlain() {\n const {\n attribList\n } = this;\n // eslint-disable-next-line prefer-destructuring\n const attributes = this.tag.attributes;\n for (const {\n name,\n value\n } of attribList) {\n if (attributes[name] !== undefined) {\n this.fail(`duplicate attribute: ${name}.`);\n }\n attributes[name] = value;\n }\n this.attribList = [];\n }\n /**\n * Handle a complete open tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onopentag``.\n */\n openTag() {\n var _a;\n this.processAttribs();\n const {\n tags\n } = this;\n const tag = this.tag;\n tag.isSelfClosing = false;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n // eslint-disable-next-line no-unused-expressions\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n tags.push(tag);\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete self-closing tag. This parser code calls this once it has\n * seen the whole tag. This method checks for well-formeness and then emits\n * ``onopentag`` and ``onclosetag``.\n */\n openSelfClosingTag() {\n var _a, _b, _c;\n this.processAttribs();\n const {\n tags\n } = this;\n const tag = this.tag;\n tag.isSelfClosing = true;\n // There cannot be any pending text here due to the onopentagstart that was\n // necessarily emitted before we get here. So we do not check text.\n // eslint-disable-next-line no-unused-expressions\n (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n // eslint-disable-next-line no-unused-expressions\n (_b = this.closeTagHandler) === null || _b === void 0 ? void 0 : _b.call(this, tag);\n const top = this.tag = (_c = tags[tags.length - 1]) !== null && _c !== void 0 ? _c : null;\n if (top === null) {\n this.closedRoot = true;\n }\n this.state = S_TEXT;\n this.name = \"\";\n }\n /**\n * Handle a complete close tag. This parser code calls this once it has seen\n * the whole tag. This method checks for well-formeness and then emits\n * ``onclosetag``.\n */\n closeTag() {\n const {\n tags,\n name\n } = this;\n // Our state after this will be S_TEXT, no matter what, and we can clear\n // tagName now.\n this.state = S_TEXT;\n this.name = \"\";\n if (name === \"\") {\n this.fail(\"weird empty close tag.\");\n this.text += \"\";\n return;\n }\n const handler = this.closeTagHandler;\n let l = tags.length;\n while (l-- > 0) {\n const tag = this.tag = tags.pop();\n this.topNS = tag.ns;\n // eslint-disable-next-line no-unused-expressions\n handler === null || handler === void 0 ? void 0 : handler(tag);\n if (tag.name === name) {\n break;\n }\n this.fail(\"unexpected close tag.\");\n }\n if (l === 0) {\n this.closedRoot = true;\n } else if (l < 0) {\n this.fail(`unmatched closing tag: ${name}.`);\n this.text += ``;\n }\n }\n /**\n * Resolves an entity. Makes any necessary well-formedness checks.\n *\n * @param entity The entity to resolve.\n *\n * @returns The parsed entity.\n */\n parseEntity(entity) {\n // startsWith would be significantly slower for this test.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entity[0] !== \"#\") {\n const defined = this.ENTITIES[entity];\n if (defined !== undefined) {\n return defined;\n }\n this.fail(this.isName(entity) ? \"undefined entity.\" : \"disallowed character in entity name.\");\n return `&${entity};`;\n }\n let num = NaN;\n if (entity[1] === \"x\" && /^#x[0-9a-f]+$/i.test(entity)) {\n num = parseInt(entity.slice(2), 16);\n } else if (/^#[0-9]+$/.test(entity)) {\n num = parseInt(entity.slice(1), 10);\n }\n // The character reference is required to match the CHAR production.\n if (!this.isChar(num)) {\n this.fail(\"malformed character entity.\");\n return `&${entity};`;\n }\n return String.fromCodePoint(num);\n }\n}\nexports.SaxesParser = SaxesParser;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlZDUiLCJyZXF1aXJlIiwiZWQyIiwiTlNlZDMiLCJpc1MiLCJpc0NoYXIxMCIsImlzQ2hhciIsImlzTmFtZVN0YXJ0Q2hhciIsImlzTmFtZUNoYXIiLCJTX0xJU1QiLCJOQU1FX1JFIiwiaXNDaGFyMTEiLCJpc05DTmFtZVN0YXJ0Q2hhciIsImlzTkNOYW1lQ2hhciIsIk5DX05BTUVfUkUiLCJYTUxfTkFNRVNQQUNFIiwiWE1MTlNfTkFNRVNQQUNFIiwicm9vdE5TIiwiX19wcm90b19fIiwieG1sIiwieG1sbnMiLCJYTUxfRU5USVRJRVMiLCJhbXAiLCJndCIsImx0IiwicXVvdCIsImFwb3MiLCJFT0MiLCJOTF9MSUtFIiwiU19CRUdJTiIsIlNfQkVHSU5fV0hJVEVTUEFDRSIsIlNfRE9DVFlQRSIsIlNfRE9DVFlQRV9RVU9URSIsIlNfRFREIiwiU19EVERfUVVPVEVEIiwiU19EVERfT1BFTl9XQUtBIiwiU19EVERfT1BFTl9XQUtBX0JBTkciLCJTX0RURF9DT01NRU5UIiwiU19EVERfQ09NTUVOVF9FTkRJTkciLCJTX0RURF9DT01NRU5UX0VOREVEIiwiU19EVERfUEkiLCJTX0RURF9QSV9FTkRJTkciLCJTX1RFWFQiLCJTX0VOVElUWSIsIlNfT1BFTl9XQUtBIiwiU19PUEVOX1dBS0FfQkFORyIsIlNfQ09NTUVOVCIsIlNfQ09NTUVOVF9FTkRJTkciLCJTX0NPTU1FTlRfRU5ERUQiLCJTX0NEQVRBIiwiU19DREFUQV9FTkRJTkciLCJTX0NEQVRBX0VORElOR18yIiwiU19QSV9GSVJTVF9DSEFSIiwiU19QSV9SRVNUIiwiU19QSV9CT0RZIiwiU19QSV9FTkRJTkciLCJTX1hNTF9ERUNMX05BTUVfU1RBUlQiLCJTX1hNTF9ERUNMX05BTUUiLCJTX1hNTF9ERUNMX0VRIiwiU19YTUxfREVDTF9WQUxVRV9TVEFSVCIsIlNfWE1MX0RFQ0xfVkFMVUUiLCJTX1hNTF9ERUNMX1NFUEFSQVRPUiIsIlNfWE1MX0RFQ0xfRU5ESU5HIiwiU19PUEVOX1RBRyIsIlNfT1BFTl9UQUdfU0xBU0giLCJTX0FUVFJJQiIsIlNfQVRUUklCX05BTUUiLCJTX0FUVFJJQl9OQU1FX1NBV19XSElURSIsIlNfQVRUUklCX1ZBTFVFIiwiU19BVFRSSUJfVkFMVUVfUVVPVEVEIiwiU19BVFRSSUJfVkFMVUVfQ0xPU0VEIiwiU19BVFRSSUJfVkFMVUVfVU5RVU9URUQiLCJTX0NMT1NFX1RBRyIsIlNfQ0xPU0VfVEFHX1NBV19XSElURSIsIlRBQiIsIk5MIiwiQ1IiLCJTUEFDRSIsIkJBTkciLCJEUVVPVEUiLCJBTVAiLCJTUVVPVEUiLCJNSU5VUyIsIkZPUldBUkRfU0xBU0giLCJTRU1JQ09MT04iLCJMRVNTIiwiRVFVQUwiLCJHUkVBVEVSIiwiUVVFU1RJT04iLCJPUEVOX0JSQUNLRVQiLCJDTE9TRV9CUkFDS0VUIiwiTkVMIiwiTFMiLCJpc1F1b3RlIiwiYyIsIlFVT1RFUyIsIkRPQ1RZUEVfVEVSTUlOQVRPUiIsIkRURF9URVJNSU5BVE9SIiwiWE1MX0RFQ0xfTkFNRV9URVJNSU5BVE9SIiwiQVRUUklCX1ZBTFVFX1VOUVVPVEVEX1RFUk1JTkFUT1IiLCJuc1BhaXJDaGVjayIsInBhcnNlciIsInByZWZpeCIsInVyaSIsImZhaWwiLCJuc01hcHBpbmdDaGVjayIsIm1hcHBpbmciLCJsb2NhbCIsIk9iamVjdCIsImtleXMiLCJpc05DTmFtZSIsIm5hbWUiLCJ0ZXN0IiwiaXNOYW1lIiwiRk9SQklEREVOX1NUQVJUIiwiRk9SQklEREVOX0JSQUNLRVQiLCJGT1JCSURERU5fQlJBQ0tFVF9CUkFDS0VUIiwiZXhwb3J0cyIsIkVWRU5UUyIsIkVWRU5UX05BTUVfVE9fSEFORExFUl9OQU1FIiwieG1sZGVjbCIsInRleHQiLCJwcm9jZXNzaW5naW5zdHJ1Y3Rpb24iLCJkb2N0eXBlIiwiY29tbWVudCIsIm9wZW50YWdzdGFydCIsImF0dHJpYnV0ZSIsIm9wZW50YWciLCJjbG9zZXRhZyIsImNkYXRhIiwiZXJyb3IiLCJlbmQiLCJyZWFkeSIsIlNheGVzUGFyc2VyIiwiY29uc3RydWN0b3IiLCJvcHQiLCJmcmFnbWVudE9wdCIsImZyYWdtZW50IiwieG1sbnNPcHQiLCJ0cmFja1Bvc2l0aW9uIiwicG9zaXRpb24iLCJmaWxlTmFtZSIsIm5hbWVTdGFydENoZWNrIiwibmFtZUNoZWNrIiwicHJvY2Vzc0F0dHJpYnMiLCJwcm9jZXNzQXR0cmlic05TIiwicHVzaEF0dHJpYiIsInB1c2hBdHRyaWJOUyIsIm5zIiwiYXNzaWduIiwiYWRkaXRpb25hbCIsImFkZGl0aW9uYWxOYW1lc3BhY2VzIiwicHJvY2Vzc0F0dHJpYnNQbGFpbiIsInB1c2hBdHRyaWJQbGFpbiIsInN0YXRlVGFibGUiLCJzQmVnaW4iLCJzQmVnaW5XaGl0ZXNwYWNlIiwic0RvY3R5cGUiLCJzRG9jdHlwZVF1b3RlIiwic0RURCIsInNEVERRdW90ZWQiLCJzRFRET3Blbldha2EiLCJzRFRET3Blbldha2FCYW5nIiwic0RURENvbW1lbnQiLCJzRFREQ29tbWVudEVuZGluZyIsInNEVERDb21tZW50RW5kZWQiLCJzRFREUEkiLCJzRFREUElFbmRpbmciLCJzVGV4dCIsInNFbnRpdHkiLCJzT3Blbldha2EiLCJzT3Blbldha2FCYW5nIiwic0NvbW1lbnQiLCJzQ29tbWVudEVuZGluZyIsInNDb21tZW50RW5kZWQiLCJzQ0RhdGEiLCJzQ0RhdGFFbmRpbmciLCJzQ0RhdGFFbmRpbmcyIiwic1BJRmlyc3RDaGFyIiwic1BJUmVzdCIsInNQSUJvZHkiLCJzUElFbmRpbmciLCJzWE1MRGVjbE5hbWVTdGFydCIsInNYTUxEZWNsTmFtZSIsInNYTUxEZWNsRXEiLCJzWE1MRGVjbFZhbHVlU3RhcnQiLCJzWE1MRGVjbFZhbHVlIiwic1hNTERlY2xTZXBhcmF0b3IiLCJzWE1MRGVjbEVuZGluZyIsInNPcGVuVGFnIiwic09wZW5UYWdTbGFzaCIsInNBdHRyaWIiLCJzQXR0cmliTmFtZSIsInNBdHRyaWJOYW1lU2F3V2hpdGUiLCJzQXR0cmliVmFsdWUiLCJzQXR0cmliVmFsdWVRdW90ZWQiLCJzQXR0cmliVmFsdWVDbG9zZWQiLCJzQXR0cmliVmFsdWVVbnF1b3RlZCIsInNDbG9zZVRhZyIsInNDbG9zZVRhZ1Nhd1doaXRlIiwiX2luaXQiLCJjbG9zZWQiLCJfY2xvc2VkIiwib3Blbldha2FCYW5nIiwicGlUYXJnZXQiLCJlbnRpdHkiLCJxIiwidGFncyIsInRhZyIsInRvcE5TIiwiY2h1bmsiLCJjaHVua1Bvc2l0aW9uIiwiaSIsInByZXZJIiwiY2FycmllZEZyb21QcmV2aW91cyIsInVuZGVmaW5lZCIsImZvcmJpZGRlblN0YXRlIiwiYXR0cmliTGlzdCIsInN0YXRlIiwicmVwb3J0ZWRUZXh0QmVmb3JlUm9vdCIsInJlcG9ydGVkVGV4dEFmdGVyUm9vdCIsImNsb3NlZFJvb3QiLCJzYXdSb290IiwieG1sRGVjbFBvc3NpYmxlIiwieG1sRGVjbEV4cGVjdHMiLCJlbnRpdHlSZXR1cm5TdGF0ZSIsImRlZmF1bHRYTUxWZXJzaW9uIiwiZm9yY2VYTUxWZXJzaW9uIiwiRXJyb3IiLCJzZXRYTUxWZXJzaW9uIiwicG9zaXRpb25BdE5ld0xpbmUiLCJ4bWxEZWNsIiwidmVyc2lvbiIsImVuY29kaW5nIiwic3RhbmRhbG9uZSIsImxpbmUiLCJjb2x1bW4iLCJFTlRJVElFUyIsImNyZWF0ZSIsIl9hIiwicmVhZHlIYW5kbGVyIiwiY2FsbCIsImNvbHVtbkluZGV4Iiwib24iLCJoYW5kbGVyIiwib2ZmIiwibWFrZUVycm9yIiwibWVzc2FnZSIsIm1zZyIsImxlbmd0aCIsImVyciIsImVycm9ySGFuZGxlciIsIndyaXRlIiwidG9TdHJpbmciLCJsaW1pdCIsImxhc3RDb2RlIiwiY2hhckNvZGVBdCIsInNsaWNlIiwiY2xvc2UiLCJnZXRDb2RlMTAiLCJjb2RlIiwiZmluYWwiLCJnZXRDb2RlMTEiLCJuZXh0IiwiZ2V0Q29kZU5vcm0iLCJnZXRDb2RlIiwidW5nZXQiLCJjYXB0dXJlVG8iLCJjaGFycyIsInN0YXJ0IiwiaXNOTExpa2UiLCJpbmNsdWRlcyIsImNhcHR1cmVUb0NoYXIiLCJjaGFyIiwiY2FwdHVyZU5hbWVDaGFycyIsInNraXBTcGFjZXMiLCJjdXJyZW50WE1MVmVyc2lvbiIsImlCZWZvcmUiLCJkb2N0eXBlSGFuZGxlciIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiLCJvd2IiLCJoYW5kbGVUZXh0SW5Sb290IiwiaGFuZGxlVGV4dE91dHNpZGVSb290IiwibG9vcCIsInBhcnNlZCIsInBhcnNlRW50aXR5IiwidGV4dEhhbmRsZXIiLCJjb21tZW50SGFuZGxlciIsImNkYXRhSGFuZGxlciIsImlzUXVlc3Rpb24iLCJ0b0xvd2VyQ2FzZSIsInBpSGFuZGxlciIsInRhcmdldCIsImJvZHkiLCJqb2luIiwidmFsdWUiLCJ4bWxkZWNsSGFuZGxlciIsImF0dHJpYnV0ZXMiLCJvcGVuVGFnU3RhcnRIYW5kbGVyIiwib3BlblRhZyIsIm9wZW5TZWxmQ2xvc2luZ1RhZyIsImNsb3NlVGFnIiwic2Nhbkxvb3AiLCJub25TcGFjZSIsIm91dFJvb3RMb29wIiwicW5hbWUiLCJhdHRyIiwicHVzaCIsImF0dHJpYnV0ZUhhbmRsZXIiLCJ0cmltbWVkIiwidHJpbSIsInBvcCIsIl9iIiwiZW5kSGFuZGxlciIsInJlc29sdmUiLCJpbmRleCIsInJlc29sdmVQcmVmaXgiLCJjb2xvbiIsImluZGV4T2YiLCJKU09OIiwic3RyaW5naWZ5Iiwic2VlbiIsIlNldCIsImVxbmFtZSIsImhhcyIsImFkZCIsImlzU2VsZkNsb3NpbmciLCJvcGVuVGFnSGFuZGxlciIsImNsb3NlVGFnSGFuZGxlciIsInRvcCIsIl9jIiwibCIsImRlZmluZWQiLCJudW0iLCJOYU4iLCJwYXJzZUludCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYXhlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFBQSxHQUFBLEdBQUFDLE9BQUE7QUFDQSxNQUFBQyxHQUFBLEdBQUFELE9BQUE7QUFDQSxNQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFPRyxHQUFHLEdBQUdKLEdBQUcsQ0FBQ0ksR0FBRztBQUNwQixJQUFPQyxRQUFRLEdBQUdMLEdB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","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('./readable').PassThrough\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./lib/_stream_writable.js');\n","var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\n\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n// Fragments.\n//\nexports.CHAR = \"\\t\\n\\r -\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return c >= SPACE && c <= 0xD7FF || c === NL || c === CR || c === TAB || c >= 0xE000 && c <= 0xFFFD || c >= 0x10000 && c <= 0x10FFFF;\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\nfunction isNameStartChar(c) {\n return c >= 0x41 && c <= 0x5A || c >= 0x61 && c <= 0x7A || c === 0x3A || c === 0x5F || c === 0x200C || c === 0x200D || c >= 0xC0 && c <= 0xD6 || c >= 0xD8 && c <= 0xF6 || c >= 0x00F8 && c <= 0x02FF || c >= 0x0370 && c <= 0x037D || c >= 0x037F && c <= 0x1FFF || c >= 0x2070 && c <= 0x218F || c >= 0x2C00 && c <= 0x2FEF || c >= 0x3001 && c <= 0xD7FF || c >= 0xF900 && c <= 0xFDCF || c >= 0xFDF0 && c <= 0xFFFD || c >= 0x10000 && c <= 0xEFFFF;\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) || c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x2E || c === 0xB7 || c >= 0x0300 && c <= 0x036F || c >= 0x203F && c <= 0x2040;\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBvcnRzIiwiQ0hBUiIsIlMiLCJOQU1FX1NUQVJUX0NIQVIiLCJOQU1FX0NIQVIiLCJDSEFSX1JFIiwiUmVnRXhwIiwiU19SRSIsIk5BTUVfU1RBUlRfQ0hBUl9SRSIsIk5BTUVfQ0hBUl9SRSIsIk5BTUVfUkUiLCJOTVRPS0VOX1JFIiwiVEFCIiwiTkwiLCJDUiIsIlNQQUNFIiwiU19MSVNUIiwiaXNDaGFyIiwiYyIsImlzUyIsImlzTmFtZVN0YXJ0Q2hhciIsImlzTmFtZUNoYXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMveG1sLzEuMC9lZDUudHMiXSwic291cmNlc0NvbnRlbnQiOltudWxsXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7QUFDYUEsT0FBQSxDQUFBQyxJQUFJLEdBQUcsc0RBQXNEO0FBRTdERCxPQUFBLENBQUFFLENBQUMsR0FBRyxTQUFTO0FBRTFCO0FBQ2FGLE9BQUEsQ0FBQUcsZUFBZSxHQUFHLGlMQUEySztBQUU3TEgsT0FBQSxDQUFBSSxTQUFTLEdBQ3BCLE1BQUlKLE9BQUEsQ0FBQUcsZUFBZSx5Q0FBc0M7QUFFM0Q7QUFDQTtBQUNBO0FBRWFILE9BQUEsQ0FBQUssT0FBTyxHQUFHLElBQUlDLE1BQU0sQ0FBQyxPQUFLTixPQUFBLENBQUFDLElBQUksT0FBSSxFQUFFLEdBQUcsQ0FBQztBQUV4Q0QsT0FBQSxDQUFBTyxJQUFJLEdBQUcsSUFBSUQsTUFBTSxDQUFDLE9BQUtOLE9BQUEsQ0FBQUUsQ0FBQyxRQUFLLEVBQUUsR0FBRyxDQUFDO0FBRW5DRixPQUFBLENBQUFRLGtCQUFrQixHQUFHLElBQUlGLE1BQU0sQ0FBQyxPQUFLTixPQUFBLENBQUFHLGVBQWUsT0FBSSxFQUFFLEdBQUcsQ0FBQztBQUU5REgsT0FBQSxDQUFBUyxZQUFZLEdBQUcsSUFBSUgsTUFBTSxDQUFDLE9BQUtOLE9BQUEsQ0FBQUksU0FBUyxPQUFJLEVBQUUsR0FBRyxDQUFDO0FBRWxESixPQUFBLENBQUFVLE9B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","\"use strict\";\n\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n// Fragments.\n//\nexports.CHAR = \"\\u0001-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.RESTRICTED_CHAR = \"\\u0001-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u0084\\u0086-\\u009F\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.RESTRICTED_CHAR_RE = new RegExp(\"^[\" + exports.RESTRICTED_CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n return c >= 0x0001 && c <= 0xD7FF || c >= 0xE000 && c <= 0xFFFD || c >= 0x10000 && c <= 0x10FFFF;\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``RESTRICTED_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``RESTRICTED_CHAR``.\n */\nfunction isRestrictedChar(c) {\n return c >= 0x1 && c <= 0x8 || c === 0xB || c === 0xC || c >= 0xE && c <= 0x1F || c >= 0x7F && c <= 0x84 || c >= 0x86 && c <= 0x9F;\n}\nexports.isRestrictedChar = isRestrictedChar;\n/**\n * Determines whether a codepoint matches the ``CHAR`` production and does not\n * match the ``RESTRICTED_CHAR`` production. ``isCharAndNotRestricted(x)`` is\n * equivalent to ``isChar(x) && !isRestrictedChar(x)``. This function is faster\n * than running the two-call equivalent.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR`` and does not match\n * ``RESTRICTED_CHAR``.\n */\nfunction isCharAndNotRestricted(c) {\n return c === 0x9 || c === 0xA || c === 0xD || c > 0x1F && c < 0x7F || c === 0x85 || c > 0x9F && c <= 0xD7FF || c >= 0xE000 && c <= 0xFFFD || c >= 0x10000 && c <= 0x10FFFF;\n}\nexports.isCharAndNotRestricted = isCharAndNotRestricted;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNameStartChar(c) {\n return c >= 0x41 && c <= 0x5A || c >= 0x61 && c <= 0x7A || c === 0x3A || c === 0x5F || c === 0x200C || c === 0x200D || c >= 0xC0 && c <= 0xD6 || c >= 0xD8 && c <= 0xF6 || c >= 0x00F8 && c <= 0x02FF || c >= 0x0370 && c <= 0x037D || c >= 0x037F && c <= 0x1FFF || c >= 0x2070 && c <= 0x218F || c >= 0x2C00 && c <= 0x2FEF || c >= 0x3001 && c <= 0xD7FF || c >= 0xF900 && c <= 0xFDCF || c >= 0xFDF0 && c <= 0xFFFD || c >= 0x10000 && c <= 0xEFFFF;\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n return isNameStartChar(c) || c >= 0x30 && c <= 0x39 || c === 0x2D || c === 0x2E || c === 0xB7 || c >= 0x0300 && c <= 0x036F || c >= 0x203F && c <= 0x2040;\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBvcnRzIiwiQ0hBUiIsIlJFU1RSSUNURURfQ0hBUiIsIlMiLCJOQU1FX1NUQVJUX0NIQVIiLCJOQU1FX0NIQVIiLCJDSEFSX1JFIiwiUmVnRXhwIiwiUkVTVFJJQ1RFRF9DSEFSX1JFIiwiU19SRSIsIk5BTUVfU1RBUlRfQ0hBUl9SRSIsIk5BTUVfQ0hBUl9SRSIsIk5BTUVfUkUiLCJOTVRPS0VOX1JFIiwiVEFCIiwiTkwiLCJDUiIsIlNQQUNFIiwiU19MSVNUIiwiaXNDaGFyIiwiYyIsImlzUmVzdHJpY3RlZENoYXIiLCJpc0NoYXJBbmROb3RSZXN0cmljdGVkIiwiaXNTIiwiaXNOYW1lU3RhcnRDaGFyIiwiaXNOYW1lQ2hhciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy94bWwvMS4xL2VkMi50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7Ozs7OztBQVFBO0FBQ0E7QUFDQTtBQUNhQSxPQUFBLENBQUFDLElBQUksR0FBRyxxREFBZ0Q7QUFFdkRELE9BQUEsQ0FBQUUsZUFBZSxHQUMxQixrRUFBa0U7QUFFdkRGLE9BQUEsQ0FBQUcsQ0FBQyxHQUFHLFNBQVM7QUFFMUI7QUFDYUgsT0FBQSxDQUFBSSxlQUFlLEdBQUcsaUxBQTJLO0FBRTdMSixPQUFBLENBQUFLLFNBQVMsR0FDcEIsTUFBSUwsT0FBQSxDQUFBSSxlQUFlLHlDQUFzQztBQUUzRDtBQUNBO0FBQ0E7QUFFYUosT0FBQSxDQUFBTSxPQUFPLEdBQUcsSUFBSUMsTUFBTSxDQUFDLE9BQUtQLE9BQUEsQ0FBQUMsSUFBSSxPQUFJLEVBQUUsR0FBRyxDQUFDO0FBRXhDRCxPQUFBLENBQUFRLGtCQUFrQixHQUFHLElBQUlELE1BQU0sQ0FBQyxPQUFLUCxPQUFBLENBQUFFLGVBQWUsT0FBSSxFQUFFLEdBQUcsQ0FBQztBQUU5REYsT0FBQSxDQUFBUyxJQUFJLEdBQUcsSUFBSUYsTUFBTSxDQUFDLE9BQUtQLE9BQUEsQ0FBQUcsQ0FBQyxRQUFLLEVB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","\"use strict\";\n\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n//\n// Fragments.\n//\n// tslint:disable-next-line:max-line-length\nexports.NC_NAME_START_CHAR = \"A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NC_NAME_CHAR = \"-\" + exports.NC_NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.NC_NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"]$\", \"u\");\nexports.NC_NAME_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_CHAR + \"]$\", \"u\");\nexports.NC_NAME_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"][\" + exports.NC_NAME_CHAR + \"]*$\", \"u\");\n/**\n * Determines whether a codepoint matches [[NC_NAME_START_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNCNameStartChar(c) {\n return c >= 0x41 && c <= 0x5A || c === 0x5F || c >= 0x61 && c <= 0x7A || c >= 0xC0 && c <= 0xD6 || c >= 0xD8 && c <= 0xF6 || c >= 0x00F8 && c <= 0x02FF || c >= 0x0370 && c <= 0x037D || c >= 0x037F && c <= 0x1FFF || c >= 0x200C && c <= 0x200D || c >= 0x2070 && c <= 0x218F || c >= 0x2C00 && c <= 0x2FEF || c >= 0x3001 && c <= 0xD7FF || c >= 0xF900 && c <= 0xFDCF || c >= 0xFDF0 && c <= 0xFFFD || c >= 0x10000 && c <= 0xEFFFF;\n}\nexports.isNCNameStartChar = isNCNameStartChar;\n/**\n * Determines whether a codepoint matches [[NC_NAME_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\nfunction isNCNameChar(c) {\n return isNCNameStartChar(c) || c === 0x2D || c === 0x2E || c >= 0x30 && c <= 0x39 || c === 0x00B7 || c >= 0x0300 && c <= 0x036F || c >= 0x203F && c <= 0x2040;\n}\nexports.isNCNameChar = isNCNameChar;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBvcnRzIiwiTkNfTkFNRV9TVEFSVF9DSEFSIiwiTkNfTkFNRV9DSEFSIiwiTkNfTkFNRV9TVEFSVF9DSEFSX1JFIiwiUmVnRXhwIiwiTkNfTkFNRV9DSEFSX1JFIiwiTkNfTkFNRV9SRSIsImlzTkNOYW1lU3RhcnRDaGFyIiwiYyIsImlzTkNOYW1lQ2hhciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy94bWxucy8xLjAvZWQzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7O0FBUUE7QUFDQTtBQUNBO0FBRUE7QUFDYUEsT0FBQSxDQUFBQyxrQkFBa0IsR0FBRyxpTEFBMks7QUFFaE1ELE9BQUEsQ0FBQUUsWUFBWSxHQUN2QixNQUFJRixPQUFBLENBQUFDLGtCQUFrQix5Q0FBc0M7QUFFOUQ7QUFDQTtBQUNBO0FBRWFELE9BQUEsQ0FBQUcscUJBQXFCLEdBQ2hDLElBQUlDLE1BQU0sQ0FBQyxPQUFLSixPQUFBLENBQUFDLGtCQUFrQixPQUFJLEVBQUUsR0FBRyxDQUFDO0FBRWpDRCxPQUFBLENBQUFLLGVBQWUsR0FBRyxJQUFJRCxNQUFNLENBQUMsT0FBS0osT0FBQSxDQUFBRSxZQUFZLE9BQUksRUFBRSxHQUFHLENBQUM7QUFFeERGLE9BQUEsQ0FBQU0sVUFBVSxHQUNyQixJQUFJRixNQUFNLENBQUMsT0FBS0osT0FBQSxDQUFBQyxrQkFBa0IsVUFBS0QsT0FBQSxDQUFBRSxZQUFZLFFBQUssRUFBRSxHQUFHLENBQUM7QUFFaEU7Ozs7Ozs7QUFPQTtBQUNBLFNBQWdCSyxpQkFBaUJBLENBQUNDLENBQVM7RUFDekMsT0FBU0EsQ0FBQyxJQUFJLElBQUksSUFBSUEsQ0FBQyxJQUFJLElBQUksSUFDdkJBLENBQUMsS0FBSyxJQUFJLElBQ1RBLENBQUMsSUFBSSxJQUFJLElBQUlBLENBQUMsSUFBSSxJQUFLLElBQ3ZCQSxDQUFDLElBQUksSUFBSSxJQUFJQSxDQUFDLElBQUksSUFBSyxJQUN2QkEsQ0FBQyxJQUFJLElBQUksSUFBSUEsQ0FBQyxJQUFJLElBQUssSUFDdkJBLENBQUMsSUFBSSxNQUFNLElBQUlBLENBQUMsSUFBSSxNQUFPLElBQzNCQSxDQUFDLElBQUksTUFBTSxJQUFJQSxDQUFDLElBQUksTUFBTyxJQUMzQkEsQ0FBQyxJQUFJLE1BQU0sSUFBSUEsQ0FBQyxJQUFJLE1BQU8sSUFDM0JBLENBQUMsSUFBSSxNQUFNLElBQUlBLENBQUMsSUFBSSxNQUFPLElBQzNCQSxDQUFDLElBQUksTUFBTSxJQUFJQSxDQUFDLElBQUksTUFBTyxJQUMzQkEsQ0FBQyxJQUFJLE1BQU0sSUFBSUEsQ0FBQyxJQUFJLE1BQU8sSUFDM0JBLENBQUMsSUFBSSxNQUFNLElBQUlBLENBQUMsSUFBSSxNQUFPLElBQzNCQSxDQUFDLElBQUksTUFBTSxJQUFJQSxDQUFDLElBQUksTUFBTyxJQUMzQkEsQ0FBQyxJQUFJLE1BQU0sSUFBSUEsQ0FBQyxJQUFJLE1BQU8sSUFDM0JBLENBQUMsSUFBSSxPQUFPLElBQUlBLENBQUMsSUFBSSxPQUFRO0FBQ3hDO0FBaEJBUixPQUFBLENBQUFPLGlCQUFBLEdBQUFBLGlCQUFBO0FBa0JBOzs7Ozs7O0FBT0EsU0FBZ0JFLFlBQVlBLENBQUNELENBQVM7RUFDcEMsT0FBT0QsaUJBQWlCLENBQUNDLENBQUMsQ0FBQyxJQUN4QkEsQ0FBQyxLQUFLLElBQUksSUFDVkEsQ0FBQyxLQUFLLElBQUksSUFDVEEsQ0FBQyxJQUFJLElBQUksSUFBSUEsQ0FBQyxJQUFJLElBQUssSUFDeEJBLENBQUMsS0FBSyxNQUFNLElBQ1hBLENBQUMsSUFBSSxNQUFNLElBQUlBLENBQUMsSUFBSSxNQUFPLElBQzNCQSxDQUFDLElBQUksTUFBTSxJQUFJQSxDQUFDLElBQUksTUFBUTtBQUNsQztBQVJBUixPQUFBLENBQUFTLFlBQUEsR0FBQUEsWUFBQSJ9","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// In our case, there's only one dependency\n\nvar toRgb = require('hsl-to-rgb-for-reals')\n\n// Typically all dependencies should be declared at the top of the file.\n\n// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.\n// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by \"spinning\" them around until they fall within the 0 to 359 range.\n// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.\n// Let's write some utility functions to handle this logic:\n\nfunction max (val, n) {\n return (val > n) ? n : val\n}\n\nfunction min (val, n) {\n return (val < n) ? n : val\n}\n\nfunction cycle (val) {\n // for safety:\n val = max(val, 1e7)\n val = min(val, -1e7)\n // cycle value:\n while (val < 0) { val += 360 }\n while (val > 359) { val -= 360 }\n return val\n}\n\n// Now for the main piece, the `hsl` function:\n\nfunction hsl (hue, saturation, luminosity) {\n // resolve degrees to 0 - 359 range\n hue = cycle(hue)\n\n // enforce constraints\n saturation = min(max(saturation, 100), 0)\n luminosity = min(max(luminosity, 100), 0)\n\n // convert to 0 to 1 range used by hsl-to-rgb-for-reals\n saturation /= 100\n luminosity /= 100\n\n // let hsl-to-rgb-for-reals do the hard work\n var rgb = toRgb(hue, saturation, luminosity)\n\n // convert each value in the returned RGB array\n // to a 2 character hex value, join the array into\n // a string, prefixed with a hash\n return '#' + rgb\n .map(function (n) {\n return (256 + n).toString(16).substr(-2)\n })\n .join('')\n}\n\n// In order to make our code into a bona fide module we have to export it:\n\nmodule.exports = hsl\n","// expected hue range: [0, 360)\n// expected saturation range: [0, 1]\n// expected lightness range: [0, 1]\nvar hslToRgb = function(hue, saturation, lightness){\n // based on algorithm from http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n if( hue == undefined ){\n return [0, 0, 0];\n }\n\n var chroma = (1 - Math.abs((2 * lightness) - 1)) * saturation;\n var huePrime = hue / 60;\n var secondComponent = chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n huePrime = Math.floor(huePrime);\n var red;\n var green;\n var blue;\n\n if( huePrime === 0 ){\n red = chroma;\n green = secondComponent;\n blue = 0;\n }else if( huePrime === 1 ){\n red = secondComponent;\n green = chroma;\n blue = 0;\n }else if( huePrime === 2 ){\n red = 0;\n green = chroma;\n blue = secondComponent;\n }else if( huePrime === 3 ){\n red = 0;\n green = secondComponent;\n blue = chroma;\n }else if( huePrime === 4 ){\n red = secondComponent;\n green = 0;\n blue = chroma;\n }else if( huePrime === 5 ){\n red = chroma;\n green = 0;\n blue = secondComponent;\n }\n\n var lightnessAdjustment = lightness - (chroma / 2);\n red += lightnessAdjustment;\n green += lightnessAdjustment;\n blue += lightnessAdjustment;\n\n return [\n Math.abs(Math.round(red * 255)),\n Math.abs(Math.round(green * 255)),\n Math.abs(Math.round(blue * 255))\n ];\n\n};\n\nmodule.exports = hslToRgb;\n","/** Text hyphenation in Javascript.\n * Copyright (C) 2024 Yevhen Tiurin (yevhentiurin@gmail.com)\n * https://github.com/ytiurin/hyphen\n *\n * Released under the ISC license\n * https://github.com/ytiurin/hyphen/blob/master/LICENSE\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.createHyphenator = factory();\n }\n})(this, function () {\n function createTextReader(setup) {\n var char1 = \"\";\n var char2 = \"\";\n var i = 0;\n var verifier = setup();\n return function (text) {\n while (i < text.length) {\n char1 = text.charAt(i++);\n char2 = text.charAt(i);\n var verified = verifier(char1, char2);\n if (verified !== void 0) {\n return verified;\n }\n }\n };\n }\n\n var isNotLetter = RegExp.prototype.test.bind(\n /\\s|(?![\\'])[\\!-\\@\\[-\\`\\{-\\~\\u2013-\\u203C]/\n );\n function createHTMLVerifier() {\n var skip = false;\n return function (accumulate, chars) {\n if (skip) {\n if (chars[0] === \">\") {\n accumulate();\n skip = false;\n }\n } else if (\n chars[0] === \"<\" &&\n (!isNotLetter(chars[1]) || chars[1] === \"/\")\n ) {\n skip = true;\n }\n return skip;\n };\n }\n function createHyphenCharVerifier(hyphenChar) {\n var skip = false;\n return function (accumulate, chars) {\n if (skip) {\n if (!isNotLetter(chars[0]) && isNotLetter(chars[1])) {\n accumulate();\n skip = false;\n }\n } else if (!isNotLetter(chars[0]) && chars[1] === hyphenChar) {\n skip = true;\n }\n return skip;\n };\n }\n function createHyphenationVerifier(verifiers, minWordLength) {\n return function () {\n var accum0 = \"\";\n var accum = \"\";\n function accumulate() {\n accum0 += accum;\n accum = \"\";\n }\n function resolveWith(value) {\n accum0 = \"\";\n accum = \"\";\n return value;\n }\n return function (char1, char2) {\n accum += char1;\n var skip = verifiers.reduce(function (skip2, verify) {\n return skip2 || verify(accumulate, [char1, char2]);\n }, false);\n if (!skip) {\n if (isNotLetter(char1) && !isNotLetter(char2)) {\n accumulate();\n }\n if (!isNotLetter(char1) && isNotLetter(char2)) {\n if (accum.length >= minWordLength) {\n return resolveWith([accum0, accum]);\n } else {\n accumulate();\n }\n }\n }\n if (char2 === \"\") {\n if (accum.length < minWordLength || skip) {\n accumulate();\n }\n return resolveWith([accum0, accum]);\n }\n };\n };\n }\n\n function createCharIterator(str) {\n var i = 0;\n function nextChar() {\n return str[i++];\n }\n return nextChar;\n }\n function createStringSlicer(str) {\n var i = 0,\n slice = str;\n function next() {\n slice = str.slice(i++);\n if (slice.length < 3) {\n return;\n }\n return slice;\n }\n function isFirstCharacter() {\n return i === 2;\n }\n return [next, isFirstCharacter];\n }\n function hyphenateWord(text, levelsTable, patternTrie, debug, hyphenChar) {\n var levels = new Array(text.length + 1),\n loweredText = (\".\" + text.toLocaleLowerCase() + \".\").split(\"\"),\n wordSlice,\n letter,\n triePtr,\n trieNode,\n patternLevelsIndex,\n patternLevels,\n patternEntityIndex = -1,\n slicer,\n nextSlice,\n isFirstCharacter,\n nextLetter;\n for (var i = levels.length; i--; ) levels[i] = 0;\n slicer = createStringSlicer(loweredText);\n nextSlice = slicer[0];\n isFirstCharacter = slicer[1];\n while ((wordSlice = nextSlice())) {\n patternEntityIndex++;\n if (isFirstCharacter()) {\n patternEntityIndex--;\n }\n triePtr = patternTrie;\n nextLetter = createCharIterator(wordSlice);\n while ((letter = nextLetter())) {\n if ((trieNode = triePtr[letter]) === void 0) {\n break;\n }\n triePtr = {};\n patternLevelsIndex = -1;\n switch (Object.prototype.toString.call(trieNode)) {\n case \"[object Array]\":\n triePtr = trieNode[0];\n patternLevelsIndex = trieNode[1];\n break;\n case \"[object Object]\":\n triePtr = trieNode;\n break;\n case \"[object Number]\":\n patternLevelsIndex = trieNode;\n break;\n }\n if (patternLevelsIndex < 0) {\n continue;\n }\n if (!levelsTable[patternLevelsIndex].splice) {\n levelsTable[patternLevelsIndex] = levelsTable[\n patternLevelsIndex\n ].slice(\"\");\n }\n patternLevels = levelsTable[patternLevelsIndex];\n for (var k = 0; k < patternLevels.length; k++)\n levels[patternEntityIndex + k] = Math.max(\n patternLevels[k],\n levels[patternEntityIndex + k]\n );\n }\n }\n levels[0] = levels[1] = levels[levels.length - 1] = levels[\n levels.length - 2\n ] = 0;\n var hyphenatedText = \"\";\n for (var i = 0; i < levels.length; i++) {\n hyphenatedText +=\n (levels[i] % 2 === 1 ? hyphenChar : \"\") + text.charAt(i);\n }\n return hyphenatedText;\n }\n\n function start(\n text,\n levelsTable,\n patterns,\n cache,\n debug,\n hyphenChar,\n skipHTML,\n minWordLength,\n isAsync\n ) {\n function done() {\n resolveNewText(newText);\n }\n var newText = \"\",\n fragments,\n readText = createTextReader(\n createHyphenationVerifier(\n (skipHTML ? [createHTMLVerifier()] : []).concat(\n createHyphenCharVerifier(hyphenChar)\n ),\n minWordLength\n )\n ),\n resolveNewText = function () {};\n function nextTick() {\n var loopStart = /* @__PURE__ */ new Date();\n while (\n (!isAsync || /* @__PURE__ */ new Date() - loopStart < 10) &&\n (fragments = readText(text))\n ) {\n if (fragments[1]) {\n var cacheKey = fragments[1].length ? \"~\" + fragments[1] : \"\";\n if (cache[cacheKey] === void 0) {\n cache[cacheKey] = hyphenateWord(\n fragments[1],\n levelsTable,\n patterns,\n debug,\n hyphenChar\n );\n }\n fragments[1] = cache[cacheKey];\n }\n newText += fragments[0] + fragments[1];\n }\n if (!fragments) {\n done();\n } else {\n setTimeout(nextTick);\n }\n }\n if (isAsync) {\n setTimeout(nextTick);\n return new Promise(function (resolve) {\n resolveNewText = resolve;\n });\n } else {\n nextTick();\n return newText;\n }\n }\n\n var SETTING_DEFAULT_ASYNC = false;\n var SETTING_DEFAULT_DEBUG = false;\n var SETTING_DEFAULT_EXCEPTIONS = [];\n var SETTING_DEFAULT_HTML = true;\n var SETTING_DEFAULT_HYPH_CHAR = \"\\xAD\";\n var SETTING_DEFAULT_MIN_WORD_LENGTH = 5;\n var SETTING_NAME_ASYNC = \"async\";\n var SETTING_NAME_DEBUG = \"debug\";\n var SETTING_NAME_EXCEPTIONS = \"exceptions\";\n var SETTING_NAME_HTML = \"html\";\n var SETTING_NAME_HYPH_CHAR = \"hyphenChar\";\n var SETTING_NAME_MIN_WORD_LENGTH = \"minWordLength\";\n var _global =\n typeof global === \"object\"\n ? global\n : typeof window === \"object\"\n ? window\n : typeof self === \"object\"\n ? self\n : false\n ? void 0\n : {};\n function extend(target, source) {\n target = target || {};\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n }\n function validateArray(value) {\n return value instanceof Array;\n }\n function keyOrDefault(object, key, defaultValue, test) {\n if (key in object && (test ? test(object[key]) : true)) {\n return object[key];\n }\n return defaultValue;\n }\n function exceptionsFromDefinition(excetionsList, hyphenChar) {\n return excetionsList.reduce(function (exceptions, exception) {\n exceptions[\"~\" + exception.replace(/\\-/g, \"\")] = exception.replace(\n /\\-/g,\n hyphenChar\n );\n return exceptions;\n }, {});\n }\n function createHyphenator(patternsDefinition, options) {\n options = options || {};\n var asyncMode = keyOrDefault(\n options,\n SETTING_NAME_ASYNC,\n SETTING_DEFAULT_ASYNC\n ),\n caches = {},\n debug = keyOrDefault(options, SETTING_NAME_DEBUG, SETTING_DEFAULT_DEBUG),\n exceptions = {},\n hyphenChar = keyOrDefault(\n options,\n SETTING_NAME_HYPH_CHAR,\n SETTING_DEFAULT_HYPH_CHAR\n ),\n levelsTable = patternsDefinition[0].split(\",\"),\n patterns = JSON.parse(patternsDefinition[1]),\n minWordLength =\n keyOrDefault(\n options,\n SETTING_NAME_MIN_WORD_LENGTH,\n SETTING_DEFAULT_MIN_WORD_LENGTH\n ) >> 0,\n skipHTML = keyOrDefault(options, SETTING_NAME_HTML, SETTING_DEFAULT_HTML),\n userExceptions = keyOrDefault(\n options,\n SETTING_NAME_EXCEPTIONS,\n SETTING_DEFAULT_EXCEPTIONS,\n validateArray\n );\n var cacheKey = hyphenChar + minWordLength;\n exceptions[cacheKey] = {};\n if (patternsDefinition[2]) {\n exceptions[cacheKey] = exceptionsFromDefinition(\n patternsDefinition[2],\n hyphenChar\n );\n }\n if (userExceptions && userExceptions.length) {\n exceptions[cacheKey] = extend(\n exceptions[cacheKey],\n exceptionsFromDefinition(userExceptions, hyphenChar)\n );\n }\n caches[cacheKey] = extend({}, exceptions[cacheKey]);\n if (asyncMode && !(\"Promise\" in _global)) {\n throw new Error(\n \"Failed to create hyphenator: Could not find global Promise object, needed for hyphenator to work in async mode\"\n );\n }\n return function (text, options2) {\n options2 = options2 || {};\n var localDebug = keyOrDefault(options2, SETTING_NAME_DEBUG, debug),\n localHyphenChar = keyOrDefault(\n options2,\n SETTING_NAME_HYPH_CHAR,\n hyphenChar\n ),\n localMinWordLength =\n keyOrDefault(options2, SETTING_NAME_MIN_WORD_LENGTH, minWordLength) >>\n 0,\n localUserExceptions = keyOrDefault(\n options2,\n SETTING_NAME_EXCEPTIONS,\n SETTING_DEFAULT_EXCEPTIONS,\n validateArray\n ),\n cacheKey2 = localHyphenChar + localMinWordLength;\n if (!exceptions[cacheKey2] && patternsDefinition[2]) {\n exceptions[cacheKey2] = exceptionsFromDefinition(\n patternsDefinition[2],\n localHyphenChar\n );\n caches[cacheKey2] = extend(caches[cacheKey2], exceptions[cacheKey2]);\n }\n if (localUserExceptions && localUserExceptions.length) {\n exceptions[cacheKey2] = extend(\n exceptions[cacheKey2],\n exceptionsFromDefinition(localUserExceptions, localHyphenChar)\n );\n caches[cacheKey2] = extend(caches[cacheKey2], exceptions[cacheKey2]);\n }\n return start(\n text,\n levelsTable,\n patterns,\n caches[cacheKey2],\n localDebug,\n localHyphenChar,\n skipHTML,\n localMinWordLength,\n asyncMode\n );\n };\n }\n\n return createHyphenator;\n});\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.hyphenationPatternsEnUs = factory();\n }\n})(this, function () {\n return [\n \"0004,004,001,003,005,0005,00005,000005,0002,002,0000005,0003,00003,00505,00034,0001,00055,00004,4,05,0055,04,42,03,02,2,404,3,044,01,0505,55,5,045,041,0033,000004,22,00504,5504,0042,1,21,41,402,405,4004,43,23,000054,303,3005,022,5004,000003,252,45,25,2004,000505,054,403,401,3002,0025,144,432,00054,34,12,234,0022,014,0304,012,143,503,0403,101,052,414,212,011,043,00002,0041,0024,05005,03003,00102,0404,04303,01004,0034,025,0044,00404,00025,0103,042,0205,412,104,54,344,433,5005,253,055,0402,3004,0043,204,505,454,0000004,00303,04004,552,201,4005,0255,52,444,14,44,02004,033,05004,00045,00013,0021,0405,00044,0054,50055,000303,00001,304,0204,11,301,232,122,00305,504,000043,0104,00052,000045,50004,0023,00033,00032,00202,5003,202,0401,0000505,214,102,032,000161,004101,00501,00301,0036,0052,00023,006101,006,00401,000521,0014,0063,00012,000501,000006,000604,000601,005001,005005,0010305,00006,003012,003005,0003011,0061,013,000021,000022,000105,00211,00062,00051,000112,006013,000011,0200306,1021,0050001,003003,2102,305,000015,01030005,000035,001011,00021,16330001,0234,030006,5020001,000001,00016,0031,021,21431,002305,0350014,0000012,000063,00101,106,105,00435,00063,0300061,00041,100306,003602,023,0503,0010011,10003,1005,30011,00031,0001001,0000061,0030003,30305,001201,0301,5000101,500101,00015,000401,000065,000016,0000402,0500002,000205,030201,500301,00014,5001,000002,00030011,01034,0300006,030213,00400304,050001,05003,000311,0634,00061,0006,00000604,00050013,00213,0030001,100003,000033,30002,00003632,0003004,050003,0000021,006303,0000006,00005005,30451,03001,00231,00056,00011,6,001001,00500001,03005,503005,0000010001,1002,003001,001065,300001,32011,32,0000003,0213001,0500053,021005,10001,0000011,0001041,0020016,100032,50011,0606,5002,3001,03002,0015001,0102,00003001,000000033,0000001,300101,300015,0101003,00000101,0100501,0101,0010033,00000362,000014,0005001,031\",\n '{\".\":{\"a\":{\"c\":{\"h\":0},\"d\":{\"d\":{\"e\":{\"r\":1}}},\"f\":{\"t\":2},\"l\":{\"t\":3},\"m\":{\"a\":{\"t\":4}},\"n\":{\"c\":4,\"g\":0,\"i\":{\"m\":5},\"t\":[{\"e\":3,\"i\":{\"s\":6}},0]},\"r\":{\"s\":4,\"t\":{\"i\":{\"e\":1},\"y\":1}},\"s\":{\"c\":3,\"p\":2,\"s\":2,\"t\":{\"e\":{\"r\":7}}},\"t\":{\"o\":{\"m\":6}},\"u\":{\"d\":2},\"v\":{\"i\":1},\"w\":{\"n\":0}},\"b\":{\"a\":{\"g\":1,\"n\":{\"a\":4},\"s\":{\"e\":0}},\"e\":{\"r\":[{\"a\":4},0],\"s\":{\"m\":3,\"t\":{\"o\":4}}},\"r\":{\"i\":8},\"u\":{\"t\":{\"t\":{\"i\":0}}}},\"c\":{\"a\":{\"m\":{\"p\":{\"e\":0}},\"n\":{\"c\":5},\"p\":{\"a\":{\"b\":6}},\"r\":{\"o\":{\"l\":5}},\"t\":1},\"e\":{\"l\":{\"a\":1}},\"h\":[{\"i\":{\"l\":{\"l\":{\"i\":7}}}},1],\"i\":[{\"t\":{\"r\":5}},9],\"o\":{\"e\":3,\"r\":[{\"n\":{\"e\":{\"r\":5}}},1],\"n\":{\"g\":{\"r\":5}}}},\"d\":{\"e\":{\"m\":{\"o\":{\"i\":1}},\"o\":3,\"r\":{\"a\":3,\"i\":[{\"v\":{\"a\":4}},3]},\"s\":{\"c\":0}},\"i\":{\"c\":{\"t\":{\"i\":{\"o\":10}}}},\"o\":{\"t\":1},\"u\":{\"c\":1,\"m\":{\"b\":6}},\"r\":{\"i\":{\"v\":67}}},\"e\":{\"a\":{\"r\":{\"t\":{\"h\":7}},\"s\":{\"i\":11}},\"b\":1,\"e\":{\"r\":0},\"g\":9,\"l\":{\"d\":4,\"e\":{\"m\":3}},\"n\":{\"a\":{\"m\":12},\"g\":3,\"s\":3},\"q\":{\"u\":{\"i\":{\"t\":13}}},\"r\":{\"r\":{\"i\":1}},\"s\":3,\"u\":[{\"l\":{\"e\":{\"r\":1}}},3],\"y\":{\"e\":5},\"t\":{\"h\":{\"y\":{\"l\":162}}},\"v\":[{\"e\":{\"r\":{\"s\":{\"i\":{\"b\":158}}}}},9]},\"f\":{\"e\":{\"s\":11},\"o\":{\"r\":{\"m\":{\"e\":{\"r\":5}}}}},\"g\":{\"a\":[{\"s\":{\"o\":{\"m\":163}}},9],\"e\":[{\"n\":{\"t\":14},\"o\":{\"g\":4,\"m\":{\"e\":1},\"t\":164}},9],\"i\":{\"a\":4,\"b\":1},\"o\":{\"r\":1}},\"h\":{\"a\":{\"n\":{\"d\":{\"i\":6},\"k\":5}},\"e\":[{\"r\":{\"o\":{\"i\":6,\"e\":3}},\"s\":11,\"t\":11,\"m\":{\"o\":165},\"p\":{\"a\":166}},9],\"i\":{\"b\":3,\"e\":{\"r\":3}},\"o\":{\"n\":{\"e\":{\"y\":5},\"o\":11},\"v\":5}},\"i\":{\"d\":{\"l\":1,\"o\":{\"l\":12}},\"m\":{\"m\":3,\"p\":{\"i\":{\"n\":4}}},\"n\":[{\"c\":{\"i\":3},\"e\":8,\"k\":9,\"s\":3,\"u\":{\"t\":167}},2],\"r\":{\"r\":4},\"s\":{\"i\":1}},\"j\":{\"u\":{\"r\":3}},\"l\":{\"a\":{\"c\":{\"y\":1},\"m\":1,\"t\":{\"e\":{\"r\":5},\"h\":6}},\"e\":[{\"g\":{\"e\":5},\"n\":0,\"p\":5,\"v\":15,\"i\":{\"c\":{\"e\":{\"s\":170}}}},9],\"i\":{\"g\":[{\"a\":5},1],\"n\":9,\"o\":3,\"t\":1}},\"m\":{\"a\":{\"g\":{\"a\":16},\"l\":{\"o\":5},\"n\":{\"a\":5},\"r\":{\"t\":{\"i\":5}}},\"e\":[{\"r\":{\"c\":11},\"t\":{\"e\":{\"r\":4},\"a\":{\"l\":{\"a\":0}}},\"g\":{\"a\":{\"l\":171}}},9],\"i\":{\"s\":[{\"t\":{\"i\":6},\"e\":{\"r\":{\"s\":173}}},15],\"m\":{\"i\":{\"c\":172}}},\"o\":{\"n\":{\"e\":11},\"r\":{\"o\":3}},\"u\":{\"t\":{\"a\":[{\"b\":6},4]}}},\"n\":{\"i\":{\"c\":1},\"e\":{\"o\":{\"f\":174}},\"o\":{\"e\":{\"t\":{\"h\":15}},\"n\":{\"e\":{\"m\":175}}}},\"o\":{\"d\":[{\"d\":5},9],\"f\":{\"t\":{\"e\":4}},\"r\":{\"a\":{\"t\":{\"o\":4}},\"c\":3,\"d\":2,\"t\":3},\"s\":[{\"t\":{\"l\":1}},3],\"t\":{\"h\":11},\"u\":{\"t\":11}},\"p\":{\"e\":{\"d\":{\"a\":{\"l\":5}},\"t\":{\"e\":4,\"i\":{\"t\":4}}},\"i\":{\"e\":1,\"o\":{\"n\":5},\"t\":9},\"r\":{\"e\":{\"m\":11,\"a\":{\"m\":15}}},\"o\":{\"l\":{\"y\":{\"s\":137}},\"s\":{\"t\":{\"a\":{\"m\":137}}}}},\"r\":{\"a\":{\"c\":1,\"n\":{\"t\":0},\"t\":{\"i\":{\"o\":{\"n\":{\"a\":7}}}},\"v\":{\"e\":{\"n\":{\"o\":176}}}},\"e\":{\"e\":[{\"c\":173},8],\"m\":{\"i\":{\"t\":4}},\"s\":[{\"t\":{\"a\":{\"t\":4}}},8]},\"i\":{\"g\":1,\"t\":{\"u\":5}},\"o\":{\"q\":1,\"s\":{\"t\":5},\"w\":{\"d\":5}},\"u\":{\"d\":1}},\"s\":{\"c\":{\"i\":{\"e\":11}},\"e\":{\"l\":{\"f\":6,\"l\":6},\"n\":9,\"r\":{\"i\":{\"e\":4}},\"m\":{\"i\":[{\"c\":0,\"d\":177,\"p\":36,\"r\":36,\"s\":178,\"v\":36},6]}},\"h\":9,\"i\":[{\"n\":{\"g\":17}},9],\"t\":[{\"a\":{\"b\":{\"l\":5}}},1],\"y\":9,\"p\":{\"h\":{\"i\":{\"n\":179}},\"i\":{\"n\":{\"o\":137}}}},\"t\":{\"a\":[{\"p\":{\"e\":{\"s\":{\"t\":{\"r\":180}}}}},1],\"e\":[{\"n\":{\"a\":{\"n\":5}},\"l\":{\"e\":{\"g\":{\"r\":3}}}},1],\"h\":9,\"i\":[{\"l\":0,\"m\":{\"o\":16},\"n\":{\"g\":17,\"k\":5}},9],\"o\":{\"n\":{\"a\":0},\"p\":[{\"i\":5,\"o\":{\"g\":170}},1],\"u\":{\"s\":5},\"q\":9},\"r\":{\"i\":{\"b\":{\"u\":{\"t\":6}}}}},\"u\":{\"n\":{\"a\":[{\"t\":{\"t\":144}},2],\"c\":{\"e\":3},\"d\":{\"e\":{\"r\":7}},\"e\":[{\"r\":{\"r\":181}},2],\"k\":4,\"o\":4,\"u\":3},\"p\":3,\"r\":{\"e\":11},\"s\":{\"a\":4}},\"v\":{\"e\":{\"n\":{\"d\":{\"e\":0}},\"r\":{\"a\":4}},\"i\":{\"c\":{\"a\":{\"r\":151}}}},\"w\":{\"i\":{\"l\":{\"i\":5}},\"e\":{\"b\":{\"l\":131}}},\"y\":{\"e\":1},\"k\":{\"i\":{\"l\":{\"n\":{\"i\":168}}},\"o\":{\"r\":{\"t\":{\"e\":169}}}}},\"a\":{\"b\":{\".\":18,\"a\":{\"l\":19,\"n\":19},\"e\":[{\"r\":{\"d\":4}},8],\"i\":{\"a\":5,\"t\":{\"a\":{\"b\":13}}},\"l\":{\"a\":{\"t\":4}},\"o\":{\"l\":{\"i\":{\"z\":20,\"c\":19}}},\"r\":[{\"o\":{\"g\":4}},18],\"u\":{\"l\":3}},\"c\":{\"a\":{\"r\":[{\"d\":4,\"o\":4},21],\"b\":{\"l\":24}},\"e\":{\"o\":{\"u\":19},\"r\":2},\"h\":{\"e\":{\"t\":19}},\"i\":[{\"e\":23,\"n\":2,\"o\":23},22],\"r\":{\"o\":{\"b\":4}},\"t\":{\"i\":{\"f\":5}},\"u\":{\"l\":3,\"m\":1}},\"d\":[{\"d\":{\"i\":{\"n\":1}},\"e\":{\"r\":{\".\":4}},\"i\":[{\"a\":23,\"c\":{\"a\":3},\"e\":{\"r\":0},\"o\":23,\"t\":23,\"u\":19},25],\"l\":{\"e\":1},\"o\":{\"w\":3},\"r\":{\"a\":{\"n\":4}},\"s\":{\"u\":1},\"u\":[{\"c\":23,\"m\":4},18]},24],\"e\":{\"r\":[{\"i\":{\"e\":17}},1]},\"f\":[{\"f\":[{\"i\":{\"s\":{\"h\":170}}},0]},24],\"g\":{\"a\":{\"b\":21,\"n\":0},\"e\":{\"l\":{\"l\":4},\"o\":0,\"u\":18},\"i\":2,\"l\":26,\"n\":2,\"o\":[{\"g\":27,\"n\":{\"i\":3}},24],\"u\":{\"e\":{\"r\":19},\"l\":4},\"y\":21},\"h\":{\"a\":23,\"e\":23,\"l\":1,\"o\":23},\"i\":[{\"a\":19,\"c\":{\".\":23},\"l\":{\"y\":4},\"n\":[{\"i\":{\"n\":5},\"o\":5},28],\"t\":{\"e\":{\"n\":5}}},9],\"j\":29,\"k\":{\"e\":{\"n\":2}},\"l\":{\"a\":{\"b\":4,\"d\":3,\"r\":21},\"d\":{\"i\":18},\"e\":[{\"n\":{\"d\":3,\"t\":{\"i\":21}},\"o\":30},25],\"i\":[{\"a\":{\".\":1},\"e\":0},2],\"l\":{\"e\":{\"v\":4},\"i\":{\"c\":18}},\"m\":18,\"o\":{\"g\":{\".\":19}},\"y\":{\".\":21,\"s\":[{\"t\":31},18],\"t\":32,\"z\":27}},\"m\":{\"a\":[{\"b\":4,\"g\":3,\"r\":{\"a\":5},\"s\":{\"c\":4},\"t\":{\"i\":{\"s\":21},\"o\":33}},18],\"e\":{\"r\":{\"a\":4},\"n\":{\"t\":{\"a\":{\"b\":182}}}},\"i\":{\"c\":3,\"f\":4,\"l\":{\"y\":4},\"n\":[{\"o\":0},2]},\"o\":[{\"n\":19,\"r\":{\"i\":6}},24],\"p\":{\"e\":{\"n\":5}}},\"n\":[{\"a\":{\"g\":{\"e\":3},\"l\":{\"y\":[{\"s\":183},27]},\"r\":[{\"c\":3,\"i\":17},23],\"t\":{\"i\":23}},\"d\":[{\"e\":{\"s\":17},\"i\":{\"s\":3},\"l\":2,\"o\":{\"w\":1}},18],\"e\":{\"e\":19,\"n\":23,\"s\":{\"t\":{\".\":4}},\"u\":23},\"g\":[{\"i\":{\"e\":5},\"l\":2},25],\"i\":{\"c\":34,\"e\":{\"s\":23},\"f\":35,\"m\":{\"e\":1,\"i\":19},\"n\":{\"e\":19},\"o\":3,\"p\":23,\"s\":{\"h\":3},\"t\":3,\"u\":23},\"k\":{\"l\":{\"i\":1}},\"n\":{\"i\":{\"z\":32}},\"o\":[{\"t\":[{\"h\":7},4],\"a\":{\"c\":148}},0],\"s\":{\"a\":9,\"c\":{\"o\":1},\"n\":1,\"p\":[{\"o\":11},9],\"t\":1,\"u\":{\"r\":1},\"g\":{\"r\":5},\"v\":11},\"t\":{\"a\":{\"l\":36},\"i\":{\"e\":1,\"d\":137,\"n\":184,\"r\":{\"e\":137}},\"o\":18,\"r\":9,\"w\":1},\"u\":{\"a\":3,\"l\":3,\"r\":19}},24],\"o\":18,\"p\":{\"a\":{\"r\":17,\"t\":4},\"e\":{\"r\":{\"o\":4},\"a\":{\"b\":{\"l\":{\"e\":132}}}},\"h\":{\"e\":{\"r\":23},\"i\":18},\"i\":{\"l\":{\"l\":{\"a\":[{\"r\":4},21]}},\"n\":3,\"t\":{\"a\":3,\"u\":23}},\"l\":24,\"o\":{\"c\":6,\"l\":{\"a\":4},\"r\":{\"i\":6},\"s\":{\"t\":12}},\"s\":{\"e\":{\"s\":5}},\"u\":23},\"q\":{\"u\":{\"e\":6}},\"r\":[{\"a\":{\"c\":{\"t\":3},\"d\":{\"e\":19,\"i\":{\"s\":4}},\"l\":3,\"m\":{\"e\":{\"t\":{\"e\":19}}},\"n\":{\"g\":17},\"p\":11,\"t\":[{\"i\":{\"o\":19,\"v\":4}},1],\"u\":19,\"v\":38,\"w\":17},\"b\":{\"a\":{\"l\":36}},\"c\":{\"h\":{\"a\":{\"n\":1},\"e\":{\"t\":185}}},\"d\":{\"i\":{\"n\":{\"e\":4}},\"r\":1},\"e\":{\"a\":{\"s\":4},\"e\":23,\"n\":{\"t\":3},\"s\":{\"s\":19}},\"f\":{\"i\":1,\"l\":1},\"i\":[{\"a\":{\"l\":4,\"n\":3},\"e\":{\"t\":23},\"m\":1,\"n\":{\"a\":{\"t\":4}},\"o\":3,\"z\":9},2],\"m\":{\"i\":9},\"o\":{\"d\":20,\"n\":{\"i\":19},\"o\":23},\"p\":9,\"q\":3,\"r\":{\"e\":17,\"a\":{\"n\":{\"g\":{\"e\":9}}}},\"s\":{\"a\":1,\"h\":9}},37],\"s\":{\".\":18,\"a\":{\"b\":1,\"n\":{\"t\":3}},\"h\":{\"i\":17},\"i\":{\"a\":{\".\":19},\"b\":23,\"c\":23,\"t\":39},\"k\":{\"i\":11},\"l\":1,\"o\":{\"c\":21},\"p\":{\"h\":4},\"s\":{\"h\":1},\"t\":{\"e\":{\"n\":3},\"r\":2},\"u\":{\"r\":{\"a\":6}},\"y\":{\"m\":{\"p\":{\"t\":{\"o\":{\"t\":4}}}}}},\"t\":{\"a\":[{\"b\":{\"l\":3},\"c\":4,\"l\":{\"o\":3},\"p\":4},24],\"e\":{\"c\":[{\"h\":4},5],\"g\":{\"o\":3},\"n\":{\".\":3},\"r\":{\"a\":3,\"n\":[{\"a\":19},6]},\"s\":{\"t\":3},\"v\":4},\"h\":[{\"e\":{\"m\":5,\"n\":19,\"r\":{\"o\":{\"s\":186}}},\"o\":[{\"m\":5},1]},18],\"i\":{\".\":18,\"a\":19,\"b\":20,\"c\":2,\"f\":3,\"o\":{\"n\":{\"a\":{\"r\":7}}},\"t\":{\"u\":3}},\"o\":{\"g\":21,\"m\":[{\"i\":{\"z\":4}},24],\"p\":21,\"s\":21},\"r\":[{\"o\":{\"p\":4}},29],\"s\":{\"k\":1},\"t\":{\"a\":{\"g\":1},\"e\":[{\"s\":{\".\":170}},4],\"h\":1},\"u\":[{\"a\":4,\"e\":4,\"l\":3,\"r\":{\"a\":3}},24],\"y\":24},\"u\":{\"b\":1,\"g\":{\"h\":[{\"t\":{\"l\":17}},12],\"u\":3},\"l\":[{\"i\":{\"f\":13}},40],\"n\":{\"d\":5},\"r\":3,\"s\":{\"i\":{\"b\":4}},\"t\":{\"e\":{\"n\":5},\"h\":2}},\"v\":{\"a\":[{\"g\":3,\"n\":19},24],\"e\":{\"n\":{\"o\":0},\"r\":{\"a\":3,\"n\":4,\"y\":4}},\"i\":[{\"e\":{\"r\":0},\"g\":3,\"o\":{\"u\":3}},2],\"o\":{\"c\":4,\"r\":29}},\"w\":{\"a\":{\"y\":27},\"i\":3,\"l\":{\"y\":1},\"s\":0},\"x\":{\"i\":{\"c\":1,\"d\":1}},\"y\":{\"a\":{\"l\":4},\"e\":0,\"s\":0},\"z\":{\"i\":{\"e\":{\"r\":0}},\"z\":{\"i\":5}}},\"b\":{\"a\":{\".\":32,\"d\":{\"g\":{\"e\":{\"r\":5}}},\"g\":{\"e\":1},\"l\":{\"a\":15},\"n\":{\"d\":{\"a\":{\"g\":5}},\"e\":0,\"i\":11},\"r\":{\"b\":{\"i\":7},\"i\":{\"a\":17},\"o\":{\"n\":{\"i\":{\"e\":187}}}},\"s\":{\"s\":{\"i\":0}},\"t\":[{\"h\":{\"y\":2}},41],\"z\":1,\"c\":{\"k\":{\"e\":{\"r\":{\".\":84}}}}},\"b\":[{\"e\":[{\"r\":23},24],\"i\":{\"n\":{\"a\":0},\"t\":0}},42],\"d\":43,\"e\":{\".\":18,\"a\":{\"k\":17,\"t\":12},\"d\":[{\"a\":3,\"e\":3,\"i\":3},44],\"g\":{\"i\":3,\"u\":4},\"l\":[{\"i\":2,\"o\":3},41],\"m\":45,\"n\":{\"i\":{\"g\":4},\"u\":4},\"s\":[{\"p\":3,\"t\":{\"r\":4}},46],\"t\":[{\"i\":{\"z\":5},\"r\":4,\"w\":3},27],\"w\":3,\"y\":{\"o\":4},\"v\":{\"i\":{\"e\":9}}},\"f\":25,\"h\":47,\"i\":{\"b\":9,\"d\":[{\"i\":{\"f\":167}},1],\"e\":[{\"n\":4,\"r\":1},27],\"f\":48,\"l\":[{\"i\":{\"z\":3},\"l\":{\"a\":{\"b\":8}}},41],\"n\":{\"a\":{\"r\":49},\"d\":0,\"e\":{\"t\":4}},\"o\":{\"g\":{\"r\":3},\"u\":4,\"m\":5,\"r\":{\"b\":2,\"h\":15}},\"t\":[{\"i\":{\"o\":50,\"v\":{\"e\":188}},\"r\":3,\"u\":{\"a\":51},\"z\":19},9]},\"j\":29,\"k\":1,\"l\":[{\"a\":{\"t\":{\"h\":7},\"n\":{\"d\":189}},\"e\":{\".\":21,\"n\":17,\"s\":{\"p\":32}},\"i\":{\"s\":23,\"n\":{\"d\":189}},\"o\":[{\"n\":{\"d\":190}},21],\"u\":{\"n\":{\"t\":17}}},52],\"m\":43,\"n\":[{\"e\":{\"g\":5}},47],\"o\":{\"d\":[{\"i\":11},27],\"e\":1,\"l\":{\"i\":{\"c\":11}},\"m\":{\"b\":{\"i\":0}},\"n\":{\"a\":[{\"t\":5},0]},\"o\":27,\"r\":{\".\":32,\"a\":43,\"d\":5,\"e\":32,\"i\":32,\"n\":{\"o\":191}},\"s\":53,\"t\":{\"a\":19,\"h\":6,\"o\":1,\"u\":{\"l\":192}},\"u\":{\"n\":{\"d\":54}}},\"p\":18,\"r\":{\"i\":{\"t\":18},\"o\":{\"t\":{\"h\":54}},\"u\":{\"s\":{\"q\":17}}},\"s\":[{\"o\":{\"r\":17}},55],\"t\":[{\"l\":1,\"o\":21,\"r\":23},25],\"u\":{\"f\":{\"f\":{\"e\":{\"r\":0}}},\"g\":{\"a\":1},\"l\":{\"i\":3},\"m\":{\"i\":17},\"n\":[{\"t\":{\"i\":17}},1],\"r\":{\"e\":3},\"s\":{\"i\":{\"e\":[{\"r\":193,\"s\":193},5]},\"s\":{\"e\":17,\"i\":{\"n\":{\"g\":17}}},\"t\":32},\"t\":{\"a\":18,\"i\":{\"o\":27},\"o\":19,\"e\":{\"d\":{\".\":8}},\"t\":{\"e\":{\"d\":0}}}},\"v\":29,\"w\":56,\"y\":{\".\":32,\"s\":0}},\"c\":{\"a\":[{\"b\":{\"i\":{\"n\":11},\"l\":2},\"c\":{\"h\":17},\"d\":{\"e\":{\"n\":4,\"m\":194}},\"g\":46,\"h\":57,\"l\":{\"a\":{\"t\":3},\"l\":{\"a\":0,\"i\":{\"n\":6}},\"o\":18},\"n\":{\"d\":5,\"e\":0,\"i\":{\"c\":0,\"s\":5,\"z\":11},\"t\":{\"y\":0},\"y\":17},\"p\":{\"e\":{\"r\":4}},\"r\":{\"o\":{\"m\":5}},\"s\":{\"t\":{\"e\":{\"r\":6},\"i\":{\"g\":5}},\"y\":18},\"t\":{\"h\":1,\"i\":{\"v\":18},\"a\":{\"s\":195}},\"v\":{\"a\":{\"l\":5}}},41],\"c\":[{\"h\":{\"a\":6},\"i\":{\"a\":0},\"o\":{\"m\":{\"p\":{\"a\":10}},\"n\":17,\"u\":{\"t\":12}}},23],\"e\":{\".\":25,\"d\":{\".\":18,\"e\":{\"n\":18}},\"i\":27,\"l\":{\".\":32,\"l\":27},\"n\":[{\"c\":27,\"e\":58,\"i\":18,\"t\":27},41],\"p\":27,\"r\":{\"a\":{\"m\":4}},\"s\":{\"a\":18,\"s\":{\"i\":[{\"b\":59},27]},\"t\":5},\"t\":[{\"a\":60},0],\"w\":0},\"h\":[{\".\":18,\"a\":{\"b\":61,\"n\":{\"i\":{\"c\":32,\"s\":20}}},\"e\":[{\"a\":{\"p\":54},\"d\":18,\"l\":{\"o\":5},\"m\":{\"i\":27},\"n\":{\"e\":4},\"r\":{\".\":3,\"s\":3}},8],\"i\":{\"n\":[{\"e\":{\".\":32,\"s\":{\"s\":4}},\"i\":32},62],\"o\":32,\"t\":27,\"z\":8,\"e\":{\"v\":{\"o\":6}}},\"o\":63,\"t\":{\"i\":1},\"s\":{\".\":18,\"h\":{\"u\":11}}},25],\"i\":[{\"a\":[{\"b\":64,\"r\":5},27],\"c\":4,\"e\":{\"r\":18},\"f\":{\"i\":{\"c\":{\".\":32}}},\"i\":18,\"l\":{\"a\":1,\"i\":27},\"m\":25,\"n\":[{\"a\":[{\"t\":27},21],\"e\":{\"m\":11},\"g\":[{\".\":19},29],\"o\":32,\"q\":8},25],\"o\":{\"n\":17},\"p\":{\"e\":18,\"h\":3,\"i\":{\"c\":18}},\"s\":{\"t\":{\"a\":18,\"i\":18}},\"t\":[{\"i\":{\"z\":11}},42],\"z\":32,\"g\":{\"a\":{\"r\":152}}},41],\"k\":[{\"i\":3},2],\"l\":[{\"a\":{\"r\":[{\"a\":{\"t\":{\"i\":{\"o\":19}}},\"e\":32},18]},\"e\":{\"m\":0,\"a\":{\"r\":0}},\"i\":{\"c\":18,\"m\":17},\"y\":0},65],\"n\":19,\"o\":[{\"a\":{\"g\":4},\"e\":8,\"g\":[{\"r\":1},25],\"i\":[{\"n\":{\"c\":3}},0],\"l\":{\"i\":5,\"o\":[{\"r\":11},32]},\"m\":{\"e\":{\"r\":5}},\"n\":{\"a\":0,\"e\":21,\"g\":11,\"t\":5},\"p\":{\"a\":3,\"i\":{\"c\":11},\"l\":1,\"h\":{\"o\":{\"n\":196}}},\"r\":{\"b\":18,\"o\":{\"n\":12}},\"s\":{\"e\":0},\"v\":[{\"e\":17},15],\"w\":{\"a\":5},\"z\":{\"e\":5,\"i\":4},\"u\":{\"s\":{\"t\":{\"i\":84}}}},41],\"q\":29,\"r\":{\"a\":{\"s\":{\"t\":6},\"t\":{\".\":32,\"i\":{\"c\":32}}},\"e\":{\"a\":{\"t\":11},\"d\":32,\"t\":{\"a\":47},\"v\":0},\"i\":[{\"f\":5,\"n\":21,\"s\":17,\"t\":{\"i\":[{\"e\":11},32]}},8],\"o\":{\"p\":{\"l\":0,\"o\":6},\"s\":{\"e\":17},\"c\":{\"o\":{\"d\":197}},\"e\":{\"c\":{\"o\":148}}},\"u\":{\"d\":0}},\"s\":66,\"t\":[{\"a\":{\"b\":0,\"n\":{\"g\":4,\"t\":19}},\"e\":[{\"r\":23},24],\"i\":{\"c\":{\"u\":21},\"m\":{\"i\":12}},\"u\":{\"r\":0},\"w\":21,\"r\":{\"o\":{\"m\":{\"e\":{\"c\":198}}}}},42],\"u\":{\"d\":5,\"f\":21,\"i\":[{\"t\":{\"y\":4}},21],\"l\":{\"i\":32,\"t\":{\"i\":{\"s\":0},\"u\":27}},\"m\":{\"a\":9,\"e\":23,\"i\":1},\"n\":27,\"p\":{\"i\":3,\"y\":4},\"r\":{\"a\":{\"b\":67,\"n\":{\"c\":{\"e\":199}}},\"i\":{\"a\":4}},\"s\":[{\"s\":{\"i\":17}},41],\"t\":[{\"i\":{\"e\":1,\"v\":56},\"r\":18},68]},\"y\":41,\"z\":{\"e\":0}},\"d\":{\"a\":[{\".\":32,\"b\":70,\"c\":{\"h\":17},\"f\":18,\"g\":25,\"m\":71,\"n\":{\"g\":11},\"r\":{\"d\":6,\"k\":6,\"y\":18},\"t\":[{\"i\":{\"v\":18},\"o\":18,\"a\":{\"b\":137}},27],\"v\":[{\"e\":5},53],\"y\":32,\"l\":{\"o\":{\"n\":{\"e\":48}}}},69],\"b\":29,\"c\":19,\"d\":[{\"a\":{\"b\":20},\"i\":{\"b\":94}},72],\"e\":{\".\":25,\"a\":{\"f\":6,\"l\":{\"s\":{\".\":1}}},\"b\":{\"i\":{\"t\":5},\"o\":{\"n\":1}},\"c\":{\"a\":{\"n\":36},\"i\":{\"l\":1},\"o\":{\"m\":4},\"l\":{\"a\":{\"r\":200},\"i\":{\"n\":{\"a\":64}}}},\"d\":42,\"e\":{\".\":18},\"i\":{\"f\":4},\"l\":{\"i\":{\"e\":17,\"q\":16},\"o\":4},\"m\":[{\".\":32,\"i\":{\"c\":[{\".\":5},27],\"l\":4},\"o\":{\"n\":{\"s\":1},\"r\":7,\"s\":9}},21],\"n\":[{\"a\":{\"r\":1},\"o\":3,\"t\":{\"i\":{\"f\":7}},\"u\":3},41],\"p\":[{\"a\":3,\"i\":17,\"u\":9},2],\"q\":23,\"r\":{\"h\":21,\"m\":32,\"n\":{\"i\":{\"z\":6}},\"s\":5},\"s\":[{\".\":24,\"c\":2,\"o\":64,\"t\":{\"i\":11,\"r\":3},\"u\":1,\"i\":{\"c\":11}},8],\"t\":[{\"o\":9,\"i\":{\"c\":9}},2],\"v\":[{\"i\":{\"l\":11}},2],\"y\":18,\"f\":{\"i\":{\"n\":{\"i\":{\"t\":{\"i\":201}}}}}},\"f\":43,\"g\":{\"a\":21,\"e\":{\"t\":73},\"i\":2,\"y\":24},\"h\":74,\"i\":{\".\":32,\"a\":[{\"b\":5},75],\"c\":{\"a\":{\"m\":1,\"i\":{\"d\":15}},\"e\":21,\"t\":27},\"d\":27,\"e\":{\"n\":76},\"f\":[{\"f\":{\"r\":{\"a\":5}}},29],\"g\":{\"e\":3},\"l\":{\"a\":{\"t\":{\"o\":1}}},\"n\":[{\"a\":41,\"e\":{\".\":27},\"i\":[{\"z\":4},32]},29],\"o\":[{\"g\":5},41],\"p\":{\"l\":1},\"r\":[{\"e\":[{\"n\":9,\"r\":9},2],\"t\":{\"i\":6}},8],\"s\":[{\"i\":32,\"t\":77},15],\"t\":{\"i\":24},\"v\":78,\"m\":{\"e\":{\"t\":{\"h\":{\"y\":141}}}}},\"j\":29,\"k\":79,\"l\":{\"a\":56,\"e\":{\".\":27,\"d\":27,\"s\":{\".\":27,\"s\":18},\"a\":{\"d\":42}},\"o\":48,\"u\":56,\"y\":25,\"i\":{\"e\":202}},\"m\":29,\"n\":80,\"o\":[{\".\":27,\"d\":{\"e\":4},\"e\":32,\"f\":57,\"g\":21,\"l\":{\"a\":1,\"i\":17,\"o\":{\"r\":4}},\"m\":{\"i\":{\"z\":5}},\"n\":{\"a\":{\"t\":3},\"i\":17},\"o\":{\"d\":11},\"p\":{\"p\":0},\"r\":21,\"s\":27,\"u\":{\"t\":56},\"v\":1,\"x\":27,\"w\":{\"o\":{\"r\":{\"d\":203}}}},41],\"p\":29,\"r\":[{\"a\":{\"g\":{\"o\":{\"n\":6}},\"i\":18},\"e\":[{\"a\":{\"r\":6},\"n\":[{\"a\":{\"l\":204}},32]},0],\"i\":{\"b\":0,\"l\":17,\"f\":{\"t\":{\"a\":189}},\"p\":{\"l\":{\"e\":{\"g\":205}}}},\"o\":{\"p\":0,\"w\":18,\"m\":{\"e\":{\"d\":206}}},\"u\":{\"p\":{\"l\":{\"i\":32}}},\"y\":18},41],\"s\":[{\"p\":1,\"w\":21,\"y\":21},81],\"t\":{\"h\":24,\"a\":{\"b\":23}},\"u\":[{\"a\":[{\"l\":{\".\":9}},82],\"c\":[{\"a\":29,\"e\":{\"r\":5},\"t\":{\".\":18,\"s\":18}},9],\"e\":{\"l\":4},\"g\":1,\"l\":{\"e\":23},\"m\":{\"b\":{\"e\":0}},\"n\":1,\"p\":[{\"e\":1},18],\"o\":{\"p\":{\"o\":{\"l\":207}}}},41],\"v\":29,\"w\":29,\"y\":[{\"n\":32,\"s\":{\"e\":1,\"p\":5}},24]},\"e\":{\"a\":{\"b\":72,\"c\":{\"t\":23},\"d\":[{\"i\":{\"e\":5}},15],\"g\":{\"e\":[{\"r\":4},1]},\"l\":[{\"e\":{\"r\":5},\"o\":{\"u\":11}},1],\"m\":{\"e\":{\"r\":11}},\"n\":{\"d\":19,\"i\":{\"e\":{\"s\":111}}},\"r\":{\"a\":11,\"c\":0,\"e\":{\"s\":5},\"i\":{\"c\":0,\"l\":0},\"k\":5,\"t\":[{\"e\":12},8]},\"s\":{\"p\":4,\"s\":23,\"t\":12},\"t\":[{\"e\":{\"n\":5},\"h\":{\"i\":12},\"i\":{\"f\":19},\"u\":83},9],\"v\":[{\"e\":{\"n\":11},\"i\":5,\"o\":5},9]},\"b\":[{\"e\":{\"l\":{\".\":21,\"s\":21},\"n\":21},\"i\":{\"t\":21},\"r\":23},42],\"c\":{\"a\":{\"d\":21,\"n\":{\"c\":6}},\"c\":{\"a\":6},\"e\":[{\"s\":{\"s\":{\"a\":4}}},29],\"i\":[{\"b\":21,\"f\":{\"i\":{\"c\":{\"a\":{\"t\":4}},\"e\":4},\"y\":4},\"m\":3,\"t\":[{\"e\":19},0]},9],\"l\":{\"a\":{\"m\":21},\"u\":{\"s\":21}},\"o\":{\"l\":24,\"m\":{\"m\":21,\"p\":{\"e\":21}},\"n\":{\"c\":21},\"r\":[{\"a\":3,\"o\":5},24]},\"r\":[{\"e\":{\"m\":21}},29],\"t\":{\"a\":{\"n\":1},\"e\":1},\"u\":[{\"l\":[{\"a\":3},21]},29],\"h\":{\"a\":{\"s\":23}}},\"d\":{\"a\":37,\"d\":61,\"e\":{\"r\":34,\"s\":0},\"i\":[{\"a\":23,\"b\":3,\"c\":{\"a\":3},\"m\":3,\"t\":2,\"z\":5},18],\"o\":[{\"l\":21,\"n\":84},18],\"r\":{\"i\":21},\"u\":{\"l\":[{\"o\":4,\"i\":{\"n\":{\"g\":2}}},21]},\"g\":{\"l\":15}},\"e\":{\"c\":9,\"d\":{\"i\":11},\"f\":9,\"l\":{\"i\":11,\"y\":1},\"m\":9,\"n\":{\"a\":1},\"p\":85,\"s\":[{\"t\":17},86],\"t\":{\"y\":1},\"x\":19},\"f\":[{\"e\":{\"r\":{\"e\":83}},\"f\":41,\"i\":{\"c\":[{\"i\":32},21],\"l\":17,\"n\":{\"e\":23,\"i\":{\"t\":{\"e\":20}}},\"t\":27},\"o\":{\"r\":{\"e\":{\"s\":6}}},\"u\":{\"s\":{\"e\":{\".\":21}}}},29],\"g\":{\"a\":{\"l\":18},\"e\":{\"r\":17},\"i\":{\"b\":4,\"c\":1,\"n\":{\"g\":4},\"t\":87},\"n\":4,\"o\":{\".\":21,\"s\":21},\"u\":{\"l\":2,\"r\":19},\"y\":32},\"h\":[{\"e\":{\"r\":17}},72],\"i\":[{\"c\":19,\"d\":4,\"g\":[{\"l\":4},8],\"m\":{\"b\":23},\"n\":{\"f\":23,\"g\":29,\"s\":{\"t\":19}},\"r\":{\"d\":0},\"t\":{\"e\":11,\"h\":3,\"y\":19}},9],\"j\":[{\"u\":{\"d\":[{\"i\":4},21]}},29],\"k\":{\"i\":{\"n\":0},\"l\":{\"a\":1}},\"l\":{\"a\":[{\".\":21,\"c\":21,\"n\":{\"d\":17},\"t\":{\"i\":{\"v\":4}},\"w\":21,\"x\":{\"a\":36}},29],\"e\":{\"a\":23,\"b\":{\"r\":{\"a\":4}},\"c\":32,\"d\":21,\"g\":{\"a\":3},\"n\":19,\"r\":34,\"s\":29},\"f\":9,\"i\":[{\"b\":{\"e\":23},\"c\":{\".\":33,\"a\":3},\"e\":{\"r\":23},\"g\":{\"i\":{\"b\":4}},\"m\":19,\"n\":{\"g\":83},\"o\":23,\"s\":[{\"h\":4},24],\"v\":88,\"t\":{\"i\":{\"s\":208}}},9],\"l\":{\"a\":[{\"b\":1},18],\"o\":17},\"o\":{\"c\":19,\"g\":4,\"p\":{\".\":3},\"a\":29},\"s\":{\"h\":9},\"t\":{\"a\":1},\"u\":{\"d\":19,\"g\":4}},\"m\":{\"a\":{\"c\":21,\"g\":21,\"n\":[{\"a\":4},19]},\"b\":4,\"e\":[{\"l\":24,\"t\":21},29],\"i\":{\"c\":{\"a\":3},\"e\":0,\"g\":{\"r\":{\"a\":4}},\"n\":[{\"e\":4,\"i\":35},89],\"s\":[{\"h\":4,\"s\":19},21],\"z\":3},\"n\":{\"i\":{\"z\":32}},\"o\":{\"g\":0,\"n\":{\"i\":{\"o\":7}}},\"p\":{\"i\":3},\"u\":{\"l\":[{\"a\":4},21],\"n\":11},\"y\":23},\"n\":{\"a\":{\"m\":{\"o\":4},\"n\":{\"t\":21}},\"c\":{\"h\":{\"e\":{\"r\":17}}},\"d\":{\"i\":{\"c\":3,\"x\":2}},\"e\":{\"a\":19,\"e\":19,\"m\":3,\"r\":{\"o\":4},\"s\":{\"i\":4,\"t\":4},\"t\":{\"r\":3},\"w\":23},\"i\":{\"c\":{\"s\":4},\"e\":19,\"l\":19,\"o\":23,\"s\":{\"h\":3},\"t\":3,\"u\":19,\"z\":32},\"n\":18,\"o\":[{\"g\":0,\"s\":21,\"v\":3},18],\"s\":{\"w\":1},\"t\":{\"a\":{\"g\":{\"e\":5}},\"h\":{\"e\":{\"s\":18}}},\"u\":{\"a\":3,\"f\":4},\"y\":{\".\":23},\"z\":61},\"o\":{\"f\":19,\"g\":[{\"r\":{\"a\":{\"p\":3}}},9],\"i\":90,\"l\":23,\"p\":{\"a\":{\"r\":11}},\"r\":[{\"e\":3,\"o\":{\"l\":4}},29],\"s\":0,\"t\":[{\"o\":1},21],\"u\":{\"t\":19},\"w\":19},\"p\":{\"a\":[{\"i\":23,\"n\":{\"c\":4}},24],\"e\":{\"l\":19,\"n\":{\"t\":23},\"t\":{\"i\":{\"t\":{\"i\":{\"o\":4}}}}},\"h\":{\"e\":17},\"l\":{\"i\":21},\"o\":29,\"r\":{\"e\":{\"c\":[{\"a\":4},21],\"d\":21,\"h\":3},\"o\":[{\"b\":21},23]},\"s\":{\"h\":1},\"t\":{\"i\":{\"b\":13}},\"u\":{\"t\":[{\"a\":4},21]},\"i\":{\"n\":{\"e\":{\"p\":{\"h\":209}}}}},\"q\":[{\"u\":{\"i\":{\"l\":12,\"s\":91}}},29],\"r\":{\"a\":[{\"b\":0,\"n\":{\"d\":18},\"r\":3,\"t\":{\"i\":{\".\":18}}},2],\"b\":[{\"l\":1},25],\"c\":{\"h\":[{\"e\":1},3]},\"e\":{\".\":25,\"a\":{\"l\":23},\"c\":{\"o\":5},\"i\":{\"n\":11},\"l\":{\".\":4},\"m\":{\"o\":3},\"n\":{\"a\":4,\"c\":{\"e\":4},\"e\":18,\"t\":3},\"q\":0,\"s\":{\"s\":4,\"t\":3},\"t\":17},\"h\":2,\"i\":[{\"a\":[{\"n\":{\".\":210}},92],\"c\":{\"k\":32},\"e\":{\"n\":23,\"r\":0},\"n\":{\"e\":3},\"o\":29,\"t\":18,\"u\":1,\"v\":[{\"a\":21},0]},2],\"m\":93,\"n\":{\"i\":{\"s\":1,\"t\":18,\"z\":32},\"o\":3},\"o\":[{\"b\":4,\"c\":19,\"r\":0,\"u\":2},25],\"s\":[{\"e\":{\"t\":3}},2],\"t\":{\"e\":{\"r\":11},\"l\":18,\"w\":3},\"u\":[{\"t\":0},18],\"w\":{\"a\":{\"u\":32}}},\"s\":{\"a\":[{\"g\":{\"e\":{\".\":21,\"s\":21}}},72],\"c\":[{\"a\":[{\"n\":4},24],\"r\":23,\"u\":4},9],\"e\":[{\"c\":[{\"r\":4},24],\"n\":{\"c\":4},\"r\":{\"t\":{\".\":21,\"s\":21},\"v\":{\"a\":21}}},74],\"h\":[{\"a\":23,\"e\":{\"n\":5}},18],\"i\":[{\"c\":24,\"d\":[{\"e\":{\"n\":4}},24],\"g\":{\"n\":{\"a\":4}},\"m\":94,\"n\":95,\"s\":{\"t\":{\"e\":17}},\"u\":0},29],\"k\":{\"i\":{\"n\":19}},\"m\":{\"i\":1},\"o\":{\"l\":[{\"u\":3},24],\"n\":[{\"a\":4},24]},\"p\":[{\"e\":{\"r\":3},\"i\":{\"r\":{\"a\":4}},\"r\":{\"e\":1},\"a\":{\"c\":{\"i\":211}}},29],\"s\":[{\"i\":{\"b\":96}},25],\"t\":{\"a\":{\"n\":36},\"i\":{\"g\":3,\"m\":4},\"o\":[{\"n\":23},44],\"r\":[{\"o\":19,\"u\":{\"c\":10}},25]},\"u\":{\"r\":[{\"r\":4},24]},\"w\":1},\"t\":{\"a\":{\"b\":0},\"e\":{\"n\":{\"d\":17},\"o\":23},\"h\":{\"o\":{\"d\":54},\"y\":{\"l\":{\"e\":{\"n\":{\"e\":162}}}}},\"i\":{\"c\":2,\"d\":{\"e\":19},\"n\":[{\"o\":0},17],\"r\":19,\"t\":{\"i\":{\"o\":19,\"v\":4}}},\"n\":18,\"o\":{\"n\":{\"a\":4}},\"r\":{\"a\":23,\"e\":23,\"i\":{\"c\":3,\"f\":4},\"o\":{\"g\":3,\"s\":4}},\"u\":{\"a\":3},\"y\":{\"m\":4},\"z\":4},\"u\":[{\"n\":19,\"p\":23,\"r\":{\"o\":3},\"s\":0,\"t\":{\"e\":17,\"i\":{\"l\":6},\"r\":4},\"c\":{\"l\":{\"i\":{\"d\":212}}}},18],\"v\":{\"a\":{\"p\":97,\"s\":[{\"t\":4},24]},\"e\":{\"a\":19,\"l\":{\"l\":3,\"o\":12},\"n\":{\"g\":19,\"i\":17},\"r\":[{\"b\":19},2]},\"i\":[{\"d\":3,\"l\":0,\"n\":21,\"v\":0},29],\"o\":{\"c\":19},\"u\":19},\"w\":{\"a\":[{\"g\":21},29],\"e\":{\"e\":19},\"h\":23,\"i\":{\"l\":6,\"n\":{\"g\":3},\"t\":23}},\"x\":{\"p\":41},\"y\":{\"c\":32,\"e\":{\".\":32},\"s\":0}},\"f\":{\"a\":[{\"b\":{\"l\":3,\"r\":11},\"c\":{\"e\":1},\"g\":18,\"i\":{\"n\":17},\"l\":{\"l\":{\"e\":6}},\"m\":{\"a\":26,\"i\":{\"s\":5}},\"r\":[{\"t\":{\"h\":5}},32],\"t\":{\"a\":3,\"h\":{\"e\":3},\"o\":18},\"u\":{\"l\":{\"t\":7}}},41],\"b\":56,\"d\":18,\"e\":{\".\":18,\"a\":{\"s\":17,\"t\":{\"h\":54}},\"b\":[{\"r\":{\"u\":{\"a\":15}}},1],\"c\":{\"a\":18,\"t\":32},\"d\":25,\"l\":{\"i\":3},\"m\":{\"o\":1},\"n\":{\"d\":[{\"e\":6},8]},\"r\":[{\"r\":32,\"m\":{\"i\":{\"o\":213}}},15],\"v\":0},\"f\":[{\"e\":{\"s\":21},\"i\":{\"e\":21,\"n\":{\".\":19},\"s\":94},\"l\":{\"y\":21},\"y\":24},43],\"h\":18,\"i\":[{\"a\":3,\"c\":{\".\":48,\"a\":{\"l\":47,\"n\":23,\"t\":{\"e\":18}},\"e\":{\"n\":23,\"r\":3},\"i\":[{\"a\":32,\"e\":32},0],\"s\":18,\"u\":3,\"h\":27},\"d\":{\"e\":{\"l\":4}},\"g\":{\"h\":{\"t\":7}},\"l\":{\"i\":5,\"l\":{\"i\":{\"n\":6}},\"y\":18},\"n\":[{\"a\":32,\"d\":97,\"e\":9,\"g\":98,\"n\":0},25],\"s\":{\"t\":{\"i\":0}},\"t\":{\"t\":{\"e\":{\"d\":{\".\":5}}}}},41],\"l\":[{\"e\":{\"s\":{\"s\":19}},\"i\":{\"n\":17},\"o\":{\"r\":{\"e\":11},\"w\":{\"e\":{\"r\":{\".\":84}}}},\"y\":100,\"a\":{\"g\":{\"e\":{\"l\":214}}},\"u\":{\"o\":{\"r\":27}}},99],\"m\":18,\"n\":18,\"o\":[{\"n\":[{\"d\":{\"e\":0},\"t\":0},32],\"r\":[{\"a\":{\"t\":4,\"y\":5},\"e\":{\"t\":6},\"i\":0,\"t\":{\"a\":6}},9],\"s\":5},41],\"p\":56,\"r\":{\"a\":{\"t\":0},\"e\":{\"a\":19,\"s\":{\"c\":6}},\"i\":[{\"l\":17},8],\"o\":{\"l\":6}},\"s\":48,\"t\":[{\"o\":21,\"y\":24},25],\"u\":[{\"e\":{\"l\":4},\"g\":18,\"m\":{\"i\":{\"n\":1}},\"n\":{\"e\":4},\"r\":{\"i\":3},\"s\":{\"i\":17,\"s\":0},\"t\":{\"a\":18}},27],\"y\":41},\"g\":{\"a\":[{\"f\":0,\"l\":{\".\":32,\"i\":27,\"o\":3},\"m\":[{\"e\":{\"t\":4},\"o\":19},25],\"n\":{\"i\":{\"s\":5,\"z\":[{\"a\":6},3]},\"o\":18},\"r\":{\"n\":67},\"s\":{\"s\":17},\"t\":{\"h\":12,\"i\":{\"v\":18}},\"z\":18},41],\"b\":23,\"d\":1,\"e\":{\".\":25,\"d\":25,\"e\":{\"z\":17},\"l\":{\"i\":{\"n\":0,\"s\":4,\"z\":4},\"y\":18},\"n\":[{\"a\":{\"t\":1},\"i\":{\"z\":4},\"o\":18,\"y\":18,\"c\":{\"y\":{\".\":8}}},41],\"o\":[{\"m\":3,\"d\":215},41],\"r\":{\"y\":21},\"s\":{\"i\":32},\"t\":{\"h\":6,\"o\":18,\"y\":1,\"i\":{\"c\":{\".\":8}}},\"v\":1},\"g\":[{\"e\":[{\"r\":23},24],\"l\":{\"u\":6},\"o\":0},101],\"h\":{\"i\":{\"n\":3},\"o\":{\"u\":{\"t\":4}},\"t\":{\"o\":1,\"w\":{\"e\":15}}},\"i\":{\".\":32,\"a\":[{\"r\":5},102],\"c\":[{\"i\":{\"a\":32},\"o\":21},29],\"e\":{\"n\":6,\"s\":{\".\":32}},\"l\":0,\"m\":{\"e\":{\"n\":23}},\"n\":{\".\":68,\"g\":{\"e\":5},\"s\":103},\"o\":32,\"r\":[{\"l\":0},27],\"s\":{\"l\":23},\"u\":1,\"v\":32,\"z\":27},\"l\":[{\"a\":[{\"d\":{\"i\":6},\"s\":32},0],\"e\":[{\"a\":{\"d\":29}},41],\"i\":{\"b\":0,\"g\":23,\"s\":{\"h\":43}},\"o\":[{\"r\":11,\"b\":{\"i\":{\"n\":106}}},27]},9],\"m\":[{\"y\":21},29],\"n\":{\"a\":[{\".\":21,\"c\":69},1],\"e\":{\"t\":{\"t\":17,\"i\":{\"s\":{\"m\":137}}}},\"i\":[{\"n\":24,\"o\":21},29],\"o\":[{\"n\":21,\"m\":{\"o\":5},\"r\":{\".\":216,\"e\":{\"s\":{\"p\":24}}}},29]},\"o\":[{\".\":27,\"b\":5,\"e\":32,\"g\":104,\"i\":{\"s\":3},\"n\":[{\"a\":105,\"d\":{\"o\":7},\"i\":[{\"z\":{\"a\":217}},3]},8],\"o\":32,\"r\":{\"i\":{\"z\":4},\"o\":{\"u\":5}},\"s\":{\".\":32},\"v\":15},41],\"p\":23,\"r\":[{\"a\":{\"d\":{\"a\":18},\"i\":21,\"n\":84,\"p\":{\"h\":{\".\":32,\"e\":{\"r\":[{\".\":7},19]},\"i\":{\"c\":32},\"y\":18}},\"y\":18},\"e\":{\"n\":0,\"s\":{\"s\":{\".\":18}}},\"i\":{\"t\":18,\"e\":{\"v\":213}},\"o\":21,\"u\":{\"f\":17}},41],\"s\":[{\"t\":{\"e\":19}},9],\"t\":{\"h\":11},\"u\":{\"a\":[{\"r\":{\"d\":27}},1],\"e\":25,\"i\":{\"t\":106},\"n\":27,\"s\":27,\"t\":[{\"a\":{\"n\":29}},26]},\"w\":23,\"y\":[{\"n\":107,\"r\":{\"a\":4}},41]},\"h\":{\"a\":{\"b\":{\"l\":73},\"c\":{\"h\":17},\"e\":{\"m\":0,\"t\":0},\"g\":{\"u\":19},\"l\":{\"a\":[{\"m\":12},3]},\"m\":1,\"n\":{\"c\":{\"i\":0,\"y\":0},\"d\":{\".\":32},\"g\":[{\"e\":{\"r\":6},\"o\":6},0],\"i\":{\"z\":108},\"k\":0,\"t\":{\"e\":0}},\"p\":{\"l\":11,\"t\":5,\"a\":{\"r\":{\"r\":218}}},\"r\":{\"a\":{\"n\":3,\"s\":4},\"d\":[{\"e\":12},8],\"l\":{\"e\":0},\"p\":{\"e\":{\"n\":6}},\"t\":{\"e\":{\"r\":5}}},\"s\":{\"s\":5},\"u\":{\"n\":17},\"z\":[{\"a\":11},32],\"i\":{\"r\":{\"s\":137}},\"t\":{\"c\":{\"h\":213}}},\"b\":29,\"e\":{\"a\":{\"d\":41,\"r\":27},\"c\":{\"a\":{\"n\":1,\"t\":19}},\"d\":[{\"o\":13},21],\"l\":{\"i\":93,\"l\":{\"i\":{\"s\":0},\"y\":0},\"o\":19},\"m\":{\"p\":0},\"n\":[{\"a\":[{\"t\":5},17]},9],\"o\":{\"r\":5},\"p\":5,\"r\":{\"a\":[{\"p\":12},21],\"b\":{\"a\":0},\"e\":{\"a\":6},\"n\":23,\"o\":{\"u\":19},\"y\":23},\"s\":[{\"p\":64},29],\"t\":[{\"e\":{\"d\":0}},1],\"u\":0,\"x\":{\"a\":168}},\"f\":29,\"h\":29,\"i\":{\"a\":{\"n\":4},\"c\":{\"o\":1},\"g\":{\"h\":6},\"l\":109,\"m\":{\"e\":{\"r\":36}},\"n\":{\"a\":21},\"o\":{\"n\":{\"e\":17}},\"p\":[{\"e\":{\"l\":{\"a\":219}}},1],\"r\":{\"l\":0,\"o\":3,\"p\":0,\"r\":0},\"s\":{\"e\":{\"l\":11},\"s\":0},\"t\":{\"h\":{\"e\":{\"r\":6}},\"e\":{\"s\":{\"i\":{\"d\":12}}}},\"v\":9},\"k\":18,\"l\":[{\"a\":{\"n\":17},\"o\":[{\"r\":{\"i\":11}},24]},80],\"m\":[{\"e\":{\"t\":17}},43],\"n\":[{\"a\":{\"u\":{\"z\":12}}},42],\"o\":{\"d\":{\"i\":{\"z\":19},\"s\":19},\"g\":[{\"e\":17},1],\"l\":{\"a\":{\"r\":5},\"e\":110},\"m\":{\"a\":1,\"e\":12},\"n\":{\"a\":0,\"y\":4},\"o\":{\"d\":27,\"n\":17},\"r\":{\"a\":{\"t\":5},\"i\":{\"s\":4,\"c\":{\".\":187}},\"t\":{\"e\":12},\"u\":4},\"s\":{\"e\":[{\"n\":4},0],\"p\":15},\"u\":{\"s\":[{\"e\":54},41]},\"v\":{\"e\":{\"l\":5}}},\"p\":56,\"r\":[{\"e\":{\"e\":6},\"o\":{\"n\":{\"i\":{\"z\":5}},\"p\":{\"o\":11}}},26],\"s\":[{\"h\":21},101],\"t\":{\"a\":{\"r\":21},\"e\":{\"n\":2,\"s\":4,\"o\":{\"u\":216}},\"y\":21},\"u\":{\"g\":1,\"m\":{\"i\":{\"n\":1}},\"n\":{\"k\":{\"e\":5},\"t\":0},\"s\":{\"t\":14},\"t\":1},\"w\":[{\"a\":{\"r\":{\"t\":21}}},29],\"y\":{\"p\":{\"e\":3,\"h\":3,\"o\":{\"t\":{\"h\":{\"a\":137}}}},\"s\":9}},\"i\":{\"a\":[{\"l\":24,\"m\":[{\"e\":{\"t\":{\"e\":5}}},0],\"n\":[{\"c\":18,\"i\":11,\"t\":46},24],\"p\":{\"e\":4},\"s\":{\"s\":17},\"t\":{\"i\":{\"v\":21},\"r\":{\"i\":{\"c\":1}},\"u\":21}},42],\"b\":{\"e\":[{\"r\":{\"a\":3,\"t\":4}},0],\"i\":{\"a\":4,\"n\":3,\"t\":{\".\":4,\"e\":4}},\"l\":[{\"i\":3},29],\"o\":19,\"r\":[{\"i\":94},29],\"u\":{\"n\":19}},\"c\":{\"a\":{\"m\":18,\"p\":32,\"r\":[{\".\":21,\"a\":21},18],\"s\":6,\"y\":21},\"c\":{\"u\":17},\"e\":{\"o\":18},\"h\":18,\"i\":[{\"d\":19,\"n\":{\"a\":4},\"p\":[{\"a\":3},24]},25],\"l\":{\"y\":21},\"o\":{\"c\":94},\"r\":[{\"a\":32,\"y\":21},43],\"t\":{\"e\":1,\"u\":[{\"a\":111},84]},\"u\":{\"l\":{\"a\":3},\"m\":1,\"o\":4,\"r\":23}},\"d\":[{\"a\":{\"i\":21,\"n\":{\"c\":4}},\"d\":4,\"e\":{\"a\":{\"l\":11},\"s\":0},\"i\":[{\"a\":{\"n\":4,\"r\":0},\"e\":19,\"o\":[{\"u\":5,\"s\":1},3],\"t\":2,\"u\":4},24],\"l\":{\"e\":23},\"o\":{\"m\":21,\"w\":3},\"r\":21,\"u\":[{\"o\":4},24]},25],\"e\":[{\"d\":{\"e\":0},\"g\":{\"a\":113},\"l\":{\"d\":12},\"n\":{\"a\":67,\"e\":0,\"n\":19,\"t\":{\"i\":23}},\"r\":{\".\":29},\"s\":{\"c\":23,\"t\":29},\"t\":23},112],\"f\":{\".\":18,\"e\":{\"r\":{\"o\":4}},\"f\":{\"e\":{\"n\":5},\"r\":1},\"i\":{\"c\":{\".\":18},\"e\":23},\"l\":23,\"t\":18,\"a\":{\"c\":{\"e\":{\"t\":137}}}},\"g\":[{\"a\":{\"b\":5},\"e\":{\"r\":{\"a\":3}},\"h\":{\"t\":{\"i\":12}},\"i\":[{\"b\":23,\"l\":3,\"n\":3,\"t\":3},18],\"l\":28,\"o\":[{\"r\":3,\"t\":4},24],\"r\":{\"e\":19},\"u\":{\"i\":5,\"r\":2},\"n\":{\"i\":{\"t\":[{\"e\":{\"r\":213}},0]}}},25],\"h\":23,\"i\":114,\"j\":[{\"k\":21},23],\"k\":18,\"l\":{\"a\":[{\"b\":93,\"d\":{\"e\":21},\"m\":94,\"r\":{\"a\":5}},29],\"e\":{\"g\":23,\"r\":2,\"v\":17},\"f\":4,\"i\":[{\"a\":3,\"b\":9,\"o\":3,\"s\":{\"t\":1},\"t\":25,\"z\":9},2],\"l\":{\"a\":{\"b\":5}},\"n\":18,\"o\":{\"q\":3},\"t\":{\"y\":1},\"u\":{\"r\":4},\"v\":3},\"m\":{\"a\":{\"g\":[{\"e\":3},21],\"r\":{\"y\":5}},\"e\":{\"n\":{\"t\":{\"a\":{\"r\":10}}},\"t\":18},\"i\":[{\"d\":{\"a\":4},\"l\":{\"e\":5},\"n\":{\"i\":19},\"t\":18},2],\"n\":{\"i\":1},\"o\":{\"n\":23},\"u\":[{\"l\":{\"a\":3}},24],\"p\":{\"e\":{\"d\":{\"a\":201}}}},\"n\":{\".\":25,\"a\":{\"u\":83,\"v\":18},\"c\":{\"e\":{\"l\":36,\"r\":3}},\"d\":[{\"l\":{\"i\":{\"n\":{\"g\":4}}}},18],\"e\":[{\"e\":23,\"r\":{\"a\":{\"r\":17}},\"s\":{\"s\":19}},25],\"g\":{\"a\":18,\"e\":[{\"n\":4},18],\"i\":18,\"l\":{\"i\":{\"n\":{\"g\":4}}},\"o\":18,\"u\":18},\"i\":[{\".\":19,\"a\":21,\"o\":3,\"s\":2,\"t\":{\"e\":{\".\":19,\"l\":{\"y\":{\".\":19}}},\"i\":{\"o\":32},\"y\":3}},25],\"k\":18,\"l\":18,\"n\":25,\"o\":[{\"c\":90,\"s\":0,\"t\":21},42],\"s\":[{\"e\":3,\"u\":{\"r\":{\"a\":7}}},25],\"t\":{\".\":25,\"h\":112},\"u\":[{\"s\":19},2],\"y\":18,\"f\":{\"r\":{\"a\":{\"s\":220}}}},\"o\":[{\".\":18,\"g\":{\"e\":17,\"r\":9},\"l\":29,\"m\":1,\"n\":{\"a\":{\"t\":11},\"e\":{\"r\":{\"y\":0}},\"i\":11},\"p\":{\"h\":4},\"r\":{\"i\":11},\"s\":21,\"t\":{\"h\":4,\"i\":19,\"o\":1},\"u\":{\"r\":21}},25],\"p\":[{\"e\":0,\"h\":{\"r\":{\"a\":{\"s\":115}}},\"i\":[{\"c\":1},3],\"r\":{\"e\":96},\"u\":{\"l\":3}},25],\"q\":{\"u\":{\"a\":23,\"e\":{\"f\":4},\"i\":{\"d\":3,\"t\":116}}},\"r\":[{\"a\":[{\"b\":0,\"c\":21},29],\"d\":{\"e\":5},\"e\":{\"d\":{\"e\":0},\"f\":21,\"l\":117,\"s\":21},\"g\":{\"i\":4},\"i\":[{\"d\":{\"e\":5},\"s\":1,\"t\":{\"u\":11},\"z\":118},2],\"m\":{\"i\":{\"n\":1}},\"o\":{\"g\":0,\"n\":{\".\":32}},\"u\":{\"l\":4},\"r\":{\"e\":{\"v\":{\"o\":{\"c\":221}}}}},18],\"s\":{\".\":25,\"a\":{\"g\":4,\"r\":3,\"s\":6},\"c\":[{\"h\":3},119],\"e\":[{\"r\":3},18],\"f\":27,\"h\":{\"a\":{\"n\":4},\"o\":{\"n\":3,\"p\":5}},\"i\":{\"b\":3,\"d\":0,\"s\":19,\"t\":{\"i\":{\"v\":4}}},\"k\":26,\"l\":{\"a\":{\"n\":36}},\"m\":{\"s\":18},\"o\":[{\"m\":{\"e\":{\"r\":5}}},24],\"p\":[{\"i\":9,\"y\":1},2],\"s\":[{\"a\":{\"l\":1},\"e\":{\"n\":36,\"s\":1}},62],\"t\":{\"a\":{\".\":1},\"e\":2,\"i\":2,\"l\":{\"y\":0},\"r\":{\"a\":{\"l\":18}}},\"u\":[{\"s\":4},24]},\"t\":{\"a\":{\".\":18,\"b\":{\"i\":0},\"g\":21,\"m\":120,\"n\":23,\"t\":23},\"e\":[{\"r\":{\"a\":3,\"i\":19},\"s\":[{\"i\":{\"m\":{\"a\":29}}},1]},25],\"h\":[{\"i\":{\"l\":148}},25],\"i\":[{\"a\":18,\"c\":[{\"a\":3,\"k\":31},22],\"g\":3,\"l\":{\"l\":4},\"m\":24,\"o\":25,\"s\":[{\"m\":21},18],\"n\":{\"e\":{\"r\":{\"a\":{\"r\":158}}}}},29],\"o\":{\"m\":121,\"n\":18},\"r\":{\"a\":{\"m\":21},\"y\":4},\"t\":18,\"u\":{\"a\":{\"t\":3},\"d\":19,\"l\":3},\"z\":{\".\":18}},\"u\":29,\"v\":[{\"e\":{\"l\":{\"l\":3},\"n\":{\".\":3},\"r\":{\".\":83,\"s\":{\".\":21}}},\"i\":{\"l\":{\".\":4},\"o\":4,\"t\":2},\"o\":{\"r\":{\"e\":19,\"o\":35},\"t\":83}},25],\"w\":56,\"x\":{\"o\":1},\"y\":18,\"z\":{\"a\":{\"r\":18},\"i\":0,\"o\":{\"n\":{\"t\":32}}}},\"j\":{\"a\":[{\"c\":{\"q\":0},\"p\":[{\"a\":{\"n\":{\"e\":{\"s\":220}}}},1],\"n\":{\"u\":{\"a\":12}}},32],\"e\":[{\"r\":{\"s\":5,\"e\":{\"m\":222}},\"s\":{\"t\":{\"i\":{\"e\":18},\"y\":18}},\"w\":11},41],\"o\":{\"p\":1},\"u\":{\"d\":{\"g\":32}}},\"k\":{\"a\":{\".\":27,\"b\":23,\"g\":19,\"i\":{\"s\":17},\"l\":0},\"b\":29,\"e\":{\"d\":24,\"e\":41,\"g\":1,\"l\":{\"i\":[{\"n\":{\"g\":223}},4]},\"n\":{\"d\":73},\"r\":29,\"s\":[{\"t\":{\".\":23}},0],\"t\":{\"y\":1}},\"f\":23,\"h\":1,\"i\":[{\".\":32,\"c\":122,\"l\":{\"l\":21,\"o\":6},\"m\":21,\"n\":{\".\":21,\"d\":{\"e\":0},\"e\":{\"s\":{\"s\":19},\"t\":{\"i\":{\"c\":224}}},\"g\":0},\"p\":1,\"s\":[{\"h\":19},0]},29],\"k\":1,\"l\":[{\"e\":{\"y\":18},\"y\":18},29],\"m\":29,\"n\":{\"e\":{\"s\":19},\"o\":69},\"o\":{\"r\":4,\"s\":{\"h\":17},\"u\":23,\"v\":{\"i\":{\"a\":{\"n\":41}}}},\"r\":{\"o\":{\"n\":5}},\"s\":[{\"c\":21,\"l\":1,\"y\":21,\"h\":{\"a\":23}},101],\"t\":19,\"w\":29},\"l\":{\"a\":{\"b\":{\"i\":{\"c\":11},\"o\":21},\"c\":{\"i\":[{\"e\":225},17]},\"d\":{\"e\":21,\"y\":3},\"g\":{\"n\":0},\"m\":{\"o\":11},\"n\":{\"d\":[{\"l\":0},27],\"e\":{\"t\":5},\"t\":{\"e\":0}},\"r\":{\"g\":0,\"i\":11,\"c\":{\"e\":{\"n\":176}}},\"s\":{\"e\":0},\"t\":{\"a\":{\"n\":4},\"e\":{\"l\":{\"i\":18}},\"i\":{\"v\":18}},\"v\":[{\"a\":95},18],\"i\":{\"n\":{\"e\":{\"s\":{\"s\":226}}}}},\"b\":[{\"i\":{\"n\":17}},42],\"c\":[{\"e\":0,\"i\":23,\"h\":{\"a\":{\"i\":23},\"i\":{\"l\":{\"d\":227}}}},101],\"d\":[{\"e\":[{\"r\":{\"e\":1,\"i\":1}},24],\"i\":[{\"s\":4},0],\"r\":[{\"i\":21},23]},25],\"e\":{\"a\":[{\"d\":{\"e\":{\"r\":{\".\":183}}},\"s\":{\"a\":228}},9],\"b\":{\"i\":1},\"f\":{\"t\":6},\"g\":{\".\":32,\"g\":32,\"e\":{\"n\":{\"d\":{\"r\":{\"e\":230}}}}},\"m\":{\"a\":{\"t\":[{\"i\":{\"c\":5}},1]}},\"n\":{\".\":18,\"c\":27,\"e\":{\".\":32},\"t\":41,\"o\":{\"i\":{\"d\":78}}},\"p\":{\"h\":3,\"r\":1},\"r\":{\"a\":{\"b\":6},\"e\":0,\"g\":27,\"i\":68,\"o\":21},\"s\":[{\"c\":{\"o\":4},\"q\":32,\"s\":[{\".\":32},27]},8],\"v\":{\"a\":23,\"e\":{\"r\":{\".\":0,\"a\":0,\"s\":0}}},\"y\":[{\"e\":18},27],\"c\":{\"t\":{\"a\":{\"b\":229}}}},\"f\":[{\"r\":19},25],\"g\":[{\"a\":[{\"r\":12},19],\"e\":{\"s\":21},\"o\":11},80],\"h\":48,\"i\":{\"a\":{\"g\":1,\"m\":9,\"r\":{\"i\":{\"z\":6}},\"s\":1,\"t\":{\"o\":1}},\"b\":{\"i\":4},\"c\":{\"i\":{\"o\":32},\"o\":{\"r\":1},\"s\":18,\"t\":{\".\":18},\"u\":21,\"y\":23},\"d\":{\"a\":23,\"e\":{\"r\":5},\"i\":27},\"f\":{\"e\":{\"r\":11},\"f\":21,\"l\":1},\"g\":{\"a\":{\"t\":{\"e\":32}},\"h\":27,\"r\":{\"a\":1}},\"k\":27,\"l\":123,\"m\":{\"b\":{\"l\":0},\"i\":11,\"o\":1,\"p\":90},\"n\":{\"a\":21,\"e\":[{\"a\":11},124],\"i\":11,\"k\":{\"e\":{\"r\":6}}},\"o\":{\"g\":4},\"q\":125,\"s\":{\"p\":0},\"t\":[{\".\":24,\"i\":{\"c\":{\"a\":32,\"s\":108}},\"h\":{\"o\":{\"g\":204}}},29],\"v\":{\"e\":{\"r\":11}},\"z\":29},\"j\":18,\"k\":{\"a\":[{\"l\":23,\"t\":0},11]},\"l\":[{\"a\":{\"w\":21},\"e\":[{\"a\":19,\"c\":23,\"g\":23,\"l\":23,\"n\":73,\"t\":73},24],\"i\":[{\"n\":[{\"a\":19},126],\"s\":{\"h\":231}},9],\"o\":[{\"q\":{\"u\":{\"i\":10}},\"u\":{\"t\":4},\"w\":19},1],\"f\":{\"l\":2}},29],\"m\":[{\"e\":{\"t\":19},\"i\":{\"n\":{\"g\":3}},\"o\":{\"d\":21,\"n\":[{\"e\":{\"l\":{\"l\":232}}},17]}},25],\"n\":81,\"o\":{\".\":27,\"b\":{\"a\":{\"l\":5},\"o\":{\"t\":{\"o\":233}}},\"c\":{\"i\":1},\"f\":18,\"g\":{\"i\":{\"c\":27},\"o\":19,\"u\":27,\"e\":{\"s\":{\".\":9}}},\"m\":{\"e\":{\"r\":11}},\"n\":{\"g\":32,\"i\":[{\"z\":127},0]},\"o\":{\"d\":6},\"p\":{\"e\":{\".\":32},\"i\":11,\"m\":23},\"r\":{\"a\":[{\"t\":{\"o\":1}},17],\"i\":{\"e\":4},\"o\":{\"u\":5}},\"s\":{\".\":32,\"e\":{\"t\":5},\"o\":{\"p\":{\"h\":{\"i\":{\"z\":32},\"y\":32}}},\"t\":0},\"t\":{\"a\":1},\"u\":{\"n\":{\"d\":6},\"t\":25},\"v\":18,\"a\":{\"d\":{\"e\":{\"d\":{\".\":17},\"r\":{\".\":183}}}}},\"p\":[{\"a\":{\"b\":5},\"h\":{\"a\":23,\"i\":19},\"i\":{\"n\":{\"g\":4},\"t\":23},\"l\":21,\"r\":19},25],\"r\":43,\"s\":[{\"c\":21,\"e\":24,\"i\":{\"e\":21}},81],\"t\":[{\"a\":{\"g\":4,\"n\":{\"e\":7}},\"e\":[{\"n\":17,\"r\":{\"a\":36},\"a\":23},29],\"h\":{\"i\":[{\"l\":{\"y\":148}},11]},\"i\":{\"e\":{\"s\":{\".\":19}},\"s\":17},\"r\":29,\"u\":[{\"r\":{\"a\":12}},8]},18],\"u\":{\"a\":4,\"b\":{\"r\":3},\"c\":{\"h\":17,\"i\":3},\"e\":{\"n\":3,\"p\":15},\"f\":0,\"i\":{\"d\":4},\"m\":{\"a\":1,\"i\":32,\"n\":{\".\":19,\"i\":{\"a\":32}},\"b\":{\"i\":{\"a\":{\".\":235}}}},\"o\":[{\"r\":11},3],\"p\":18,\"s\":{\"s\":17,\"t\":{\"e\":11}},\"t\":41,\"n\":{\"k\":{\"e\":{\"r\":234}}}},\"v\":{\"e\":{\"n\":19,\"t\":128}},\"w\":42,\"y\":[{\"a\":18,\"b\":18,\"m\":{\"e\":4},\"n\":{\"o\":3},\"s\":[{\"e\":19,\"t\":{\"y\":{\"r\":4}}},58],\"g\":{\"a\":{\"m\":{\"i\":236}}}},41]},\"m\":{\"a\":[{\"b\":25,\"c\":{\"a\":9,\"h\":{\"i\":{\"n\":{\"e\":4}}},\"l\":1},\"g\":{\"i\":{\"n\":5},\"n\":32},\"h\":25,\"i\":{\"d\":6},\"l\":{\"d\":18,\"i\":{\"g\":3,\"n\":4},\"l\":{\"i\":0},\"t\":{\"y\":0},\"a\":{\"p\":222}},\"n\":{\"i\":{\"a\":32,\"s\":5,\"z\":11},\".\":24,\"u\":{\"s\":{\"c\":237}}},\"p\":[{\"h\":{\"r\":{\"o\":244}}},18],\"r\":{\"i\":{\"n\":{\"e\":{\".\":4}},\"z\":4},\"l\":{\"y\":0},\"v\":11,\"g\":{\"i\":{\"n\":238}}},\"s\":{\"c\":{\"e\":4},\"e\":0,\"t\":15},\"t\":{\"e\":32,\"h\":12,\"i\":{\"s\":3,\"z\":{\"a\":18}}}},41],\"b\":[{\"a\":{\"t\":129},\"i\":{\"l\":19,\"n\":{\"g\":83},\"v\":0}},43],\"c\":56,\"e\":{\".\":18,\"d\":[{\".\":18,\"i\":{\"a\":32,\"e\":3,\"c\":[{\"i\":{\"n\":152}},84],\"o\":{\"c\":239}},\"y\":108},25],\"g\":[{\"r\":{\"a\":{\"n\":240}}},9],\"l\":{\"o\":{\"n\":5},\"t\":0},\"m\":[{\"o\":130},9],\"n\":[{\"a\":[{\"c\":5},0],\"d\":{\"e\":0},\"e\":18,\"i\":0,\"s\":[{\"u\":7},17],\"t\":[{\"e\":0},27],\".\":24},41],\"o\":{\"n\":4},\"r\":{\"s\":{\"a\":19}},\"s\":[{\"t\":{\"i\":27}},25],\"t\":{\"a\":[{\"l\":11},1],\"e\":2,\"h\":{\"i\":4},\"r\":[{\"i\":{\"c\":32,\"e\":4},\"y\":3},21]},\"v\":1},\"f\":43,\"h\":25,\"i\":{\".\":32,\"a\":3,\"d\":{\"a\":[{\"b\":241},0],\"g\":0},\"g\":0,\"l\":{\"i\":{\"a\":27,\"e\":108,\"t\":{\"a\":27}},\"l\":[{\"a\":{\"g\":208},\"i\":{\"l\":{\"i\":59}}},21]},\"n\":{\"a\":0,\"d\":27,\"e\":{\"e\":19},\"g\":{\"l\":[{\"i\":5,\"y\":19},21]},\"t\":0,\"u\":[{\"t\":{\"e\":{\"r\":242,\"s\":{\"t\":242}}}},21],\"i\":{\"s\":{\".\":174}}},\"o\":{\"t\":17},\"s\":[{\"e\":{\"r\":{\".\":0}},\"l\":5,\"t\":{\"i\":0,\"r\":{\"y\":19}}},24],\"t\":{\"h\":18},\"z\":24},\"k\":18,\"l\":43,\"m\":[{\"a\":{\"r\":{\"y\":5},\"b\":243}},29],\"n\":[{\"a\":1,\"i\":{\"n\":21},\"o\":1},43],\"o\":[{\"c\":{\"r\":[{\"a\":{\"t\":[{\"i\":{\"z\":32}},245]}},18]},\"d\":131,\"g\":{\"o\":1},\"i\":{\"s\":[{\"e\":5},84]},\"k\":18,\"l\":{\"e\":{\"s\":{\"t\":4},\"c\":246}},\"m\":{\"e\":3},\"n\":{\"e\":{\"t\":5,\"y\":{\"l\":247}},\"g\":{\"e\":5},\"i\":{\"a\":12,\"s\":{\"m\":0,\"t\":0},\"z\":3},\"o\":{\"l\":36,\"c\":{\"h\":12},\"e\":{\"n\":171},\"s\":249},\"y\":{\".\":3}},\"r\":[{\"a\":{\".\":18},\"o\":{\"n\":{\"i\":{\"s\":248}}}},9],\"s\":[{\"e\":{\"y\":4},\"p\":3},8],\"t\":{\"h\":[{\"e\":{\"t\":250}},12]},\"u\":{\"f\":19,\"s\":[{\"i\":{\"n\":98}},27]},\"v\":9,\"e\":{\"l\":{\"a\":{\"s\":167}}}},41],\"p\":[{\"a\":{\"r\":{\"a\":[{\"b\":5},7],\"i\":6}},\"e\":{\"t\":23},\"h\":{\"a\":{\"s\":36}},\"i\":[{\"a\":0,\"e\":{\"s\":4},\"n\":34,\"r\":19,\"s\":4},24],\"o\":{\"r\":{\"i\":11},\"s\":{\"i\":{\"t\":{\"e\":6}}},\"u\":{\"s\":21},\"v\":6},\"t\":{\"r\":1},\"y\":24},43],\"r\":47,\"s\":[{\"h\":[{\"a\":{\"c\":{\"k\":251}}},21],\"i\":19},101],\"t\":18,\"u\":[{\"l\":{\"a\":{\"r\":49},\"t\":[{\"i\":[{\"u\":252},54]},32]},\"m\":27,\"n\":8,\"p\":18,\"u\":1,\"d\":{\"r\":{\"o\":9}}},41],\"w\":18},\"n\":{\"a\":[{\"b\":[{\"u\":21},81],\"c\":{\".\":18,\"a\":1,\"t\":19},\"g\":{\"e\":{\"r\":{\".\":5}}},\"k\":0,\"l\":{\"i\":[{\"a\":4},1],\"t\":18},\"m\":{\"i\":{\"t\":4}},\"n\":[{\"c\":{\"i\":36},\"i\":{\"t\":0},\"k\":17},24],\"r\":{\"c\":[{\"h\":{\"s\":{\".\":73}}},11],\"e\":18,\"i\":11,\"l\":0,\"m\":19},\"s\":[{\"c\":0,\"t\":{\"i\":5}},21],\"t\":[{\"a\":{\"l\":3},\"o\":{\"m\":{\"i\":{\"z\":6}}}},24],\"u\":[{\"s\":{\"e\":11},\"t\":27},24],\"v\":{\"e\":0}},41],\"b\":80,\"c\":{\"a\":{\"r\":6},\"e\":{\"s\":{\".\":21}},\"h\":{\"a\":23,\"e\":{\"o\":19,\"s\":{\"t\":253}},\"i\":{\"l\":19,\"s\":23}},\"i\":{\"n\":2,\"t\":1},\"o\":{\"u\":{\"r\":{\"a\":7}}},\"r\":29,\"u\":29},\"d\":{\"a\":{\"i\":21,\"n\":19},\"e\":[{\"s\":{\"t\":{\".\":4}}},29],\"i\":{\"b\":0,\"f\":79,\"t\":29,\"z\":23,\"e\":{\"c\":{\"k\":29}}},\"u\":{\"c\":19,\"r\":0},\"w\":{\"e\":9},\"t\":{\"h\":{\"r\":3}}},\"e\":{\".\":25,\"a\":{\"r\":23},\"b\":[{\"u\":11,\"a\":{\"c\":{\"k\":3}}},9],\"c\":[{\"k\":32},9],\"d\":25,\"g\":{\"a\":{\"t\":[{\"i\":{\"v\":5}},1]},\"e\":32},\"l\":{\"a\":1,\"i\":{\"z\":5}},\"m\":{\"i\":4,\"o\":1},\"n\":[{\"e\":18},41],\"o\":27,\"p\":{\"o\":1},\"q\":9,\"r\":[{\"a\":{\"b\":6,\"r\":21},\"e\":24,\"i\":132,\"r\":0},29],\"s\":[{\".\":25,\"p\":18,\"t\":25,\"w\":18,\"k\":{\"i\":119}},41],\"t\":{\"i\":{\"c\":27}},\"v\":[{\"e\":19},1],\"w\":1},\"f\":[{\"i\":{\"n\":{\"i\":{\"t\":{\"e\":{\"s\":226}}}}}},23],\"g\":{\"a\":{\"b\":21},\"e\":{\"l\":23,\"n\":{\"e\":[{\"s\":5},133]},\"r\":{\"e\":19,\"i\":23}},\"h\":{\"a\":4,\"o\":2},\"i\":{\"b\":23,\"n\":2,\"t\":19},\"l\":{\"a\":21},\"o\":{\"v\":17},\"s\":{\"h\":4,\"p\":{\"r\":2}},\"u\":[{\"m\":21},29],\"y\":24},\"h\":[{\"a\":[{\"b\":12},0],\"e\":0},80],\"i\":{\"a\":[{\"n\":[{\".\":114},3],\"p\":1},68],\"b\":{\"a\":3,\"l\":1},\"d\":[{\"i\":4},1],\"e\":{\"r\":1},\"f\":{\"i\":[{\"c\":{\"a\":{\"t\":4}}},9]},\"g\":{\"r\":19},\"k\":0,\"m\":[{\"i\":{\"z\":3}},29],\"n\":[{\"e\":{\".\":32},\"g\":0},29],\"o\":1,\"s\":{\".\":32,\"t\":{\"a\":0}},\"t\":[{\"h\":21,\"i\":{\"o\":27},\"o\":{\"r\":23},\"r\":3},24]},\"j\":29,\"k\":[{\"e\":{\"r\":{\"o\":19},\"t\":23},\"i\":{\"n\":3},\"l\":29,\"r\":{\"u\":{\"p\":3}}},44],\"l\":[{\"e\":{\"s\":{\"s\":19}}},43],\"m\":[{\"e\":[{\"t\":17},0]},19],\"n\":[{\"e\":0,\"i\":{\"a\":{\"l\":11},\"v\":0}},101],\"o\":{\"b\":{\"l\":[{\"e\":3},0]},\"c\":{\"l\":19,\"e\":{\"r\":{\"o\":{\"s\":254}}}},\"d\":66,\"e\":27,\"g\":[{\"e\":17},18],\"i\":{\"s\":{\"i\":6}},\"l\":{\"i\":134,\"o\":{\"g\":{\"i\":{\"s\":32}}}},\"m\":{\"i\":{\"c\":27,\"z\":108,\"s\":{\"t\":82}},\"o\":1,\"y\":3,\"a\":{\"l\":214},\"e\":{\"n\":{\"o\":194}}},\"n\":[{\"a\":{\"g\":0},\"i\":[{\"z\":19,\"s\":{\"o\":255}},5],\"e\":{\"q\":15}},1],\"p\":[{\"o\":{\"l\":{\"i\":135,\"y\":{\".\":256}}}},18],\"r\":{\"a\":{\"b\":5,\"r\":{\"y\":1}}},\"s\":{\"c\":18,\"e\":0,\"t\":5},\"t\":{\"a\":4},\"u\":[{\"n\":27},41],\"v\":{\"e\":{\"l\":136,\"m\":{\"b\":2}}},\"w\":{\"l\":12}},\"p\":[{\"i\":0,\"r\":{\"e\":{\"c\":17}}},72],\"q\":29,\"r\":[{\"u\":0},29],\"s\":[{\"a\":{\"b\":4,\"t\":{\"i\":36}},\"c\":[{\"e\":{\"i\":{\"v\":4}}},1],\"e\":[{\"s\":83},24],\"i\":{\"d\":137,\"g\":17},\"l\":24,\"m\":[{\"o\":{\"o\":1}},3],\"o\":{\"c\":21},\"p\":{\"e\":1,\"i\":19},\"t\":{\"a\":{\"b\":{\"l\":6}}}},81],\"t\":[{\"a\":{\"b\":0},\"e\":{\"r\":{\"s\":12}},\"i\":[{\"b\":19,\"e\":{\"r\":0},\"f\":8,\"n\":{\"e\":23,\"g\":83},\"p\":0},9],\"r\":{\"o\":{\"l\":{\"l\":{\"i\":7}}},\"e\":{\"p\":137}},\"s\":1,\"u\":{\"m\":{\"e\":11}}},29],\"u\":{\"a\":2,\"d\":1,\"e\":{\"n\":4},\"f\":{\"f\":{\"e\":0}},\"i\":{\"n\":23,\"t\":50},\"m\":[{\"e\":2,\"i\":19},21],\"n\":138,\"o\":23,\"t\":{\"r\":3}},\"v\":74,\"w\":72,\"y\":{\"m\":0,\"p\":0},\"z\":[{\"a\":23},18]},\"o\":{\"a\":[{\"d\":11,\"l\":{\"e\":{\"s\":108}},\"r\":{\"d\":12},\"s\":{\"e\":0,\"t\":{\"e\":6}},\"t\":{\"i\":5}},18],\"b\":{\"a\":{\"b\":35,\"r\":19},\"e\":{\"l\":0},\"i\":[{\"n\":[{\"g\":4},24]},29],\"r\":23,\"u\":{\"l\":3},\"l\":{\"i\":{\"g\":189}}},\"c\":{\"e\":29,\"h\":[{\"e\":{\"t\":23},\"a\":{\"s\":23}},0],\"i\":{\"f\":12,\"l\":21},\"l\":{\"a\":{\"m\":21}},\"o\":{\"d\":21},\"r\":{\"a\":{\"c\":3,\"t\":{\"i\":{\"z\":4}}},\"e\":12,\"i\":{\"t\":32}},\"t\":{\"o\":{\"r\":{\"a\":7}}},\"u\":{\"l\":{\"a\":3},\"r\":{\"e\":19}}},\"d\":{\"d\":{\"e\":{\"d\":4}},\"i\":{\"c\":3,\"o\":11,\"t\":{\"i\":{\"c\":137}}},\"o\":[{\"r\":12},139],\"u\":{\"c\":{\"t\":{\".\":4,\"s\":4}}},\"e\":{\"l\":{\"l\":{\"i\":12}}}},\"e\":{\"l\":21,\"n\":{\"g\":19},\"r\":[{\"s\":{\"t\":257}},23],\"t\":{\"a\":1},\"v\":23},\"f\":{\"i\":[{\"t\":{\"e\":4,\"t\":17}},24]},\"g\":{\"a\":{\"r\":121,\"t\":{\"i\":{\"v\":4},\"o\":21}},\"e\":[{\"n\":{\"e\":19},\"o\":19,\"r\":21},29],\"i\":{\"e\":23,\"s\":140,\"t\":3},\"l\":[{\"y\":79},21],\"n\":{\"i\":{\"z\":27}},\"r\":{\"o\":21},\"u\":{\"i\":5},\"y\":[{\"n\":25},41]},\"h\":[{\"a\":{\"b\":6}},74],\"i\":[{\"c\":{\"e\":{\"s\":11}},\"d\":{\"e\":{\"r\":3}},\"f\":{\"f\":17},\"g\":0,\"l\":{\"e\":{\"t\":4}},\"n\":{\"g\":23,\"t\":{\"e\":{\"r\":6}}},\"s\":{\"m\":19,\"o\":{\"n\":4},\"t\":{\"e\":{\"n\":6}}},\"t\":{\"e\":{\"r\":3}}},9],\"j\":19,\"k\":[{\"e\":{\"n\":23,\"s\":{\"t\":15}},\"i\":{\"e\":4}},25],\"l\":{\"a\":[{\"n\":21,\"s\":{\"s\":36}},29],\"d\":[{\"e\":15},9],\"e\":{\"r\":3,\"s\":{\"c\":23,\"t\":{\"e\":{\"r\":88}}},\"t\":23},\"f\":{\"i\":1},\"i\":[{\"a\":23,\"c\":{\"e\":23},\"d\":{\".\":4},\"f\":73,\"l\":19,\"n\":{\"g\":3},\"o\":19,\"s\":{\".\":19,\"h\":3},\"t\":{\"e\":19,\"i\":{\"o\":19}},\"v\":19,\"g\":{\"o\":{\"p\":{\"o\":258}}}},9],\"l\":{\"i\":{\"e\":17}},\"o\":{\"g\":{\"i\":{\"z\":4}},\"r\":0,\"n\":{\"o\":{\"m\":259}}},\"p\":{\"l\":4},\"t\":9,\"u\":{\"b\":3,\"m\":{\"e\":3},\"n\":3,\"s\":19},\"v\":9,\"y\":24},\"m\":{\"a\":{\"h\":4,\"l\":5,\"t\":{\"i\":{\"z\":4}}},\"b\":{\"e\":9,\"l\":1},\"e\":[{\"n\":{\"a\":3},\"r\":{\"s\":{\"e\":4}},\"t\":[{\"r\":{\"y\":4}},21],\"c\":{\"h\":{\"a\":260}}},24],\"i\":{\"a\":23,\"c\":{\".\":3,\"a\":3},\"d\":19,\"n\":[{\"i\":19},2]},\"m\":{\"e\":{\"n\":{\"d\":32}}},\"o\":{\"g\":{\"e\":0},\"n\":21},\"p\":{\"i\":3,\"r\":{\"o\":7}}},\"n\":[{\"a\":[{\"c\":1,\"n\":23},2],\"c\":[{\"i\":{\"l\":27}},2],\"d\":[{\"o\":4},25],\"e\":{\"n\":23,\"s\":{\"t\":4}},\"g\":{\"u\":1},\"i\":{\"c\":2,\"o\":23,\"s\":2,\"u\":19},\"k\":{\"e\":{\"y\":3}},\"o\":{\"d\":{\"i\":1},\"m\":{\"y\":3,\"i\":{\"c\":137}},\"r\":{\"m\":{\"a\":23}},\"t\":{\"o\":{\"n\":261}},\"u\":23},\"s\":[{\"p\":{\"i\":[{\"r\":{\"a\":10}},36]},\"u\":17},3],\"t\":{\"e\":{\"n\":36},\"i\":[{\"f\":7},93]},\"u\":{\"m\":4},\"v\":{\"a\":6}},24],\"o\":[{\"d\":{\"e\":5,\"i\":5},\"k\":1,\"p\":{\"i\":11},\"r\":{\"d\":23},\"s\":{\"t\":6}},9],\"p\":{\"a\":24,\"e\":{\"d\":5,\"r\":[{\"a\":[{\"g\":18},27]},2]},\"h\":[{\"a\":{\"n\":19},\"e\":{\"r\":19}},25],\"i\":{\"n\":{\"g\":3},\"t\":23,\"s\":{\"m\":{\".\":2}}},\"o\":{\"n\":19,\"s\":{\"i\":21}},\"r\":29,\"u\":2,\"y\":5},\"q\":29,\"r\":{\"a\":[{\".\":19,\"g\":83,\"l\":{\"i\":{\"z\":4}},\"n\":{\"g\":{\"e\":4}}},29],\"e\":{\"a\":[{\"l\":19},5],\"i\":3,\"s\":{\"h\":5,\"t\":{\".\":4}},\"w\":17},\"g\":{\"u\":1},\"i\":{\"a\":56,\"c\":{\"a\":3},\"l\":19,\"n\":2,\"o\":29,\"t\":{\"y\":3},\"u\":23},\"m\":{\"i\":9},\"n\":{\"e\":8},\"o\":{\"f\":19,\"u\":{\"g\":3}},\"p\":{\"e\":4},\"r\":{\"h\":27},\"s\":{\"e\":[{\"n\":5},1],\"t\":17},\"t\":{\"h\":{\"i\":3,\"y\":3,\"o\":{\"n\":{\"i\":{\"t\":262}}},\"r\":{\"i\":137}},\"y\":1,\"i\":{\"v\":{\"e\":{\"l\":{\"y\":4}}}}},\"u\":{\"m\":19},\"y\":29},\"s\":{\"a\":{\"l\":3},\"c\":[{\"e\":1,\"o\":{\"p\":[{\"i\":18},23]},\"r\":19},9],\"i\":{\"e\":95,\"t\":{\"i\":{\"v\":4},\"o\":3,\"y\":3},\"u\":0},\"l\":1,\"o\":24,\"p\":{\"a\":1,\"o\":1,\"h\":{\"e\":{\"r\":83}}},\"t\":{\"a\":[{\"t\":{\"i\":19}},9],\"i\":{\"l\":4,\"t\":4}}},\"t\":{\"a\":{\"n\":21},\"e\":{\"l\":{\"e\":{\"g\":36}},\"r\":{\".\":3,\"s\":4},\"s\":[{\"t\":{\"e\":{\"r\":263},\"o\":{\"r\":264}}},21]},\"h\":[{\"e\":{\"s\":{\"i\":5},\"o\":{\"s\":265}},\"i\":14},18],\"i\":{\"c\":{\".\":3,\"a\":4,\"e\":23},\"f\":23,\"s\":23},\"o\":{\"s\":5}},\"u\":[{\"b\":{\"l\":3,\"a\":{\"d\":{\"o\":116}}},\"c\":{\"h\":{\"i\":6}},\"e\":{\"t\":4},\"l\":1,\"n\":{\"c\":{\"e\":{\"r\":6}},\"d\":8},\"v\":4},9],\"v\":{\"e\":{\"n\":1,\"r\":{\"n\":{\"e\":17},\"s\":12,\"t\":1}},\"i\":{\"s\":23,\"t\":{\"i\":36},\"a\":{\"n\":{\".\":266}}},\"o\":{\"l\":60}},\"w\":{\"d\":{\"e\":{\"r\":3}},\"e\":{\"l\":3,\"s\":{\"t\":4}},\"i\":2,\"n\":{\"i\":5},\"o\":21},\"y\":{\"a\":2},\"x\":{\"i\":{\"d\":{\"i\":{\"c\":267}}}}},\"p\":{\"a\":[{\"c\":{\"a\":1,\"e\":1,\"t\":0},\"d\":21,\"g\":{\"a\":{\"n\":32,\"t\":23}},\"i\":[{\"n\":17},21],\"l\":[{\"m\":{\"a\":{\"t\":268}}},21],\"n\":{\"a\":0,\"e\":{\"l\":11},\"t\":{\"y\":0},\"y\":3},\"p\":[{\"u\":1},2],\"r\":{\"a\":{\"b\":{\"l\":6},\"g\":{\"e\":5,\"r\":{\"a\":269}},\"l\":{\"e\":228},\"m\":[{\"e\":12},36]},\"d\":{\"i\":5},\"e\":[{\"l\":5},27],\"i\":[{\"s\":0},28]},\"t\":{\"e\":[{\"r\":4},9],\"h\":{\"i\":{\"c\":32},\"y\":4},\"r\":{\"i\":{\"c\":1}}},\"v\":0,\"y\":27},41],\"b\":43,\"d\":1,\"e\":{\".\":18,\"a\":[{\"r\":{\"l\":17}},138],\"c\":9,\"d\":[{\"e\":27,\"i\":[{\"a\":36,\"c\":0},27]},37],\"e\":[{\"d\":0,\"v\":208},21],\"k\":0,\"l\":{\"a\":1,\"i\":{\"e\":17}},\"n\":{\"a\":{\"n\":1},\"c\":21,\"t\":{\"h\":0}},\"o\":{\"n\":4},\"r\":{\"a\":{\".\":21,\"b\":{\"l\":6},\"g\":21},\"i\":[{\"s\":{\"t\":6}},21],\"m\":{\"a\":{\"l\":0},\"e\":7},\"n\":21,\"o\":11,\"t\":{\"i\":11},\"u\":4,\"v\":15},\"t\":[{\"e\":{\"n\":4},\"i\":{\"z\":4}},9]},\"f\":18,\"g\":18,\"h\":{\".\":18,\"a\":{\"r\":{\"i\":6}},\"e\":{\"n\":{\"o\":11},\"r\":1,\"s\":{\".\":1}},\"i\":{\"c\":2,\"e\":32,\"n\":{\"g\":4},\"s\":{\"t\":{\"i\":32}},\"z\":27,\"l\":{\"a\":{\"n\":{\"t\":168},\"t\":{\"e\":{\"l\":270}}}}},\"l\":9,\"o\":{\"b\":27,\"n\":{\"e\":27,\"i\":32},\"r\":0},\"s\":18,\"t\":3,\"u\":32,\"y\":41},\"i\":{\"a\":[{\"n\":17},3],\"c\":{\"i\":{\"e\":1},\"y\":1,\"a\":{\"d\":271}},\"d\":[{\"a\":19,\"e\":3,\"i\":32},21],\"e\":{\"c\":27,\"n\":3},\"g\":{\"r\":{\"a\":{\"p\":1}}},\"l\":{\"o\":3},\"n\":[{\".\":21,\"d\":17,\"o\":21},9],\"o\":[{\"n\":17},141],\"t\":{\"h\":[{\"a\":4},23],\"u\":9}},\"k\":142,\"l\":[{\"a\":{\"n\":27,\"s\":{\"t\":6}},\"i\":{\"a\":11,\"e\":{\"r\":5},\"g\":18,\"n\":[{\"a\":{\"r\":5}},0],\"c\":{\"a\":{\"b\":208}}},\"o\":{\"i\":17},\"u\":{\"m\":[{\"b\":17},0]}},143],\"m\":43,\"n\":48,\"o\":{\"c\":1,\"d\":{\".\":32},\"e\":{\"m\":4,\"t\":144},\"g\":145,\"i\":{\"n\":[{\"t\":32,\"c\":{\"a\":12}},84]},\"l\":{\"y\":{\"t\":6,\"e\":137,\"p\":{\"h\":{\"o\":{\"n\":{\"o\":272}}}}},\"e\":{\".\":41}},\"n\":{\"i\":1},\"p\":1,\"r\":[{\"y\":1},124],\"s\":[{\"s\":15},41],\"t\":[{\"a\":1},21],\"u\":{\"n\":32}},\"p\":[{\"a\":{\"r\":{\"a\":5}},\"e\":[{\"d\":21,\"l\":19,\"n\":23,\"r\":23,\"t\":23},24],\"o\":{\"s\":{\"i\":{\"t\":{\"e\":5}}}}},43],\"r\":[{\"a\":{\"y\":{\"e\":17}},\"e\":{\"c\":{\"i\":32,\"o\":5},\"e\":{\"m\":11},\"f\":{\"a\":{\"c\":6}},\"l\":{\"a\":0},\"r\":11,\"s\":{\"e\":23,\"s\":27,\"p\":{\"l\":{\"i\":84}}},\"t\":{\"e\":{\"n\":5}},\"v\":11,\"m\":{\"a\":{\"c\":273}},\"n\":{\"e\":{\"u\":15}}},\"i\":{\"e\":53,\"n\":{\"t\":146},\"s\":[{\"o\":12},0]},\"o\":{\"c\":{\"a\":23,\"e\":{\"s\":{\"s\":8}},\"i\":{\"t\":{\"y\":{\".\":274}}}},\"f\":{\"i\":{\"t\":6}},\"l\":11,\"s\":{\"e\":12},\"t\":15,\"g\":{\"e\":208}}},9],\"s\":[{\"e\":[{\"u\":{\"d\":[{\"o\":{\"d\":276,\"f\":276}},275]}},24],\"h\":1,\"i\":{\"b\":21}},81],\"t\":[{\"a\":{\"b\":134},\"e\":24,\"h\":24,\"i\":{\"m\":11},\"u\":{\"r\":0},\"w\":21,\"o\":{\"m\":{\"a\":{\"t\":277}}},\"r\":{\"o\":{\"l\":278}}},42],\"u\":{\"b\":[{\"e\":{\"s\":{\"c\":181}}},11],\"e\":0,\"f\":0,\"l\":{\"c\":11},\"m\":1,\"n\":9,\"r\":{\"r\":0},\"s\":32,\"t\":[{\"e\":[{\"r\":11},32],\"r\":3,\"t\":{\"e\":{\"d\":0},\"i\":{\"n\":0}}},9]},\"w\":23},\"q\":{\"u\":[{\"a\":{\"v\":5,\"i\":{\"n\":{\"t\":{\"e\":279}}},\"s\":{\"i\":[{\"r\":281,\"s\":281},280]}},\"e\":{\".\":25,\"r\":27,\"t\":27},\"i\":{\"n\":{\"t\":{\"e\":{\"s\":{\"s\":282}}}},\"v\":{\"a\":{\"r\":14}}}},9]},\"r\":{\"a\":{\"b\":[{\"i\":3,\"o\":{\"l\":{\"i\":{\"c\":29},\"o\":{\"i\":236}}}},25],\"c\":{\"h\":{\"e\":17,\"u\":3},\"l\":19},\"f\":{\"f\":{\"i\":5},\"t\":0},\"i\":24,\"l\":{\"o\":1},\"m\":{\"e\":{\"t\":[{\"r\":{\"i\":{\"z\":283}}},11],\"n\":24},\"i\":24,\"o\":{\"u\":3}},\"n\":{\"e\":{\"o\":6},\"g\":{\"e\":0},\"i\":21,\"o\":4,\"h\":{\"a\":{\"s\":167}}},\"p\":{\"e\":{\"r\":11},\"h\":{\"y\":27}},\"r\":{\"c\":5,\"e\":[{\"f\":5},17],\"i\":{\"l\":18}},\"s\":24,\"t\":{\"i\":{\"o\":{\"n\":115}}},\"u\":{\"t\":0},\"v\":{\"a\":{\"i\":4},\"e\":{\"l\":11}},\"z\":{\"i\":{\"e\":4}},\"d\":{\"i\":{\"g\":127,\"o\":{\"g\":249}}},\"o\":{\"r\":2}},\"b\":[{\"a\":{\"b\":21,\"g\":21},\"i\":[{\"f\":0,\"n\":[{\"e\":19,\"g\":{\".\":4,\"e\":284}},24]},8],\"o\":1},29],\"c\":[{\"e\":[{\"n\":17},24],\"h\":{\"a\":23,\"e\":{\"r\":0}},\"i\":{\"b\":90,\"t\":1},\"u\":{\"m\":12}},29],\"d\":{\"a\":{\"l\":21},\"i\":[{\"a\":0,\"e\":{\"r\":0},\"n\":[{\"g\":3},17]},9]},\"e\":{\".\":25,\"a\":{\"l\":2,\"n\":3,\"r\":{\"r\":4},\"v\":32,\"w\":1},\"b\":{\"r\":{\"a\":{\"t\":19}}},\"c\":{\"o\":{\"l\":{\"l\":5},\"m\":{\"p\":{\"e\":5}}},\"r\":{\"e\":1},\"i\":{\"p\":{\"r\":285}},\"t\":{\"a\":{\"n\":{\"g\":286}}}},\"d\":[{\"e\":2,\"i\":{\"s\":3,\"t\":5}},37],\"f\":{\"a\":{\"c\":1},\"e\":[{\"r\":{\".\":4}},9],\"i\":3,\"y\":1},\"g\":{\"i\":{\"s\":11}},\"i\":{\"t\":4},\"l\":{\"i\":2,\"u\":4},\"n\":{\"t\":{\"a\":90,\"e\":0}},\"o\":2,\"p\":{\"i\":{\"n\":4},\"o\":{\"s\":{\"i\":1}},\"u\":2},\"r\":[{\"i\":21,\"o\":17,\"u\":4},147],\"s\":{\".\":21,\"p\":{\"i\":1},\"s\":{\"i\":{\"b\":6}},\"t\":[{\"a\":{\"l\":4},\"r\":3},8]},\"t\":{\"e\":{\"r\":1},\"i\":{\"z\":96},\"r\":{\"i\":[{\"b\":{\"u\":85}},3]}},\"u\":[{\"t\":{\"i\":4}},8],\"v\":[{\"a\":{\"l\":1},\"e\":{\"l\":11,\"r\":{\".\":30,\"s\":4,\"t\":4}},\"i\":{\"l\":4},\"o\":{\"l\":{\"u\":5}}},8],\"w\":{\"h\":1}},\"f\":[{\"u\":0,\"y\":21},29],\"g\":[{\"e\":{\"r\":3,\"t\":23},\"i\":{\"c\":23,\"n\":[{\"g\":3},0],\"s\":19,\"t\":19},\"l\":29,\"o\":{\"n\":0},\"u\":23},9],\"h\":[{\".\":18,\"a\":{\"l\":18}},1],\"i\":{\"a\":[{\"b\":0,\"g\":1,\"l\":{\".\":23}},3],\"b\":[{\"a\":11},21],\"c\":{\"a\":{\"s\":5},\"e\":21,\"i\":[{\"d\":32,\"e\":1},18],\"o\":21},\"d\":{\"e\":{\"r\":5}},\"e\":{\"n\":{\"c\":3,\"t\":3},\"r\":2,\"t\":4},\"g\":{\"a\":{\"n\":5},\"i\":32},\"l\":{\"i\":{\"z\":11}},\"m\":{\"a\":{\"n\":32},\"i\":5,\"o\":27,\"p\":{\"e\":0}},\"n\":{\"a\":[{\".\":32},24],\"d\":0,\"e\":0,\"g\":0},\"o\":2,\"p\":{\"h\":[{\"e\":6},32],\"l\":[{\"i\":{\"c\":5}},9]},\"q\":21,\"s\":[{\".\":21,\"c\":0,\"h\":23,\"p\":0},24],\"t\":{\"a\":{\"b\":116},\"e\":{\"d\":{\".\":19},\"r\":{\".\":5,\"s\":5}},\"i\":{\"c\":11},\"u\":[{\"r\":5},9]},\"v\":{\"e\":{\"l\":5,\"t\":11},\"i\":11,\"o\":{\"l\":287}}},\"j\":23,\"k\":{\"e\":{\"t\":23},\"l\":{\"e\":1,\"i\":{\"n\":1}},\".\":288,\"h\":{\"o\":2},\"r\":{\"a\":{\"u\":29}},\"s\":{\".\":288}},\"l\":[{\"e\":[{\"d\":24,\"q\":{\"u\":30}},0],\"i\":{\"g\":21,\"s\":[{\"h\":4},21]},\"o\":73},29],\"m\":[{\"a\":{\"c\":5},\"e\":[{\"n\":23,\"r\":{\"s\":4}},24],\"i\":{\"n\":{\"g\":[{\".\":21},3]},\"o\":21,\"t\":23},\"y\":21},29],\"n\":{\"a\":{\"r\":21},\"e\":{\"l\":23,\"r\":21,\"t\":19,\"y\":23},\"i\":{\"c\":19,\"s\":92,\"t\":23,\"v\":23},\"o\":[{\"u\":21},0],\"u\":23},\"o\":{\"b\":{\"l\":11,\"o\":{\"t\":289}},\"c\":[{\"r\":3},24],\"e\":[{\"l\":{\"a\":{\"s\":167}},\"p\":{\"i\":{\"d\":{\"e\":290}}}},1],\"f\":{\"e\":2,\"i\":{\"l\":4}},\"k\":[{\"e\":{\"r\":4}},8],\"l\":{\"e\":{\".\":32}},\"m\":{\"e\":{\"t\":{\"e\":5},\"s\":{\"h\":3}},\"i\":0,\"p\":0},\"n\":{\"a\":{\"l\":0},\"e\":0,\"i\":{\"s\":134},\"t\":{\"a\":0}},\"o\":{\"m\":41,\"t\":32},\"p\":{\"e\":{\"l\":3},\"i\":{\"c\":11}},\"r\":{\"i\":11,\"o\":4},\"s\":{\"p\":{\"e\":{\"r\":5}},\"s\":0},\"t\":{\"h\":{\"e\":1},\"y\":1,\"r\":{\"o\":{\"n\":2}}},\"v\":{\"a\":1,\"e\":{\"l\":5}},\"x\":5},\"p\":[{\"e\":{\"a\":21,\"n\":{\"t\":19},\"r\":{\".\":4},\"t\":23},\"h\":95,\"i\":{\"n\":{\"g\":3}},\"o\":23,\"a\":{\"u\":{\"l\":{\"i\":291}}}},29],\"r\":[{\"e\":{\"c\":0,\"f\":0,\"o\":21,\"s\":{\"t\":0}},\"i\":{\"o\":0,\"v\":0},\"o\":{\"n\":17,\"s\":17},\"y\":{\"s\":17}},72],\"s\":[{\"a\":[{\"t\":{\"i\":5}},29],\"c\":1,\"e\":[{\"c\":[{\"r\":0},23],\"r\":{\".\":4,\"a\":{\"d\":{\"i\":238}}},\"s\":3,\"v\":148},24],\"h\":[{\"a\":19},29],\"i\":[{\"b\":90},29],\"o\":{\"n\":12},\"p\":29,\"w\":19},44],\"t\":{\"a\":{\"c\":{\"h\":36},\"g\":21},\"e\":{\"b\":23,\"n\":{\"d\":17},\"o\":5},\"i\":[{\"b\":4,\"d\":0,\"e\":{\"r\":21},\"g\":23,\"l\":{\"i\":12,\"l\":17,\"y\":21},\"s\":{\"t\":21},\"v\":21},29],\"r\":{\"i\":23,\"o\":{\"p\":{\"h\":115}},\"e\":{\"u\":29}},\"s\":{\"h\":1},\"h\":{\"o\":{\"u\":29}}},\"u\":{\"a\":3,\"e\":{\"l\":93,\"n\":3},\"g\":{\"l\":1},\"i\":{\"n\":3},\"m\":{\"p\":{\"l\":11}},\"n\":[{\"k\":6,\"t\":{\"y\":0}},9],\"s\":{\"c\":19},\"t\":{\"i\":{\"n\":6}}},\"v\":{\"e\":[{\"l\":{\"i\":17},\"n\":23,\"r\":{\".\":4},\"s\":{\"t\":19},\"y\":23,\"i\":{\"l\":29}},1],\"i\":{\"c\":23,\"v\":0},\"o\":23},\"w\":29,\"y\":{\"c\":1,\"n\":{\"g\":{\"e\":32}},\"t\":3},\"z\":{\"s\":{\"c\":2}}},\"s\":{\"a\":[{\"b\":42,\"c\":{\"k\":32,\"r\":{\"i\":11},\"t\":23},\"i\":32,\"l\":{\"a\":{\"r\":36},\"m\":0,\"o\":4,\"t\":0,\"e\":{\"s\":{\"c\":54,\"w\":7}}},\"n\":{\"c\":27,\"d\":{\"e\":0}},\"p\":[{\"a\":{\"r\":{\"i\":{\"l\":292}}}},29],\"t\":{\"a\":4,\"i\":{\"o\":76},\"u\":11},\"u\":0,\"v\":{\"o\":{\"r\":4}},\"w\":32},9],\"b\":56,\"c\":{\"a\":{\"n\":{\"t\":149},\"p\":[{\"e\":{\"r\":267}},0],\"v\":6,\"t\":{\"o\":{\"l\":208}}},\"e\":{\"d\":21,\"i\":18,\"s\":21},\"h\":[{\"o\":21,\"i\":{\"t\":{\"z\":21}},\"r\":{\"o\":{\"d\":{\"i\":{\"n\":{\"g\":293}}}}}},8],\"i\":{\"e\":68,\"n\":{\"d\":150},\"u\":{\"t\":{\"t\":294}}},\"l\":{\"e\":6,\"i\":21},\"o\":{\"f\":17,\"p\":{\"y\":18},\"u\":{\"r\":{\"a\":7}}},\"u\":29,\"r\":{\"a\":{\"p\":{\"e\":{\"r\":{\".\":36}}}}},\"y\":{\"t\":{\"h\":247}}},\"d\":56,\"e\":{\".\":18,\"a\":[{\"s\":17,\"w\":5},1],\"c\":{\"o\":151,\"t\":27},\"d\":[{\"e\":95,\"l\":19},125],\"g\":[{\"r\":11},9],\"i\":32,\"l\":{\"e\":2,\"f\":32,\"v\":32},\"m\":{\"e\":[{\"s\":{\"t\":295}},18],\"o\":{\"l\":1},\"a\":{\"p\":{\"h\":287}},\"i\":{\"t\":{\"i\":{\"c\":296}}}},\"n\":{\"a\":{\"t\":5},\"c\":18,\"d\":0,\"e\":{\"d\":19},\"g\":5,\"i\":{\"n\":19},\"t\":{\"d\":18,\"l\":18}},\"p\":{\"a\":152,\"t\":{\"e\":{\"m\":{\"b\":11}}}},\"r\":{\".\":43,\"l\":21,\"o\":0,\"v\":{\"o\":18}},\"s\":[{\"h\":4,\"t\":5},72],\"u\":{\"m\":113},\"v\":[{\"e\":{\"n\":11}},32],\"w\":{\"i\":0},\"x\":32},\"f\":47,\"g\":48,\"h\":[{\".\":25,\"e\":{\"r\":2,\"v\":32},\"i\":{\"n\":2,\"o\":3,\"p\":27,\"v\":6},\"o\":[{\"l\":{\"d\":4},\"n\":12,\"r\":[{\"t\":7},17],\"e\":{\"s\":{\"t\":137}}},0],\"w\":18},24],\"i\":{\"b\":2,\"c\":{\"c\":19},\"d\":{\"e\":{\".\":27,\"s\":[{\"t\":6,\"w\":6},32],\"d\":{\".\":8}},\"i\":[{\"z\":4},32]},\"g\":{\"n\":{\"a\":18}},\"l\":{\"e\":0,\"y\":18},\"n\":[{\"a\":24,\"e\":{\".\":32},\"g\":23},42],\"o\":[{\"n\":[{\"a\":6},32]},41],\"r\":[{\"a\":5,\"e\":{\"s\":{\"i\":{\"d\":4}}}},9],\"s\":41,\"t\":{\"i\":{\"o\":27}},\"u\":32,\"v\":41,\"z\":32},\"k\":[{\"e\":[{\"t\":23},18],\"i\":{\"n\":{\"e\":4,\"g\":4}},\"y\":{\"s\":{\"c\":15}}},9],\"l\":[{\"a\":{\"t\":23},\"e\":24,\"i\":{\"t\":{\"h\":7}},\"o\":{\"v\":{\"a\":{\"k\":{\"i\":{\"a\":297}}}}}},74],\"m\":[{\"a\":[{\"l\":{\"l\":54},\"n\":12},23],\"e\":{\"l\":17,\"n\":19},\"i\":{\"t\":{\"h\":32}},\"o\":{\"l\":{\"d\":49}}},42],\"n\":72,\"o\":[{\"c\":{\"e\":1},\"f\":{\"t\":12},\"l\":{\"a\":{\"b\":1},\"d\":153,\"i\":{\"c\":3},\"v\":32,\"u\":{\"t\":{\"e\":9}}},\"m\":27,\"n\":{\".\":68,\"a\":17,\"g\":0},\"p\":[{\"h\":{\"i\":{\"c\":32,\"z\":19},\"y\":19}},21],\"r\":{\"c\":5,\"d\":5},\"v\":[{\"i\":4},18],\"g\":{\"a\":{\"m\":{\"y\":298}}}},41],\"p\":{\"a\":[{\"i\":32,\"n\":0,\"c\":{\"e\":299,\"i\":{\"n\":69}}},25],\"e\":{\"n\":{\"d\":17},\"o\":57,\"r\":25,\"c\":{\"i\":{\"o\":11}}},\"h\":{\"e\":[{\"r\":[{\"o\":213},27]},24],\"o\":6},\"i\":{\"l\":17,\"n\":{\"g\":4},\"o\":18,\"c\":{\"i\":{\"l\":208}}},\"l\":{\"y\":21},\"o\":{\"n\":21,\"r\":[{\"t\":{\"s\":{\"c\":300,\"w\":300}}},17],\"t\":18,\"k\":{\"e\":{\"s\":{\"w\":10}}}}},\"q\":{\"u\":{\"a\":{\"l\":{\"l\":36}},\"i\":{\"t\":{\"o\":88}}}},\"r\":29,\"s\":[{\"a\":[{\"s\":12,\"c\":{\"h\":{\"u\":301}}},29],\"c\":94,\"e\":{\"l\":23,\"n\":{\"g\":19},\"s\":{\".\":21},\"t\":19},\"i\":[{\"e\":[{\"r\":0},21],\"l\":{\"y\":4},\"a\":{\"n\":{\".\":210}},\"g\":{\"n\":{\"a\":{\"b\":302}}}},29],\"l\":[{\"i\":1},21],\"n\":21,\"p\":{\"e\":{\"n\":{\"d\":115}}},\"t\":9,\"u\":{\"r\":{\"a\":6}},\"w\":4,\"h\":{\"a\":{\"t\":3}}},25],\"t\":{\".\":25,\"a\":{\"g\":24,\"l\":24,\"m\":{\"i\":17,\"p\":69},\"n\":{\"d\":32,\"t\":{\"s\":{\"h\":{\"i\":303}}}},\"p\":90,\"t\":{\".\":32,\"i\":15},\"r\":{\"t\":{\"l\":{\"i\":12}}}},\"e\":{\"d\":21,\"r\":{\"n\":{\"i\":7},\"o\":19},\"w\":[{\"a\":6},8]},\"h\":{\"e\":23},\"i\":[{\".\":21,\"a\":19,\"c\":[{\"k\":32},29],\"e\":21,\"f\":23,\"n\":{\"g\":3},\"r\":32},9],\"l\":{\"e\":29},\"o\":{\"c\":{\"k\":32},\"m\":{\"a\":12},\"n\":{\"e\":32},\"p\":21,\"r\":{\"e\":27,\"a\":{\"b\":304}}},\"r\":[{\"a\":{\"d\":21,\"t\":{\"u\":32,\"a\":{\"g\":305}},\"y\":21},\"i\":{\"d\":21,\"b\":{\"u\":{\"t\":7}}},\"y\":18},1],\"w\":61,\"y\":[{\"l\":{\"i\":{\"s\":137}}},24],\"b\":4,\"s\":{\"c\":{\"r\":4}},\"u\":{\"p\":{\"i\":{\"d\":306}}}},\"u\":[{\"a\":{\"l\":2},\"b\":111,\"g\":151,\"i\":{\"s\":4,\"t\":12},\"l\":21,\"m\":[{\"i\":11},9],\"n\":9,\"r\":9,\"p\":{\"e\":{\"r\":{\"e\":307}}}},41],\"v\":18,\"w\":[{\"o\":18,\"i\":{\"m\":{\"m\":177}}},9],\"y\":[{\"c\":18,\"l\":27,\"n\":{\"o\":5,\"c\":41},\"r\":{\"i\":{\"n\":4}},\"t\":{\"h\":{\"i\":308}}},21]},\"t\":{\"a\":[{\".\":27,\"b\":[{\"l\":{\"e\":{\"s\":4}},\"o\":{\"l\":{\"i\":{\"z\":32,\"s\":{\"m\":309}}}}},25],\"c\":{\"i\":18},\"d\":{\"o\":4},\"f\":46,\"i\":{\"l\":{\"o\":5}},\"l\":[{\"a\":4,\"e\":{\"n\":5},\"i\":11,\"k\":[{\"a\":204},18],\"l\":{\"i\":{\"s\":0}},\"o\":{\"g\":4}},9],\"m\":{\"o\":4,\"i\":{\"n\":82}},\"n\":{\"d\":{\"e\":0},\"t\":{\"a\":54}},\"p\":{\"e\":{\"r\":4},\"l\":4,\"a\":{\"t\":{\"h\":310}}},\"r\":{\"a\":0,\"c\":18,\"e\":18,\"i\":{\"z\":3},\"r\":{\"h\":311}},\"s\":{\"e\":0,\"y\":4},\"t\":{\"i\":{\"c\":18},\"u\":{\"r\":1}},\"u\":{\"n\":17},\"v\":0,\"w\":25,\"x\":{\"i\":{\"s\":0}},\"g\":{\"o\":{\"n\":{\".\":3}}}},41],\"b\":42,\"c\":[{\"h\":[{\"e\":{\"t\":5},\"c\":15,\"i\":{\"e\":{\"r\":237}}},21],\"r\":29},18],\"d\":43,\"e\":{\".\":18,\"a\":{\"d\":{\"i\":17},\"t\":18,\"c\":{\"h\":{\"e\":{\"r\":{\".\":36}}}}},\"c\":{\"e\":17,\"t\":32},\"d\":[{\"i\":4},42],\"e\":41,\"g\":[{\"e\":{\"r\":4},\"i\":4},0],\"l\":{\".\":27,\"i\":17,\"s\":32,\"e\":{\"g\":84,\"r\":{\"o\":249}}},\"m\":{\"a\":[{\"t\":11},154]},\"n\":{\"a\":{\"n\":27},\"c\":27,\"d\":27,\"e\":{\"s\":18},\"t\":[{\"a\":{\"g\":0}},41]},\"o\":41,\"p\":[{\"e\":4},1],\"r\":{\"c\":11,\"d\":155,\"i\":[{\"e\":{\"s\":5},\"s\":11,\"z\":{\"a\":6},\"c\":{\".\":8}},41],\"n\":{\"i\":{\"t\":32}},\"v\":5,\"g\":{\"e\":{\"i\":312}}},\"s\":{\".\":18,\"s\":[{\".\":23,\"e\":{\"s\":313}},18]},\"t\":{\"h\":{\"e\":6}},\"u\":27,\"x\":27,\"y\":18},\"f\":42,\"g\":43,\"h\":{\".\":25,\"a\":{\"n\":17,\"l\":{\"a\":{\"m\":228}}},\"e\":[{\"a\":[{\"s\":3,\"t\":5},18],\"i\":{\"s\":11},\"t\":27},9],\"i\":{\"c\":{\".\":4,\"a\":4},\"l\":18,\"n\":{\"k\":32}},\"l\":18,\"o\":{\"d\":{\"e\":4,\"i\":{\"c\":32},\"o\":{\"n\":11}},\"o\":18,\"r\":{\"i\":{\"t\":6,\"z\":5}},\"g\":{\"e\":{\"n\":{\"i\":314}}},\"k\":{\"e\":{\"r\":175}}},\"s\":25,\"y\":{\"l\":{\"a\":{\"n\":228}},\"s\":{\"c\":11}}},\"i\":{\"a\":[{\"b\":1,\"t\":{\"o\":1},\"n\":{\".\":70}},41],\"b\":156,\"c\":{\"k\":18,\"o\":21,\"u\":157},\"d\":{\"i\":32},\"e\":{\"n\":27},\"f\":[{\"y\":4},8],\"g\":[{\"u\":32},25],\"l\":{\"l\":{\"i\":{\"n\":6}}},\"m\":[{\"p\":18,\"u\":{\"l\":5}},41],\"n\":[{\"a\":24,\"e\":{\".\":27},\"i\":27,\"o\":{\"m\":285}},42],\"o\":[{\"c\":4,\"n\":{\"e\":{\"e\":6}}},41],\"q\":32,\"s\":{\"a\":3,\"e\":27,\"m\":0,\"o\":4,\"p\":0,\"t\":{\"i\":{\"c\":{\"a\":32}}}},\"t\":{\"l\":3},\"u\":1,\"v\":[{\"a\":0},41],\"z\":[{\"a\":3,\"e\":{\"n\":3}},41]},\"l\":[{\"a\":[{\"n\":17},19],\"e\":{\".\":27,\"d\":27,\"s\":{\".\":27},\"t\":{\".\":19}},\"o\":19,\"i\":{\"e\":{\"r\":315}}},25],\"m\":[{\"e\":0},43],\"n\":81,\"o\":[{\"b\":3,\"c\":{\"r\":{\"a\":{\"t\":4}}},\"d\":{\"o\":18},\"f\":25,\"g\":{\"r\":9},\"i\":{\"c\":4},\"m\":{\"a\":9,\"b\":0,\"y\":3},\"n\":{\"a\":{\"l\":{\"i\":0},\"t\":3},\"o\":18,\"y\":18},\"r\":{\"a\":9,\"i\":{\"e\":3,\"z\":5}},\"s\":8,\"u\":{\"r\":32,\"t\":18},\"w\":{\"a\":{\"r\":3}},\"l\":{\"o\":{\"g\":{\"y\":84}}},\"t\":{\"i\":{\"c\":11}}},41],\"p\":43,\"r\":{\"a\":[{\"b\":11,\"c\":{\"h\":5,\"i\":[{\"t\":17},36],\"t\":{\"e\":17}},\"s\":17,\"v\":{\"e\":{\"n\":5,\"s\":158,\"r\":{\"s\":[{\"a\":{\"b\":317}},15]}}},\"i\":{\"t\":{\"o\":{\"r\":316}}}},41],\"e\":{\"f\":5,\"m\":[{\"i\":6},0],\"a\":{\"c\":{\"h\":{\"e\":318}}}},\"i\":{\"a\":[{\"l\":{\".\":1}},32],\"c\":{\"e\":{\"s\":5},\"i\":{\"a\":32},\"s\":18},\"m\":25,\"v\":0},\"o\":{\"m\":{\"i\":5},\"n\":{\"i\":6,\"y\":18},\"p\":{\"h\":{\"e\":5},\"i\":{\"s\":175},\"o\":{\"l\":{\"e\":{\"s\":320},\"i\":{\"s\":320,\"t\":321}}}},\"s\":{\"p\":11},\"v\":11,\"l\":{\"e\":{\"u\":{\"m\":319}}},\"f\":{\"i\":{\"c\":{\".\":17},\"t\":11}}},\"u\":{\"i\":5,\"s\":17}},\"s\":[{\"c\":[{\"h\":{\"i\":{\"e\":12}}},21],\"h\":0,\"w\":21},101],\"t\":[{\"e\":{\"s\":21},\"o\":19,\"u\":0,\"r\":{\"i\":{\"b\":{\"u\":{\"t\":322}}}}},66],\"u\":[{\"a\":[{\"r\":3},2],\"b\":{\"i\":1},\"d\":8,\"e\":18,\"f\":46,\"i\":76,\"m\":27,\"n\":{\"i\":{\"s\":1}},\"p\":{\".\":48},\"r\":{\"e\":27,\"i\":[{\"s\":11},32],\"o\":5,\"y\":4,\"n\":{\"a\":{\"r\":12}}},\"s\":27},41],\"v\":18,\"w\":[{\"a\":43,\"i\":{\"s\":17},\"o\":18,\"h\":29},1],\"y\":[{\"a\":18,\"l\":25,\"p\":{\"e\":12,\"h\":4,\"a\":{\"l\":64}}},41],\"z\":[{\"e\":1},18]},\"u\":{\"a\":{\"b\":18,\"c\":0,\"n\":{\"a\":4,\"i\":0},\"r\":{\"a\":{\"n\":{\"t\":5}},\"d\":8,\"i\":11,\"t\":11},\"t\":29,\"v\":0,\"d\":{\"r\":{\"a\":{\"t\":{\"i\":3,\"u\":15}}}}},\"b\":{\"e\":[{\"l\":21,\"r\":[{\"o\":21},23]},1],\"i\":[{\"n\":{\"g\":33}},72],\"l\":{\"e\":{\".\":23}}},\"c\":{\"a\":23,\"i\":{\"b\":0,\"t\":1},\"l\":{\"e\":12},\"r\":23,\"u\":23,\"y\":21},\"d\":{\"d\":4,\"e\":{\"r\":3,\"s\":{\"t\":4},\"v\":17},\"i\":{\"c\":29,\"e\":{\"d\":3,\"s\":3},\"s\":4,\"t\":19},\"o\":{\"n\":[{\"y\":232},21]},\"s\":{\"i\":1},\"u\":21},\"e\":{\"n\":{\"e\":21,\"s\":17,\"t\":{\"e\":0}},\"r\":{\"i\":{\"l\":0}},\"a\":{\"m\":15}},\"f\":{\"a\":27,\"l\":23},\"g\":{\"h\":{\"e\":{\"n\":11}},\"i\":{\"n\":4}},\"i\":[{\"l\":{\"i\":{\"z\":5}},\"n\":[{\"g\":29},1],\"r\":{\"m\":0},\"t\":{\"a\":17},\"v\":[{\"e\":{\"r\":{\".\":0}}},11]},156],\"j\":19,\"k\":18,\"l\":{\"a\":[{\"b\":5,\"t\":{\"i\":19}},29],\"c\":{\"h\":[{\"e\":32},17]},\"d\":{\"e\":{\"r\":3}},\"e\":[{\"n\":29},1],\"g\":{\"i\":1},\"i\":[{\"a\":19,\"n\":{\"g\":3},\"s\":{\"h\":4}},9],\"l\":{\"a\":{\"r\":1},\"i\":{\"b\":96,\"s\":1}},\"m\":61,\"o\":72,\"s\":[{\"e\":{\"s\":5}},18],\"t\":{\"i\":2,\"r\":{\"a\":54},\"u\":18},\"u\":[{\"l\":4},23],\"v\":4},\"m\":{\"a\":{\"b\":4},\"b\":{\"i\":1,\"l\":{\"y\":1}},\"i\":[{\"n\":{\"g\":83}},29],\"o\":{\"r\":{\"o\":6}},\"p\":9},\"n\":{\"a\":{\"t\":17},\"e\":[{\"r\":1},24],\"i\":[{\"m\":1,\"n\":24,\"s\":{\"h\":4},\"v\":11},29],\"s\":[{\"w\":1},93],\"t\":{\"a\":{\"b\":11},\"e\":{\"r\":{\".\":1},\"s\":1}},\"u\":0,\"y\":4,\"z\":4},\"o\":{\"r\":{\"s\":21},\"s\":19,\"u\":29},\"p\":{\"e\":[{\"r\":{\"s\":6}},29],\"i\":{\"a\":19,\"n\":{\"g\":3}},\"l\":23,\"p\":[{\"o\":{\"r\":{\"t\":10}}},3],\"t\":{\"i\":{\"b\":5},\"u\":17}},\"r\":{\"a\":[{\".\":18,\"g\":21,\"s\":21,\"l\":{\".\":216}},29],\"b\":{\"e\":1},\"c\":0,\"d\":2,\"e\":{\"a\":{\"t\":5}},\"f\":{\"e\":{\"r\":1},\"r\":1},\"i\":{\"f\":[{\"i\":{\"c\":0}},23],\"n\":2,\"o\":23,\"t\":29,\"z\":3,\"a\":{\"l\":{\".\":0}}},\"l\":[{\"i\":{\"n\":{\"g\":{\".\":5}}}},9],\"n\":{\"o\":1},\"o\":{\"s\":17},\"p\":{\"e\":1,\"i\":1},\"s\":{\"e\":{\"r\":5}},\"t\":{\"e\":{\"s\":4},\"h\":{\"e\":3},\"i\":[{\"e\":1},17]},\"u\":23},\"s\":[{\"a\":{\"d\":19,\"n\":19,\"p\":1},\"c\":[{\"i\":3},8],\"e\":{\"a\":5,\"r\":{\".\":9}},\"i\":{\"a\":19,\"c\":23},\"l\":{\"i\":{\"n\":1}},\"p\":2,\"s\":{\"l\":4},\"t\":{\"e\":{\"r\":{\"e\":4}},\"r\":2},\"u\":[{\"r\":17},24]},25],\"t\":{\"a\":{\"b\":0,\"t\":23},\"e\":{\".\":18,\"l\":18,\"n\":[{\"i\":17},18]},\"i\":[{\"l\":{\"i\":{\"z\":5}},\"n\":{\"e\":23,\"g\":3},\"o\":{\"n\":{\"a\":7}},\"s\":21,\"z\":31},101],\"l\":34,\"o\":{\"f\":4,\"g\":5,\"m\":{\"a\":{\"t\":{\"i\":{\"c\":5}}}},\"n\":19,\"u\":21},\"s\":0},\"u\":[{\"m\":1},23],\"v\":74,\"x\":{\"u\":11},\"z\":{\"e\":1}},\"v\":{\"a\":[{\".\":32,\"b\":159,\"c\":{\"i\":{\"l\":5},\"u\":11},\"g\":[{\"e\":1,\"u\":{\"e\":{\"r\":170}}},0],\"l\":{\"i\":{\"e\":4},\"o\":5,\"u\":15},\"m\":{\"o\":4},\"n\":{\"i\":{\"z\":4}},\"p\":{\"i\":4},\"r\":{\"i\":{\"e\":{\"d\":5}}},\"t\":[{\"i\":{\"v\":29}},27],\"u\":{\"d\":{\"e\":{\"v\":54}}}},41],\"e\":{\".\":18,\"d\":18,\"g\":11,\"l\":{\".\":23,\"l\":{\"i\":11},\"o\":1,\"y\":21},\"n\":{\"o\":{\"m\":11},\"u\":{\"e\":19}},\"r\":{\"d\":21,\"e\":{\".\":32,\"l\":[{\"y\":{\".\":41}},21],\"n\":[{\"c\":5},23],\"s\":21,\"i\":{\"g\":324}},\"i\":{\"e\":11},\"m\":{\"i\":{\"n\":36}},\"s\":{\"e\":27},\"t\":{\"h\":11}},\"s\":[{\".\":18,\"t\":{\"e\":0,\"i\":{\"t\":{\"e\":15}}}},99],\"t\":{\"e\":[{\"r\":11},1],\"y\":1}},\"i\":{\"a\":{\"l\":{\"i\":4},\"n\":32},\"d\":{\"e\":{\".\":32,\"d\":32,\"n\":47,\"s\":32},\"i\":32},\"f\":23,\"g\":{\"n\":4},\"k\":0,\"l\":[{\"i\":{\"t\":32,\"z\":127}},25],\"n\":[{\"a\":26,\"c\":24,\"d\":5,\"g\":18},29],\"o\":{\"l\":11,\"r\":73,\"u\":2},\"p\":1,\"r\":{\"o\":4},\"s\":{\"i\":{\"t\":11},\"o\":3,\"u\":3},\"t\":{\"i\":18,\"r\":11,\"y\":18},\"v\":[{\"i\":{\"p\":{\"a\":{\"r\":325}}}},27]},\"o\":{\".\":32,\"i\":[{\"r\":{\"d\":{\"u\":323}},\"c\":{\"e\":{\"p\":213}}},0],\"k\":27,\"l\":{\"a\":1,\"e\":19,\"t\":32,\"v\":27},\"m\":{\"i\":5},\"r\":{\"a\":{\"b\":5},\"i\":17,\"y\":1},\"t\":{\"a\":1,\"e\":{\"e\":18}}},\"v\":26,\"y\":21},\"w\":{\"a\":{\"b\":{\"l\":19},\"c\":25,\"g\":{\"e\":{\"r\":4},\"o\":5},\"i\":{\"t\":6},\"l\":{\".\":19},\"m\":0,\"r\":{\"t\":0},\"s\":{\"t\":[{\"e\":{\"w\":{\"a\":326}}},0]},\"t\":{\"e\":2},\"v\":{\"e\":{\"r\":4,\"g\":327}}},\"b\":29,\"e\":{\"a\":{\"r\":{\"i\":{\"e\":5}},\"t\":{\"h\":54}},\"d\":{\"n\":0},\"e\":{\"t\":12,\"v\":5,\"k\":{\"n\":137}},\"l\":{\"l\":0},\"r\":29,\"s\":{\"t\":12},\"v\":23},\"h\":{\"i\":0},\"i\":[{\"l\":[{\"l\":{\"i\":{\"n\":6}}},8],\"n\":{\"d\":{\"e\":0},\"g\":0},\"r\":0,\"s\":{\"e\":27},\"t\":{\"h\":12},\"z\":5,\"d\":{\"e\":{\"s\":{\"p\":6}}}},9],\"k\":21,\"l\":{\"e\":{\"s\":1},\"i\":{\"n\":3}},\"n\":{\"o\":21},\"o\":[{\"m\":15,\"v\":{\"e\":{\"n\":4}},\"k\":{\"e\":{\"n\":85}}},160],\"p\":19,\"r\":{\"a\":[{\"p\":{\"a\":{\"r\":{\"o\":12}}}},0],\"i\":[{\"t\":{\"a\":36,\"e\":{\"r\":{\".\":183}}}},0]},\"s\":{\"h\":23,\"l\":1,\"p\":{\"e\":1},\"t\":60},\"t\":18,\"y\":1,\"c\":23},\"x\":{\"a\":[{\"c\":{\"e\":5},\"g\":{\"o\":21},\"m\":11,\"p\":21,\"s\":5},29],\"c\":161,\"e\":[{\"c\":{\"u\":{\"t\":{\"o\":1}}},\"d\":24,\"r\":{\"i\":0,\"o\":4}},29],\"h\":[{\"i\":[{\"l\":6},8],\"u\":0},29],\"i\":[{\"a\":4,\"c\":4,\"d\":{\"i\":4},\"m\":{\"e\":21,\"i\":{\"z\":4}}},23],\"o\":[{\"b\":21},23],\"p\":[{\"a\":{\"n\":{\"d\":17}},\"e\":{\"c\":{\"t\":{\"o\":10}},\"d\":11}},23],\"t\":[{\"i\":23},74],\"u\":[{\"a\":3},29],\"x\":1,\"q\":[{\"u\":{\"i\":{\"s\":54}}},29]},\"y\":{\"a\":{\"c\":19,\"r\":110,\"t\":19},\"b\":29,\"c\":[{\"e\":[{\"r\":4},24],\"h\":[{\"e\":[{\"d\":264},0]},23],\"o\":{\"m\":17,\"t\":17}},29],\"d\":29,\"e\":{\"e\":19,\"r\":[{\"f\":21},29],\"s\":[{\"t\":{\"e\":{\"r\":{\"y\":328}}}},0],\"t\":1},\"g\":{\"i\":19},\"h\":47,\"i\":29,\"l\":{\"a\":23,\"l\":{\"a\":{\"b\":{\"l\":6}}},\"o\":23,\"u\":19},\"m\":{\"b\":{\"o\":{\"l\":7}},\"e\":[{\"t\":{\"r\":{\"y\":20}}},0],\"p\":{\"a\":12}},\"n\":{\"c\":{\"h\":{\"r\":3}},\"d\":4,\"g\":4,\"i\":{\"c\":4},\"x\":32},\"o\":[{\"d\":4,\"g\":33,\"m\":0,\"n\":{\"e\":{\"t\":4},\"s\":21},\"s\":21},72],\"p\":{\"e\":{\"d\":21,\"r\":6},\"i\":3,\"o\":[{\"c\":21},23],\"t\":{\"a\":9},\"u\":19},\"r\":{\"a\":{\"m\":5},\"i\":{\"a\":4},\"o\":23,\"r\":1},\"s\":{\"c\":1,\"e\":161,\"i\":{\"c\":{\"a\":3},\"o\":3,\"s\":27},\"o\":21,\"s\":0,\"t\":[{\"a\":3,\"r\":{\"o\":29}},2],\"u\":{\"r\":17}},\"t\":{\"h\":{\"i\":{\"n\":23}},\"i\":{\"c\":3}},\"w\":29},\"z\":{\"a\":[{\"b\":79,\"r\":8},2],\"b\":18,\"e\":[{\"n\":1,\"p\":1,\"r\":[{\"o\":3},29],\"t\":0},25],\"i\":[{\"l\":21,\"s\":21,\"a\":{\"n\":{\".\":23}}},42],\"l\":32,\"m\":18,\"o\":[{\"m\":1,\"o\":{\"l\":4},\"p\":{\"h\":{\"r\":329}}},41],\"t\":{\"e\":0},\"z\":[{\"y\":21,\"w\":231},101]}}',\n [\n \"as-so-ciate\",\n \"as-so-ciates\",\n \"dec-li-na-tion\",\n \"oblig-a-tory\",\n \"phil-an-thropic\",\n \"present\",\n \"presents\",\n \"project\",\n \"projects\",\n \"reci-procity\",\n \"re-cog-ni-zance\",\n \"ref-or-ma-tion\",\n \"ret-ri-bu-tion\",\n \"ta-ble\"\n ]\n ];\n});\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\";\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 var findWidth = function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n };\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(findWidth);\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\" && activeFont.encoding === \"Identity-H\") {\r\n // when using unicode fonts, wordSpacePerLine does not apply\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n let backToStartX = 0;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : backToStartX;\r\n if (l < len - 1) {\r\n let spacing = scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n );\r\n let words = da[l].split(\" \");\r\n text.push([words[0] + \" \", newX, newY]);\r\n backToStartX = 0; // distance to reset back to the left\r\n for (let i = 1; i < words.length; i++) {\r\n let shiftAmount =\r\n (findWidth(words[i - 1] + \" \" + words[i]) -\r\n findWidth(words[i])) *\r\n scaleFactor +\r\n spacing;\r\n if (i == words.length - 1) text.push([words[i], shiftAmount, 0]);\r\n else text.push([words[i] + \" \", shiftAmount, 0]);\r\n backToStartX -= shiftAmount;\r\n }\r\n } else {\r\n text.push([da[l], newX, newY]);\r\n }\r\n }\r\n text.push([\"\", backToStartX, 0]);\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|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","/* 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 * 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","/**\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","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"},\"child\":[]}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"},\"child\":[]}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"},\"child\":[]}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"},\"child\":[]}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"},\"child\":[]}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"},\"child\":[]}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"},\"child\":[]}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"},\"child\":[]}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"},\"child\":[]}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"},\"child\":[]}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"},\"child\":[]}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"},\"child\":[]}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"},\"child\":[]}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"},\"child\":[]}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"},\"child\":[]}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"},\"child\":[]}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"},\"child\":[]}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"},\"child\":[]}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"},\"child\":[]}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"},\"child\":[]}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"},\"child\":[]}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"},\"child\":[]}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"},\"child\":[]}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"},\"child\":[]}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"},\"child\":[]}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"},\"child\":[]}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"},\"child\":[]}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"},\"child\":[]}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"},\"child\":[]}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"},\"child\":[]}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"},\"child\":[]}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"},\"child\":[]}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"},\"child\":[]}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"},\"child\":[]}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"},\"child\":[]}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"},\"child\":[]}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"},\"child\":[]}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"},\"child\":[]}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"},\"child\":[]}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"},\"child\":[]}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"},\"child\":[]}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"},\"child\":[]}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"},\"child\":[]}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"},\"child\":[]}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"},\"child\":[]}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"},\"child\":[]}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"},\"child\":[]}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"},\"child\":[]}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"},\"child\":[]}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"},\"child\":[]}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"},\"child\":[]}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"},\"child\":[]}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"},\"child\":[]}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"},\"child\":[]}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"},\"child\":[]}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"},\"child\":[]}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"},\"child\":[]}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"},\"child\":[]}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"},\"child\":[]}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"},\"child\":[]}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"},\"child\":[]}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"},\"child\":[]}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"},\"child\":[]}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"},\"child\":[]}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"},\"child\":[]}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"},\"child\":[]}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"},\"child\":[]}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"},\"child\":[]}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"},\"child\":[]}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"},\"child\":[]}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"},\"child\":[]}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"},\"child\":[]}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"},\"child\":[]}]})(props);\n};\nexport function FiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"},\"child\":[]}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"},\"child\":[]}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"},\"child\":[]}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zM11 11V7M16 11V7\"},\"child\":[]}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"},\"child\":[]}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"},\"child\":[]}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"},\"child\":[]}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"},\"child\":[]}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"},\"child\":[]}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"},\"child\":[]}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"},\"child\":[]}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"},\"child\":[]}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"},\"child\":[]}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"},\"child\":[]}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\n","import React, { useEffect, useState } from \"react\";\nimport { jsPDF } from \"jspdf\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { FiSettings } from \"react-icons/fi\";\nimport { AiOutlineExport } from \"react-icons/ai\";\nimport { RiLockPasswordLine, RiMailSendLine } from \"react-icons/ri\";\nimport Loader from \"../Loader\";\nimport axios from \"axios\";\nimport { toast } from \"react-toastify\";\nimport logo from \"../../assets/images/pdf_logo.png\";\nimport watermark from \"../../assets/images/pdf-watermark.jpg\";\nimport moment from \"moment\";\nimport { UserInfoState } from \"../../context/UserInformationContext\";\nimport Verify2fa from \"./Verify2fa\";\n\nconst GenericPdfDownloader = ({ rootElementId, invoiceData, isReady, loading, invoices, setIsGetUserInfo, disabledExport, isAllBrand }) => {\n\tconst { userInfo } = UserInfoState();\n\tconst [updateLoading, setUpdateLoading] = useState(false);\n\tconst [image, setImage] = useState(\"\");\n\tconst [twoFaSetting, setTwoFaSetting] = useState({\n\t\tisDisplayVerifyOtp: false,\n\t\tisEnableTwoFa: userInfo?.is2fa_enabled,\n\t\tverifiedOtp: false,\n\t\tisDisplayCancelButton: true\n\t});\n\n\tuseEffect(() => {\n\t\tif (twoFaSetting.verifiedOtp) {\n\t\t\tgeneratePDF(\"mail\");\n\t\t}\n\t}, [twoFaSetting.verifiedOtp]);\n\n\tuseEffect(() => {\n\t\tconst toDataURL = (url) =>\n\t\t\tfetch(url)\n\t\t\t\t.then((response) => response.blob())\n\t\t\t\t.then(\n\t\t\t\t\t(blob) =>\n\t\t\t\t\t\tnew Promise((resolve, reject) => {\n\t\t\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\t\t\treader.onloadend = () => resolve(reader.result);\n\t\t\t\t\t\t\treader.onerror = reject;\n\t\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\t})\n\t\t\t\t);\n\n\t\ttoDataURL(watermark).then((dataUrl) => {\n\t\t\tsetImage(dataUrl);\n\t\t});\n\t}, []);\n\n\tconst css = `\n @page {\n size: 21cm 29.7cm;\n margin: 0;\n }\n\n .text{\n color: #76654d;\n font-family: sans-serif;\n font-size: 10px;\n line-height: normal;\n }\n\n .col-6 {\n width: 50%;\n }\n\n .pdf_table,\n .pdf_table tr,\n .pdf_table tbody {\n width: 100%;\n padding: 0;\n margin: 0;\n border-collapse: collapse;\n }\n .text-right {\n text-align: right;\n }\n .text-center {\n text-align: center;\n }\n .v-top {\n vertical-align: top;\n }\n\n .float-right {\n float: right;\n }\n .float-left {\n float: left;\n }\n\n .pdf_table thead tr th {\n background: #e6e6e6;\n padding: 8px 10px;\n text-align:center\n }\n\n .pdf_table tbody {\n border-top: 1px solid #b3a79f;\n border-bottom: 1px solid #b3a79f;\n }\n\n .pdf_table tbody tr td {\n padding: 4px 10px;\n border-right: 1px solid #b3a79f;\n vertical-align: -webkit-baseline-middle;\n vertical-align: -moz-middle-with-baseline;\n line-height: 1;\n }\n\n .pdf_table tbody tr td:last-child {\n border-right: none;\n }\n\n // .pdf_table tbody tr:nth-child(even) td {\n // background: #e3e5e7;\n // }\n\n .border_bottom_table tbody {\n border: none;\n }\n\n .border_bottom_table tbody tr:nth-child(even) td {\n background: transparent;\n }\n\n .border_bottom_table tbody tr td {\n padding: 5px 10px;\n border-right: none;\n border-bottom: 1px solid #b3a79f;\n font-size: 11px;\n }\n\n\t\t.border_bottom_table tbody tr:last-child td{\n\t\t\tborder-bottom: none\n\t\t}\n\n .without_border_table tbody {\n border: none;\n }\n\n .without_border_table tbody tr:nth-child(even) td {\n background: transparent;\n }\n\n .without_border_table tbody tr td {\n border: none;\n }\n\n .link {\n text-decoration: none !important;\n color: #76654d;\n }\n\n .page_break {break-inside: avoid;page-break-inside: avoid;}\n\n .invoice_top_table tr td{\n padding: 3px 0 !important\n }\n\n .pdf_table_data_body tr{\n height: 20px;\n vertical-align: -moz-middle-with-baseline;\n }\n\n .pdf_table_data_header tr{\n height: 28px\n }\n\n .brand_info, .total_tr_footer {\n background-color: #76654d !important;\n }\n\n\t\t.brand_info td, .total_tr_footer td {\n\t\t\tcolor: #fff;\n }\n\n\t\t.currency_info{\n\t\t\tbackground: #e3e5e7;\n\t\t}\n\n\t\t.currency_info td {\n\t\t\ttext-shadow: 0 0 0px #74654e;\n\t\t}\n\n\t\t.game_type_info {\n\t\t\t// background: rgb(116 101 78 / 10%);\n\t\t\tbackground: rgb(227 229 231 / 40%)\n\t\t}\n\n\t\t.game_type_info td:first-child {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t.game_type_info td {\n\t\t\tfont-size: 9.5px;\n\t\t\tpadding-top: 5px !important;\n\t\t}\n\n .invoice_title{\n text-align: left;\n }\n .invoice_title h4{\n display: inline-block;\n padding: 4px 10px;\n border-left: 3px solid #76654d\n }\n .table_main{\n margin-bottom: 15px;\n padding-bottom: 10px;\n border-bottom: 2px solid rgb(116 101 78 / 75%);\n }\n .table_main:last-of-type {\n padding: 0;\n margin: 0;\n border: none;\n }\n\n .brand_name {\n text-align: left !important;\n }\n\n `;\n\n\tconst generatePDF = async (action = \"\") => {\n\t\tconst data = {\n\t\t\tuser_id: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.userid,\n\t\t\ttoken: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.token,\n\t\t\tinvoice_number: \"update\",\n\t\t\tpo_number: \"update\"\n\t\t};\n\n\t\tif (action === \"export\") {\n\t\t\tsetUpdateLoading(\"export\");\n\t\t\tawait axios({\n\t\t\t\turl: `${process.env.REACT_APP_LOGIN_API_DOMAIN}/api/updateuserinfo.php`,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tdata: data,\n\t\t\t\tmode: \"no-cors\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\t\t\t\"Access-Control-Allow-Methods\": \"POST\",\n\t\t\t\t\t\"Content-Type\": \"multipart/form-data\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t\t.then(async (res) => {\n\t\t\t\t\tif (res?.data === 1) {\n\t\t\t\t\t\t// setIsGetUserInfo((prev) => !prev);\n\t\t\t\t\t\ttoast.success(\"Exported Successfully\", {\n\t\t\t\t\t\t\ttheme: \"dark\",\n\t\t\t\t\t\t\tautoClose: 1500\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttoast.error(res?.data, { theme: \"dark\", autoClose: 1500 });\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\ttoast.error(err, { theme: \"dark\", autoClose: 1500 });\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tsetUpdateLoading(false);\n\t\t\t\t});\n\t\t}\n\n\t\tconst pdf = new jsPDF(\"p\", \"pt\");\n\n\t\t// Remove custom added trs\n\t\tvar elementsToRemove = document.querySelectorAll(\".customTr\");\n\t\tvar elementsArray = Array.from(elementsToRemove);\n\t\telementsArray.forEach(function (element) {\n\t\t\telement.parentNode.removeChild(element);\n\t\t});\n\n\t\tconst html = document.getElementById(rootElementId)?.innerHTML;\n\t\tlet htmlEl = document.getElementById(rootElementId);\n\t\tlet htmlElements = document.querySelectorAll(`#${rootElementId} *`);\n\n\t\tconst pageHeight = pdf.getPageInfo(1).pageContext.mediaBox.topRightY;\n\n\t\tlet tableOffsetTop = 0;\n\t\tlet page = 1;\n\t\tlet increasedHeight = 0;\n\t\tlet remainingHeight = 0;\n\n\t\thtmlElements.forEach(function (element) {\n\t\t\t// Check if the element has the class \"margin\"\n\t\t\tif ([\"TD\", \"TH\", \"THEAD\", \"TBODY\", \"STYLE\"].includes(element.tagName)) {\n\t\t\t\treturn;\n\t\t\t} else if (element.tagName === \"TABLE\") {\n\t\t\t\ttableOffsetTop = element.offsetTop;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\telement.classList.contains(\"top_invoices_border\") ||\n\t\t\t\telement.classList.contains(\"pdf_table\") ||\n\t\t\t\telement.classList.contains(\"pdf_body\") ||\n\t\t\t\telement.classList.contains(\"customTr\") ||\n\t\t\t\telement.classList.contains(\"bottom_invoices_border\") ||\n\t\t\t\telement.classList.contains(\"invoice_table_total_content\") ||\n\t\t\t\telement.classList.contains(\"page_break\") ||\n\t\t\t\telement.classList.contains(\"exclude\")\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (element.classList.contains(\"customTr\")) {\n\t\t\t\telement.parentNode.removeChild(element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst elementTop = element.tagName === \"TR\" ? tableOffsetTop + element.offsetTop : element.offsetTop;\n\t\t\tconst calculateRemainingHeight = pageHeight * page - increasedHeight - 30 - elementTop - element.offsetHeight;\n\n\t\t\tif (calculateRemainingHeight < 0) {\n\t\t\t\tremainingHeight = Math.ceil(Math.abs(pageHeight * page - increasedHeight - elementTop));\n\t\t\t\tincreasedHeight += remainingHeight;\n\n\t\t\t\tif (element.tagName === \"TR\") {\n\t\t\t\t\tlet newTr = document.createElement(\"tr\");\n\t\t\t\t\tnewTr.classList.add(\"customTr\");\n\t\t\t\t\tnewTr.style.height = Math.ceil(Math.abs(remainingHeight)) + \"px\";\n\t\t\t\t\telement.parentNode.insertBefore(newTr, /*element.nextSibling*/ element);\n\t\t\t\t} else {\n\t\t\t\t\telement.style.paddingTop = remainingHeight + 2 + \"px\";\n\t\t\t\t}\n\n\t\t\t\tpdf.addImage(image, \"JPEG\", 0, 0, 600, 842);\n\t\t\t\tpdf.addPage();\n\t\t\t\tpage += 1;\n\t\t\t}\n\t\t});\n\n\t\tconst billingEmail = invoiceData?.selectedCasino?.billing_email || \"\";\n\t\tconst filename = `${invoiceData?.company_name?.replaceAll(\" \", \"\")}_${moment(invoiceData?.billing_period).format(\"MMMM\")}_${moment(invoiceData?.billing_period).format(\"YYYY\")}`;\n\t\tlet pdfData = \"\";\n\t\tawait pdf.html(document.getElementById(rootElementId)?.innerHTML, {\n\t\t\tcallback: () => {\n\t\t\t\tif (action === \"export\") {\n\t\t\t\t\tpdf.save(filename);\n\t\t\t\t}\n\t\t\t\tpdfData = pdf.output(\"datauristring\");\n\t\t\t},\n\t\t\t// autoPaging: \"text\",\n\t\t\tmargin: [30, 30, 30, 30]\n\t\t});\n\n\t\tpdf.addImage(image, \"JPEG\", 0, 0, 600, 842);\n\n\t\tif (action === \"mail\") {\n\t\t\tif (twoFaSetting.isEnableTwoFa && !twoFaSetting.verifiedOtp) {\n\t\t\t\tsetTwoFaSetting((prev) => ({ ...prev, isDisplayVerifyOtp: true }));\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tsetUpdateLoading(\"mail\");\n\t\t\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\t\t\tawait axios\n\t\t\t\t\t.post(`${process.env.REACT_APP_API_DOMAIN}/mails/send-invoice?token=${casino?.casino_token}&casino=${casino?.casino_key}`, {\n\t\t\t\t\t\tbillingPeriod: moment(invoiceData?.billing_period).format(\"MMMM YYYY\"),\n\t\t\t\t\t\tbillingEmail,\n\t\t\t\t\t\tfilename,\n\t\t\t\t\t\tpdfData\n\t\t\t\t\t})\n\t\t\t\t\t.then(async (res) => {\n\t\t\t\t\t\tif (res.data.status === 200) {\n\t\t\t\t\t\t\ttoast.success(\"Invoice mail sent..\", {\n\t\t\t\t\t\t\t\ttheme: \"dark\",\n\t\t\t\t\t\t\t\tautoClose: 7000\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (res.data.status === 500) {\n\t\t\t\t\t\t\ttoast.error(res?.data?.message, {\n\t\t\t\t\t\t\t\ttheme: \"dark\",\n\t\t\t\t\t\t\t\tautoClose: 7000\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttoast.error(res?.data, { theme: \"dark\", autoClose: 7000 });\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\ttoast.error(err, { theme: \"dark\", autoClose: 7000 });\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tsetUpdateLoading(false);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\thtmlEl.innerHTML = html;\n\t};\n\n\tlet formatNum = new Intl.NumberFormat(\"en-US\", {\n\t\tminimumFractionDigits: 2,\n\t\tmaximumFractionDigits: 2,\n\t\tround: \"round\"\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\tGenerate PDF {loading ? : }\n\t\t\t\t\n\t\t\t\t generatePDF(\"export\")}\n\t\t\t\t\tdisabled={disabledExport}\n\t\t\t\t>\n\t\t\t\t\tExport PDF {updateLoading === \"export\" ? : }\n\t\t\t\t\n\t\t\t\t{JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.userid === 1 && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tuserInfo?.is2fa_enabled && !twoFaSetting.verifiedOtp\n\t\t\t\t\t\t\t\t? setTwoFaSetting((prev) => ({\n\t\t\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t\t\tisDisplayVerifyOtp: true\n\t\t\t\t\t\t\t\t }))\n\t\t\t\t\t\t\t\t: generatePDF(\"mail\")\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={disabledExport}\n\t\t\t\t\t>\n\t\t\t\t\t\tSend Mail {updateLoading === \"mail\" ? : userInfo?.is2fa_enabled && !twoFaSetting.verifiedOtp ? : }\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t{twoFaSetting.isDisplayVerifyOtp && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{isReady && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInvoice From\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.company_info}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInvoice\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBilling Period\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.billing_period}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInvoice #\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.invoice_number}
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tInvoice Date\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(invoiceData?.invoiceDate).format(\"DD/MM/YYYY\")}
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDue Date\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(invoiceData?.dueDate).format(\"DD/MM/YYYY\")}
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBill To\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.bill_to}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{invoices?.map((invoice, iIndex) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProduct\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDebit\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCredit\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGGR\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGGR {invoice?.invoiceCurrency}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFee UG {invoice?.invoiceCurrency}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBonus Ded.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// isAllBrand ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{[...invoice?.data]?.map((brand, bIndex) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst brandJsx = [];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbrandJsx.push(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{brand.casino}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* brandJsx.push( */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbrand.currencies.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbrandJsx.push(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGaming License Fee {/*item?.royaltiesKey*/} ({item?.currency})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.loses)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.wins)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.GGR)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.finalGGRWithCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.royalties)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.bonusDeduction)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.entries(item.gameTypes).map(([type, typeData]) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst bonusDeductionGames = Object.entries(typeData?.games)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter(([_, game]) => game.bonusDeduction !== 0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?.map(([key, value]) => ({ ...value, gameId: key }));\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbrandJsx.push(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{type} {typeData?.applicableRoyalties || 0}%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.loses)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.wins)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.GGR)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{typeData?.finalGGRWithCurrency !== typeData?.GGRWithCurrency ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.GGRWithCurrency)} {formatNum.format(typeData?.finalGGRWithCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatNum.format(typeData?.GGRWithCurrency)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.royalties)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.bonusDeduction)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbonusDeductionGames?.map((bonusDeduGame, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbrandJsx.push(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{bonusDeduGame?.gameId}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(bonusDeduGame?.loses)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(bonusDeduGame?.wins)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(bonusDeduGame?.GGR)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item?.finalGGRWithCurrency !== item?.GGRWithCurrency ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(item?.GGRWithCurrency)} {formatNum.format(item?.finalGGRWithCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatNum.format(bonusDeduGame?.GGRWithCurrency)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(typeData?.royaltiesCurrentCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(bonusDeduGame?.royalties)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(bonusDeduGame?.bonusDeduction)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* ); */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn brandJsx;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotal\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.loses)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.wins)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.GGR)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.GGRWithCurrency) !== formatNum.format(invoice?.finalGGRWithCurrency) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.GGRWithCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.finalGGRWithCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.royalties)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatNum.format(invoice?.bonusDeduction)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tExchange rate \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.exchange_rate_domain}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* --------------------------------------------------- */}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSub-Total\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.invoiceCurrency} {formatNum.format(invoice?.royaltiesWithoutBonusDeduct)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSubtract from GGR\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.invoiceCurrency} {formatNum.format(invoice?.subtractFromGGR)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBonus deduct\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.invoiceCurrency} {formatNum.format(invoice?.bonusDeduction)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBonus deduct (in %)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.bonusDeductionKey}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPayments/Credits\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.invoiceCurrency} 0.00\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotal\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{invoice?.invoiceCurrency} {formatNum.format(invoice?.netRoyalties)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{invoiceData?.bank_account_or_wallet}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default GenericPdfDownloader;\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
    \n * \n * \n * \n *
    \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
    \n * \n * \n * \n *
    \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n } else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n } else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField as FieldRefs, action)) {\n break;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default (): Subject => {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: T, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract,\n ReturnType | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) =>\n (!fieldReference || !fieldReference.validate) &&\n !!(\n (isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find(\n (validateFunction: Validate) =>\n validateFunction.constructor.name === ASYNC_FUNCTION,\n ))\n );\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState: ReadFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (!props.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (\n !props.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)\n ) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !props.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (!props.disabled) {\n const disabledField = !!(\n get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled\n );\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(\n !disabledField && get(_formState.dirtyFields, name)\n );\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n _updateIsValidating(name);\n return result;\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n\n const fieldError = await validateField(\n field as Field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) =>\n !props.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name as string;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (props.mode === 'onBlur') {\n if (isBlurEvent) {\n _updateValid();\n }\n } else {\n _updateValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n _updateIsValidating([name], true);\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n value,\n }) => {\n if ((isBoolean(disabled) && _state.mount) || !!disabled) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) || isBoolean(props.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : props.disabled,\n name,\n value: options.value,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || props.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TFieldValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import React, { useEffect, useState } from \"react\";\nimport moment from \"moment\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineCasino, MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { LiaFileInvoiceSolid } from \"react-icons/lia\";\nimport GenericPdfDownloader from \"../../components/Common/GenericPdfdownloader\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport axios from \"axios\";\nimport Loader from \"../../components/Loader\";\nimport DropDown from \"../../components/Common/DropDown\";\nimport InputField from \"../../components/Common/InputField\";\nimport { toast } from \"react-toastify\";\nimport Select from \"react-select\";\nimport { monthList } from \"../../utils/monthList\";\n\nconst monthOptions = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\nconst sortByKey = (a, b) => {\n\tif (a.casino < b.casino) {\n\t\treturn -1;\n\t}\n\tif (a.casino > b.casino) {\n\t\treturn 1;\n\t}\n\treturn 0;\n};\n\nconst customStyles = {\n\toption: (provided, state) => ({\n\t\t...provided,\n\t\tborderColor: state.isFocused ? \"blue\" : \"gray\",\n\t\tbackgroundColor: state.isFocused ? \"#8651d6\" : \" #212121\",\n\t\t\":hover\": {\n\t\t\tbackgroundColor: state.isSelected ? \"#8651d6\" : \"#8651d6\"\n\t\t},\n\t\t\":active\": {\n\t\t\tbackgroundColor: state.isSelected ? \"#212121\" : \"#212121\"\n\t\t}\n\t})\n};\n\nconst Invoices = () => {\n\tconst [casinoInfo, setCasinoInfo] = useState();\n\tconst [selectedCasino, setSelectedCasino] = useState();\n\tconst [yearOptions, setYearOptions] = useState([]);\n\tconst [selectedYear, setSelectedYear] = useState(new Date().getFullYear());\n\tconst [selectedMonth, setSelectedMonth] = useState(moment().subtract(1, \"month\").format(\"M\"));\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [invoiceData, setInvoiceData] = useState();\n\tconst [userInfo, setUserInfo] = useState();\n\tconst [formData, setFormData] = useState();\n\tconst [isReady, setIsReady] = useState(false);\n\tconst [loading, setLoading] = useState(false);\n\tconst [isGetUserInfo, setIsGetUserInfo] = useState(false);\n\tconst [initial, setInitial] = useState(true);\n\tconst [width, setWidth] = useState();\n\tconst [disabledExport, setDisabledExport] = useState(true);\n\tconst [dropDown, setDropdown] = useState(false);\n\tconst [yearDropDown, setYearDropdown] = useState(false);\n\tconst [brandDropDown, setBrandDropdown] = useState(false);\n\tconst [isAllBrand, setIsAllBrand] = useState(false);\n\tconst [invoiceDate, setInvoiceDate] = useState(moment().month(selectedMonth).startOf(\"month\"));\n\tconst [dueDate, setDueDate] = useState(moment().add(15, \"days\"));\n\tconst [brands, setBrands] = useState([]);\n\n\tconst methods = useForm({\n\t\tdefaultValues: {\n\t\t\tbilling_period: `${moment().subtract(1, \"month\").format(\"MMM\")} ${selectedYear}`,\n\t\t\texchange_rate_domain: \"www.xe.com\",\n\t\t\tsubtract_from_ggr: 0\n\t\t}\n\t});\n\n\tconst {\n\t\tformState: { errors }\n\t} = methods;\n\n\tconst brandIdentifier = (casino_brand_id) => {\n\t\tconsole.log(casino_brand_id);\n\t\treturn brands.filter((brand) => brand?.brand_id === casino_brand_id);\n\t};\n\n\tuseEffect(() => {\n\t\tconst monthDigit = moment().subtract(1, \"month\").format(\"M\");\n\t\tif (monthDigit == 12) {\n\t\t\tsetSelectedYear(+moment().subtract(1, \"year\").format(\"YYYY\"));\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst monthAbvr = moment().month(selectedMonth).subtract(1, \"month\").format(\"MMM\");\n\n\t\tmethods.setValue(\"billing_period\", `${monthAbvr} ${selectedYear}`);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [selectedMonth, selectedYear]);\n\n\tuseEffect(() => {\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${process.env.REACT_APP_LOGIN_API_DOMAIN}/api/userinfomation.php`,\n\t\t\t\t{\n\t\t\t\t\tuserid: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.userid,\n\t\t\t\t\ttoken: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.token\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\t\t\t\t\"Access-Control-Allow-Methods\": \"POST\",\n\t\t\t\t\t\t\"Content-Type\": \"multipart/form-data\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response?.data?.status) {\n\t\t\t\t\tif (response?.status === 200) {\n\t\t\t\t\t\tconst userId = JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.userid;\n\t\t\t\t\t\tconst data = {\n\t\t\t\t\t\t\t...response.data,\n\t\t\t\t\t\t\tuserId: userId\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst parseData = { ...data, casino_information: data?.casino_information?.map((casino) => ({ ...casino, ...(casino?.test_players && { test_players: JSON.parse(casino?.test_players) }) })) };\n\t\t\t\t\t\tlocalStorage.setItem(\"userInformation\", JSON.stringify(parseData));\n\t\t\t\t\t\tsetInitial(false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttoast.error(response?.data?.error, { theme: \"dark\" });\n\t\t\t\t\tlocalStorage?.removeItem(\"user-authorization-token\");\n\t\t\t\t\tlocalStorage?.removeItem(\"currentCasino\");\n\t\t\t\t\tlocalStorage?.removeItem(\"userInformation\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\t// setGetUserLoading(false);\n\t\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${process.env.REACT_APP_LOGIN_API_DOMAIN}/api/userinfomation.php`,\n\t\t\t\t{\n\t\t\t\t\tuserid: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.userid,\n\t\t\t\t\ttoken: JSON.parse(localStorage.getItem(\"user-authorization-token\"))?.token\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\t\t\t\t\"Access-Control-Allow-Methods\": \"POST\",\n\t\t\t\t\t\t\"Content-Type\": \"multipart/form-data\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response?.data?.status) {\n\t\t\t\t\tif (response?.status === 200) {\n\t\t\t\t\t\tmethods.setValue(\"invoice_number\", Number(response?.data?.invoice_number));\n\t\t\t\t\t\tmethods.setValue(\"po_number\", Number(response?.data?.po_number));\n\n\t\t\t\t\t\tconst brands = [];\n\t\t\t\t\t\tconst allResponseCasinos = response?.data?.casino_information;\n\t\t\t\t\t\tallResponseCasinos.forEach((element) => {\n\t\t\t\t\t\t\tconst indexOf = element?.casino_name?.indexOf(\"-\");\n\t\t\t\t\t\t\t// console.log(true, element?.casino_name, element?.casino_name?.substring(0, indexOf)?.trim(), indexOf);\n\t\t\t\t\t\t\tconst brandName = indexOf === -1 ? element?.casino_name?.trim() : element?.casino_name?.substring(0, indexOf)?.trim();\n\t\t\t\t\t\t\tconst brandIndex = brands.findIndex((brand) => brand?.name === brandName);\n\n\t\t\t\t\t\t\tif (brandIndex === -1) {\n\t\t\t\t\t\t\t\tbrands.push({\n\t\t\t\t\t\t\t\t\tname: brandName,\n\t\t\t\t\t\t\t\t\tcasinos: [element]\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbrands[brandIndex].casinos.push(element);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tlet responseData = response?.data;\n\t\t\t\t\t\tresponseData.brandInfo = brands;\n\n\t\t\t\t\t\tsetUserInfo(responseData);\n\t\t\t\t\t\tsetBrands(response.data?.casino_brands || []);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttoast.error(response?.data?.error, { theme: \"dark\" });\n\t\t\t\t\t\tlocalStorage?.removeItem(\"user-authorization-token\");\n\t\t\t\t\t\tlocalStorage?.removeItem(\"currentCasino\");\n\t\t\t\t\t\tlocalStorage?.removeItem(\"userInformation\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\t// setGetUserLoading(false);\n\t\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isGetUserInfo]);\n\n\tuseEffect(() => {\n\t\t// setCasinoInfo(userInfo?.casino_information);\n\t\tsetCasinoInfo(userInfo?.brandInfo);\n\t\t// setSelectedCasino(userInfo?.casino_information[0]);\n\t\t// console.log(brands?.[0]);\n\t\tsetSelectedCasino(brands?.[0]);\n\t}, [userInfo, brands]);\n\n\t// useEffect(() => {\n\n\t// }, [brands])\n\n\tuseEffect(() => {\n\t\tlet arr = [];\n\t\tfor (let i = 2021; i <= new Date().getFullYear(); i++) {\n\t\t\tarr.push(i);\n\t\t}\n\t\tsetYearOptions(arr);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (casinoInfo?.length > 0) {\n\t\t\tvar casinoDetails = localStorage?.getItem(\"currentCasino\");\n\t\t\tif (casinoDetails === null) {\n\t\t\t\tlocalStorage.setItem(\"currentCasino\", JSON.stringify(casinoInfo[0]));\n\t\t\t\tcasinoDetails = localStorage?.getItem(\"currentCasino\");\n\t\t\t}\n\t\t}\n\t}, [casinoInfo, initial]);\n\n\tuseEffect(() => {\n\t\t// console.log(\"selectedCasino\",selectedCasino);\n\t\t// methods.setValue(\"company_name\", selectedCasino?.casino_name);\n\t\t// methods.setValue(\"company_info\", selectedCasino?.invoice_from);\n\t\t// methods.setValue(\"bill_to\", selectedCasino?.bill_to);\n\t\t// methods.setValue(\"bank_account_or_wallet\", selectedCasino?.bank_account_or_wallet_address);\n\t\tmethods.setValue(\"company_name\", selectedCasino?.brand);\n\t\tmethods.setValue(\"company_info\", selectedCasino?.invoice_from);\n\t\tmethods.setValue(\"bill_to\", selectedCasino?.bill_to);\n\t\tmethods.setValue(\"bank_account_or_wallet\", selectedCasino?.bank_account_or_wallet_address);\n\n\t\tconst invoice_date = moment().year(selectedYear).month(selectedMonth).startOf(\"month\");\n\t\tsetInvoiceDate(invoice_date);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [selectedCasino, initial, selectedMonth, selectedYear]);\n\n\tuseEffect(() => {\n\t\tconst due_date = moment(invoiceDate).add(selectedCasino?.due_date, \"days\");\n\t\tsetDueDate(due_date);\n\t\t// console.log(true, due_date)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [invoiceDate]);\n\n\tconst handleFormSubmit = async (values) => {\n\t\t// console.log(values, \"values\");\n\t\tconst brandCasinos = userInfo?.casino_information.filter((casino) => casino?.casino_brand_id === selectedCasino?.brand_id);\n\t\tconst casinosWithBrand = brandCasinos?.map((casino) => ({\n\t\t\t...casino,\n\t\t\t...(casino?.test_players && { test_players: JSON.parse(casino?.test_players) }),\n\t\t\t...selectedCasino\n\t\t}));\n\t\tsetErrorMessage(\"\");\n\t\tif (!dueDate) {\n\t\t\tsetErrorMessage(\"Due Date is required\");\n\t\t\treturn;\n\t\t}\n\t\tsetIsReady(false);\n\t\tsetFormData(values);\n\t\tsetLoading(true);\n\t\tlet devPoint = /*window.location.href.includes(\"//playerreporting.com\") || window.location.href.includes(\"localhost\") ? \"\" : */ \"dev-\";\n\n\t\tdevPoint = \"staging-\";\n\t\tif (window.location.href.includes(\"staging.playerreporting.com\")) {\n\t\t}\n\t\tconsole.log(casinosWithBrand, \"casinosWithBrand\");\n\n\t\tawait axios\n\t\t\t.post(`${process.env.REACT_APP_API_DOMAIN}/games/reports/${devPoint}monthly-game-summaries`, {\n\t\t\t\t// casinos: isAllBrand\n\t\t\t\t// ? JSON.parse(localStorage.getItem(\"userInformation\"))?.casino_information\n\t\t\t\t// : [selectedCasino],\n\t\t\t\t// casinos: selectedCasino?.casinos,\n\t\t\t\t// casinos: brandCasinos,\n\t\t\t\tcasinos: casinosWithBrand,\n\t\t\t\tstart: `${selectedYear}-${selectedMonth.toString().padStart(2, \"0\")}-01T00:00:00Z`,\n\t\t\t\tend: `${selectedYear}-${selectedMonth.toString().padStart(2, \"0\")}-${new Date(selectedYear, selectedMonth, 0).getDate().toString().padStart(2, \"0\")}T23:59:59Z`,\n\t\t\t\tsubtract_from_ggr: parseFloat(values?.subtract_from_ggr || 0)\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data?.status === 200) {\n\t\t\t\t\tif (response.data?.data?.length > 0) {\n\t\t\t\t\t\tsetIsReady(true);\n\t\t\t\t\t\tsetDisabledExport(false);\n\t\t\t\t\t\tconst resInvoiceData = response.data?.data;\n\t\t\t\t\t\t// console.log(true, resInvoiceData);\n\n\t\t\t\t\t\tresponse.data?.data.map((data) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\t\tdata: data.data?.sort(sortByKey)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tresInvoiceData[0].isAllBrand = isAllBrand;\n\t\t\t\t\t\tconsole.log(resInvoiceData, \"resInvoiceData\");\n\t\t\t\t\t\tsetInvoiceData(resInvoiceData);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetDisabledExport(true);\n\t\t\t\t\t\tsetErrorMessage(\"No Data Available\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetDisabledExport(true);\n\t\t\t\t\tsetErrorMessage(response.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t\tsetDisabledExport(true);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tsetWidth(window.innerWidth);\n\t\tconst handleResize = () => {\n\t\t\tsetWidth(window.innerWidth);\n\t\t};\n\n\t\twindow.addEventListener(\"resize\", handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\n\t\t};\n\t}, []);\n\n\t// useEffect(() => {\n\t// setSelectedCasino(JSON.parse(localStorage.getItem(\"currentCasino\")));\n\t// }, []);\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedMonth(index + 1 > 9 ? index + 1 : `0${index + 1}`);\n\t\t\t\t\t\t\t\t\t\t\t\t\tmethods.setValue(\"billing_period\", monthOptions[index]);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{/* \n \n width <= 991 && setDropdown((prev) => !prev)\n }\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() =>\n width >= 991 && setDropdown(false)\n }>\n {monthOptions[selectedMonth - 1]}\n \n \n \n \n\n
      \n {monthOptions?.map((month, index) => (\n {\n setSelectedMonth(\n index + 1 > 9\n ? index + 1\n : `0${index + 1}`\n );\n methods.setValue(\n \"billing_period\",\n monthOptions[index]\n );\n }}>\n {month}\n \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedYear(data);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{/* \n \n width <= 991 && setYearDropdown((prev) => !prev)\n }\n onMouseEnter={() =>\n width >= 991 && setYearDropdown(true)\n }\n onMouseLeave={() =>\n width >= 991 && setYearDropdown(false)\n }>\n {selectedYear}\n \n \n \n \n\n
      \n {yearOptions?.map((year, index) => (\n setSelectedYear(year)}>\n {year}\n \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {\n setSelectedCasino(data);\n // methods.setValue(\"company_name\");\n }}\n /> */}\n\t\t\t\t\t\t\t\t{/* {\n setSelectedCasino(data);\n // methods.setValue(\"company_name\");\n }}\n /> */}\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t// console.log(data)\n\t\t\t\t\t\t\t\t\t\tsetSelectedCasino(data);\n\t\t\t\t\t\t\t\t\t\t// console.log(brands.filter(brand => brand?.brand_id === data.brand_id));\n\t\t\t\t\t\t\t\t\t\t// handleChange(\n\t\t\t\t\t\t\t\t\t\t// index,\n\t\t\t\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\t\t\t\t// target: {\n\t\t\t\t\t\t\t\t\t\t// value: data.brand_id || \"\",\n\t\t\t\t\t\t\t\t\t\t// name: \"casino_brand_id\",\n\t\t\t\t\t\t\t\t\t\t// },\n\t\t\t\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t\t\t\t// );\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/*
    \n setIsAllBrand((prev) => !prev)}\n />\n \n
    */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/*

    Invoice

    */}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName=\"form_input\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Company Name\"\n\t\t\t\t\t\t\t\t\tname=\"company_name\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tvalidationSchema={{\n\t\t\t\t\t\t\t\t\t\trequired: \"Company Name is required\"\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.company_name?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tname=\"bill_to\"\n\t\t\t\t\t\t\t\t\tid=\"bill_to\"\n\t\t\t\t\t\t\t\t\tclassName=\"form_input big_textarea\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Bill To\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\t// validationSchema={{\n\t\t\t\t\t\t\t\t\t// required: \"Bill To is required\",\n\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.bill_to?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tname=\"bank_account_or_wallet\"\n\t\t\t\t\t\t\t\t\tclassName=\"form_input big_textarea\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Bank Account or Wallet\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\t// validationSchema={{\n\t\t\t\t\t\t\t\t\t// required: \"Bank Account or Wallet is required\",\n\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.bank_account_or_wallet?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Invoice Number\"\n\t\t\t\t\t\t\t\t\tname=\"invoice_number\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tvalidationSchema={{\n\t\t\t\t\t\t\t\t\t\trequired: \"Invoice Number is required\"\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.invoice_number?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (event.type === \"apply\") {\n\t\t\t\t\t\t\t\t\t\t\t\tsetInvoiceDate(picker?.endDate);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!invoiceDate &&

    Invoice Date is required

    }\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (event.type === \"apply\") {\n\t\t\t\t\t\t\t\t\t\t\t\tsetDueDate(picker?.endDate);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{errors?.due_date &&

    {errors?.due_date?.message}

    }\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Exchange Rate Domain\"\n\t\t\t\t\t\t\t\t\tname=\"exchange_rate_domain\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tvalidationSchema={{\n\t\t\t\t\t\t\t\t\t\trequired: \"Exchange rate domain is required\"\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.exchange_rate_domain?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Subtract from GGR\"\n\t\t\t\t\t\t\t\t\tname=\"subtract_from_ggr\"\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.subtract_from_ggr?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn { value: item, label: item };\n\t\t\t\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyles={customStyles}\n\t\t\t\t\t\t\t\t\toptions={monthList}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Billing Period\"\n\t\t\t\t\t\t\t\t\tname=\"billing_period\"\n\t\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tvalidationSchema={{\n\t\t\t\t\t\t\t\t\t\trequired: \"Please select month\"\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.billing_period?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Enter P.O.Number\"\n\t\t\t\t\t\t\t\t\tname=\"po_number\"\n\t\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t\t\tregister={methods.register}\n\t\t\t\t\t\t\t\t\tvalidationSchema={{\n\t\t\t\t\t\t\t\t\t\trequired: \"P.O.Number is required\"\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\terrorMessage={errors?.po_number?.message}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{errorMessage &&

    {errorMessage}

    }\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {console.log(false, ...invoiceData)} */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default Invoices;\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
    \n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
    \n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n\n React.useEffect(() => {\n if (_formControl.current) {\n _formControl.current.watch = _formControl.current.watch.bind({});\n }\n }, [formState]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport Loader from \"../Loader\";\nimport moment from \"moment\";\nimport axios from \"axios\";\n\nconst CasinoChart = ({ startDate, endDate }) => {\n const [chartDate, setChartDate] = useState();\n const [casinoChartData, setCasinoChartData] = useState();\n const [recordType, setRecordType] = useState();\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n // render chart transaction\n const getChartData = async () => {\n setErrorMessage(\"\");\n setLoading(true);\n const casino = JSON.parse(localStorage.getItem(\"currentCasino\"));\n const monthArray = [];\n const chartMonthArray = [];\n\n await axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/chart?token=${casino?.casino_token}&casino=${casino?.casino_key}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z`\n )\n .then((response) => {\n if (response.data.status === 200) {\n const data = response.data.response.chartData;\n if (data?.length === 0) {\n setErrorMessage(\"There are no records to display\");\n }\n\n data.forEach((item) => {\n monthArray.push(\n moment(new Date(item.day)).format(\n response.data.response.recordType === \"months\" ? \"MMM-YYYY\" : \"DD-MMM-YYYY\"\n )\n );\n chartMonthArray.push(item.ggr);\n });\n\n setRecordType(response.data.response.recordType);\n setChartDate(response.data.response.daysOrMonths);\n setCasinoChartData(response.data.response.currencyWiseData);\n } else {\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n if (error.response) {\n setErrorMessage(error.response?.data?.message);\n } else {\n setErrorMessage(error.message);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getChartData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate]);\n\n const dashboardChartOptions = {\n chart: {\n height: 350,\n type: \"line\",\n zoom: {\n enabled: false,\n },\n toolbar: {\n show: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: 3,\n curve: \"smooth\",\n },\n title: {\n align: \"center\",\n style: {\n color: \"#FEB019\",\n },\n },\n xaxis: {\n categories: chartDate ? chartDate : [],\n labels: {\n style: {\n colors: \"#008FFB\",\n },\n },\n },\n yaxis: [\n {\n labels: {\n formatter: (value) => {\n return value?.toFixed(2);\n },\n style: {\n colors: \"#fff\",\n },\n },\n },\n ],\n tooltip: {\n theme: \"dark\",\n followCursor: true,\n },\n legend: {\n position: \"top\",\n labels: {\n colors: \"#fff\",\n },\n markers: {\n offsetX: -4,\n offsetY: -1,\n },\n itemMargin: {\n horizontal: 10,\n },\n },\n };\n\n const series = casinoChartData ? casinoChartData : [];\n\n return (\n
    \n
    \n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n <>\n
    {`Report by ${\n recordType ? recordType.charAt(0).toUpperCase() + recordType.slice(1) : \"Month\"\n } - All Currencies`}
    \n \n \n )}\n {loading && }\n
    \n
    \n );\n};\n\nexport default CasinoChart;\n","export const formatNum = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n round: 'round'\n});","import React, { useEffect, useState } from \"react\";\nimport Loader from \"../Loader\";\nimport { Row, Col } from \"react-bootstrap\";\nimport { formatNum } from \"../../utils\";\nimport axios from \"axios\";\n\nconst Revenue = ({ currency, startDate, endDate }) => {\n const [loading, setLoading] = useState(false);\n const [revenueData, setRevenueData] = useState([]);\n const [responseCurrency, setResponseCurrency] = useState();\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n // render Revenue By Period\n const getRevenueData = async () => {\n setLoading(true);\n const casino = JSON.parse(localStorage.getItem(\"currentCasino\"));\n\n await axios\n .get(\n `${\n process.env.REACT_APP_API_DOMAIN\n }/reports/transactions/dashboard/revenue?token=${\n casino.casino_token\n }&casino=${casino.casino_key}¤cy=${\n currency === \"All\" ? \"\" : currency\n }&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z`\n )\n .then((response) => {\n if (response.data.status === 200) {\n setRevenueData(response.data.response);\n setResponseCurrency(response.data?.currency);\n } else {\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n if (error.response) {\n setErrorMessage(error.response?.data?.message);\n } else {\n setErrorMessage(error.message);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getRevenueData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, startDate, endDate]);\n\n return (\n <>\n
    \n \n \n
    \n {/*

    revenue by period

    */}\n
    \n
    \n \n
    \n\n
    \n
    \n \n {errorMessage && (\n

    \n {errorMessage}\n

    \n )}\n {revenueData.map((data, index) => {\n const { tag, ggr, totalAmount } = data;\n return (\n \n
    \n
    {tag}
    \n\n
    {responseCurrency}
    \n\n

    \n GGR {`${formatNum.format(ggr)}`}\n

    \n

    \n {totalAmount\n ? `Total Amt. ${formatNum.format(totalAmount)}`\n : `0.00`}\n

    \n
    \n \n );\n })}\n
    \n {loading && }\n
    \n
    \n
    \n \n );\n};\n\nexport default Revenue;\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FcAbout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M37,40H11l-6,6V12c0-3.3,2.7-6,6-6h26c3.3,0,6,2.7,6,6v22C43,37.3,40.3,40,37,40z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"20\",\"width\":\"4\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"15\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcAcceptDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#43A047\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#DCEDC8\",\"points\":\"42.5,33.3 36.8,39 34.1,36.3 32,38.5 36.8,43.3 44.6,35.5\"},\"child\":[]}]})(props);\n};\nexport function FcAddColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M30,5H18c-2.2,0-4,1.8-4,4v30c0,2.2,1.8,4,4,4h12c2.2,0,4-1.8,4-4V9C34,6.8,32.2,5,30,5z M18,39V9h12l0,30 H18z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#43A047\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"32\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"36\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcAddDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#43A047\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"32\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"36\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcAddImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8CBCD6\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v26C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B3DDF5\",\"cx\":\"35\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9AC9E3\",\"points\":\"20,16 9,32 31,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B3DDF5\",\"points\":\"31,22 23,32 39,32\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#43A047\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"32\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"36\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcAddRow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M43,30V18c0-2.2-1.8-4-4-4H9c-2.2,0-4,1.8-4,4v12c0,2.2,1.8,4,4,4h30C41.2,34,43,32.2,43,30z M9,18h30v12 L9,30V18z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#43A047\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"36\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"32\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#673AB7\",\"d\":\"M38,44H12V4h26c2.2,0,4,1.8,4,4v32C42,42.2,40.2,44,38,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#311B92\",\"d\":\"M10,4h2v40h-2c-2.2,0-4-1.8-4-4V8C6,5.8,7.8,4,10,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M36,24.2c-0.1,4.8-3.1,6.9-5.3,6.7c-0.6-0.1-2.1-0.1-2.9-1.6c-0.8,1-1.8,1.6-3.1,1.6c-2.6,0-3.3-2.5-3.4-3.1 c-0.1-0.7-0.2-1.4-0.1-2.2c0.1-1,1.1-6.5,5.7-6.5c2.2,0,3.5,1.1,3.7,1.3L30,27.2c0,0.3-0.2,1.6,1.1,1.6c2.1,0,2.4-3.9,2.4-4.6 c0.1-1.2,0.3-8.2-7-8.2c-6.9,0-7.9,7.4-8,9.2c-0.5,8.5,6,8.5,7.2,8.5c1.7,0,3.7-0.7,3.9-0.8l0.4,2c-0.3,0.2-2,1.1-4.4,1.1 c-2.2,0-10.1-0.4-9.8-10.8C16.1,23.1,17.4,14,26.6,14C35.8,14,36,22.1,36,24.2z M24.1,25.5c-0.1,1,0,1.8,0.2,2.3 c0.2,0.5,0.6,0.8,1.2,0.8c0.1,0,0.3,0,0.4-0.1c0.2-0.1,0.3-0.1,0.5-0.3c0.2-0.1,0.3-0.3,0.5-0.6c0.2-0.2,0.3-0.6,0.4-1l0.5-5.4 c-0.2-0.1-0.5-0.1-0.7-0.1c-0.5,0-0.9,0.1-1.2,0.3c-0.3,0.2-0.6,0.5-0.9,0.8c-0.2,0.4-0.4,0.8-0.6,1.3S24.2,24.8,24.1,25.5z\"},\"child\":[]}]})(props);\n};\nexport function FcAdvance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"46.1,24 33,35 33,13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"10\",\"y\":\"20\",\"width\":\"4\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"20\",\"width\":\"4\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"20\",\"width\":\"4\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"20\",\"width\":\"14\",\"height\":\"8\"},\"child\":[]}]}]})(props);\n};\nexport function FcAdvertising (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#90CAF9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.4,33H15v-4h4l0.4,1.5C19.7,31.8,18.7,33,17.4,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M37,36c0,0-11.8-7-18-7V15c5.8,0,18-7,18-7V36z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#283593\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"22\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,19h-3v6h3c1.7,0,3-1.3,3-3S41.7,19,40,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.6,41.2c-0.9,0.6-2.5,1.2-4.6,1.4c-0.6,0.1-1.2-0.3-1.4-1L8.2,27.9c0,0,8.8-6.2,8.8,1.1 c0,5.5,1.5,8.4,2.2,9.5c0.5,0.7,0.5,1.6,0,2.3C19,41,18.8,41.1,18.6,41.2z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M9,29h10V15H9c-1.1,0-2,0.9-2,2v10C7,28.1,7.9,29,9,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#42A5F5\",\"d\":\"M38,38L38,38c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h0c1.1,0,2,0.9,2,2v28C40,37.1,39.1,38,38,38z\"},\"child\":[]}]})(props);\n};\nexport function FcAlarmClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.5,44.6l-4-4l2.1-2.1l4,4c0.6,0.6,0.6,1.5,0,2.1l0,0C40.1,45.1,39.1,45.1,38.5,44.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5,44.6l4-4l-2.1-2.1l-4,4c-0.6,0.6-0.6,1.5,0,2.1l0,0C7.9,45.1,8.9,45.1,9.5,44.6z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#C62828\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"20\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#eee\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"22.1\",\"transform\":\"matrix(-.707 -.707 .707 -.707 12.904 62.537)\",\"fill\":\"#E53935\",\"width\":\".8\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"11\",\"width\":\"2\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"26.1\",\"y\":\"22.7\",\"transform\":\"matrix(-.707 .707 -.707 -.707 65.787 27.25)\",\"width\":\"2.3\",\"height\":\"9.2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#C62828\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"1\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M44.4,16.2c2.5-3.5,2.1-8.4-1-11.5c-3.1-3.1-8-3.5-11.5-1L44.4,16.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.6,16.2c-2.5-3.5-2.1-8.4,1-11.5c3.1-3.1,8-3.5,11.5-1L3.6,16.2z\"},\"child\":[]}]}]})(props);\n};\nexport function FcAlphabeticalSortingAz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#546E7A\",\"points\":\"38,33 38,5 34,5 34,33 28,33 36,43 44,33\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.8,17.2h-5.3l-1.1,3H6.9L12.6,5h2.9l5.7,15.2h-3.2L16.8,17.2z M12.2,14.5H16l-1.9-5.7L12.2,14.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.4,40.5H20V43H8.4v-1.9L16,30.3H8.4v-2.5h11.4v1.7L12.4,40.5z\"},\"child\":[]}]}]})(props);\n};\nexport function FcAlphabeticalSortingZa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.8,40h-5.3l-1.1,3H6.9l5.7-15.2h2.9L21.1,43h-3.2L16.8,40z M12.2,37.3H16l-1.9-5.7L12.2,37.3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.4,17.7H20v2.5H8.4v-1.9L16,7.5H8.4V5h11.4v1.7L12.4,17.7z\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#546E7A\",\"points\":\"38,33 38,5 34,5 34,33 28,33 36,43 44,33\"},\"child\":[]}]})(props);\n};\nexport function FcAndroidOs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M12,29.001c0,1.104-0.896,2-2,2l0,0c-1.104,0-2-0.896-2-2v-9c0-1.104,0.896-2,2-2l0,0c1.104,0,2,0.896,2,2\\r\\n\\t\\tV29.001z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M40,29.001c0,1.104-0.896,2-2,2l0,0c-1.104,0-2-0.896-2-2v-9c0-1.104,0.896-2,2-2l0,0c1.104,0,2,0.896,2,2\\r\\n\\t\\tV29.001z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M22,40c0,1.104-0.896,2-2,2l0,0c-1.104,0-2-0.896-2-2v-9c0-1.104,0.896-2,2-2l0,0c1.104,0,2,0.896,2,2V40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M30,40c0,1.104-0.896,2-2,2l0,0c-1.104,0-2-0.896-2-2v-9c0-1.104,0.896-2,2-2l0,0c1.104,0,2,0.896,2,2V40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M14,18.001V33c0,1.104,0.896,2,2,2h16c1.104,0,2-0.896,2-2V18.001H14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M24,8c-6,0-9.655,3.645-10,8h20C33.654,11.645,30,8,24,8z M20,13.598c-0.552,0-1-0.448-1-1s0.448-1,1-1\\r\\n\\t\\ts1,0.448,1,1S20.552,13.598,20,13.598z M28,13.598c-0.553,0-1-0.448-1-1s0.447-1,1-1s1,0.448,1,1S28.553,13.598,28,13.598z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#7CB342\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"x1\":\"30\",\"y1\":\"7\",\"x2\":\"28.334\",\"y2\":\"9.499\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#7CB342\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"x1\":\"18\",\"y1\":\"7\",\"x2\":\"19.333\",\"y2\":\"9.082\"},\"child\":[]}]}]})(props);\n};\nexport function FcAnswers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#42A5F5\",\"points\":\"36,44 8,44 8,8 28,8 36,16\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,40 12,40 12,4 32,4 40,12\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,13 31,13 31,5.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1976D2\",\"d\":\"M23.4,29.9c0-0.2,0-0.4,0.1-0.6s0.2-0.3,0.3-0.5s0.3-0.2,0.5-0.3s0.4-0.1,0.6-0.1s0.5,0,0.7,0.1 s0.4,0.2,0.5,0.3s0.2,0.3,0.3,0.5s0.1,0.4,0.1,0.6s0,0.4-0.1,0.6s-0.2,0.3-0.3,0.5s-0.3,0.2-0.5,0.3s-0.4,0.1-0.7,0.1 s-0.5,0-0.6-0.1s-0.4-0.2-0.5-0.3s-0.2-0.3-0.3-0.5S23.4,30.1,23.4,29.9z M26.1,26.8h-2.3L23.4,17h3L26.1,26.8z\"},\"child\":[]}]})(props);\n};\nexport function FcApproval (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#8BC34A\",\"points\":\"24,3 28.7,6.6 34.5,5.8 36.7,11.3 42.2,13.5 41.4,19.3 45,24 41.4,28.7 42.2,34.5 36.7,36.7 34.5,42.2 28.7,41.4 24,45 19.3,41.4 13.5,42.2 11.3,36.7 5.8,34.5 6.6,28.7 3,24 6.6,19.3 5.8,13.5 11.3,11.3 13.5,5.8 19.3,6.6\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CCFF90\",\"points\":\"34.6,14.6 21,28.2 15.4,22.6 12.6,25.4 21,33.8 37.4,17.4\"},\"child\":[]}]})(props);\n};\nexport function FcApprove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#4CAF50\",\"points\":\"32.6,18.6 22.3,28.9 17.4,24 14.6,26.8 22.3,34.5 35.4,21.4\"},\"child\":[]}]})(props);\n};\nexport function FcAreaChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"42,37 6,37 6,25 16,10 30,17 42,6\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#00BCD4\",\"points\":\"42,42 6,42 6,32 16,24 30,26 42,17\"},\"child\":[]}]})(props);\n};\nexport function FcAssistant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M24,3C14.6,3,7,10.6,7,20c0,1.2,0,3.4,0,3.4L9,25v-3l21-9.8l9,9.8v3l2-1.6c0,0,0-2.1,0-3.4 C41,12,35.3,3,24,3z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"31\",\"cy\":\"26\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"26\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#757575\",\"d\":\"M43,24c-0.6,0-1,0.4-1,1v-7c0-8.8-7.2-16-16-16h-7c-0.6,0-1,0.4-1,1s0.4,1,1,1h7c7.7,0,14,6.3,14,14v10 c0,0.6,0.4,1,1,1s1-0.4,1-1v2c0,3.9-3.1,7-7,7H24c-0.6,0-1,0.4-1,1s0.4,1,1,1h11c5,0,9-4,9-9v-5C44,24.4,43.6,24,43,24z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M43,22h-1c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2h1c1.1,0,2-0.9,2-2v-4C45,22.9,44.1,22,43,22z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"38\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcAudioFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"204\",\"fill\":\"none\",\"width\":\"48\",\"height\":\"48\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"244,45 212,45 212,3 234,3 244,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"242.5,14 233,14 233,4.5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"227\",\"cy\":\"30\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"234,21 229,19 229,30 231,30 231,22.9 234,24\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,45 8,45 8,3 30,3 40,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,14 29,14 29,4.5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"23\",\"cy\":\"30\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,21 25,19 25,30 27,30 27,22.9 30,24\"},\"child\":[]}]}]})(props);\n};\nexport function FcAutomatic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M39,43H9c-2.2,0-4-1.8-4-4V9c0-2.2,1.8-4,4-4h30c2.2,0,4,1.8,4,4v30C43,41.2,41.2,43,39,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M33.6,25.4c0.1-0.4,0.1-0.9,0.1-1.4s0-0.9-0.1-1.4l2.8-2c0.3-0.2,0.4-0.6,0.2-0.9l-2.7-4.6 c-0.2-0.3-0.5-0.4-0.8-0.3L30,16.3c-0.7-0.6-1.5-1-2.4-1.4l-0.3-3.4c0-0.3-0.3-0.6-0.6-0.6h-5.3c-0.3,0-0.6,0.3-0.6,0.6L20.4,15 c-0.9,0.3-1.6,0.8-2.4,1.4l-3.1-1.4c-0.3-0.1-0.7,0-0.8,0.3l-2.7,4.6c-0.2,0.3-0.1,0.7,0.2,0.9l2.8,2c-0.1,0.4-0.1,0.9-0.1,1.4 s0,0.9,0.1,1.4l-2.8,2c-0.3,0.2-0.4,0.6-0.2,0.9l2.7,4.6c0.2,0.3,0.5,0.4,0.8,0.3l3.1-1.4c0.7,0.6,1.5,1,2.4,1.4l0.3,3.4 c0,0.3,0.3,0.6,0.6,0.6h5.3c0.3,0,0.6-0.3,0.6-0.6l0.3-3.4c0.9-0.3,1.6-0.8,2.4-1.4l3.1,1.4c0.3,0.1,0.7,0,0.8-0.3l2.7-4.6 c0.2-0.3,0.1-0.7-0.2-0.9L33.6,25.4z M24,29c-2.8,0-5-2.2-5-5c0-2.8,2.2-5,5-5c2.8,0,5,2.2,5,5C29,26.8,26.8,29,24,29z\"},\"child\":[]}]})(props);\n};\nexport function FcAutomotive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#F44336\",\"strokeWidth\":\"4\",\"strokeMiterlimit\":\"10\",\"d\":\"M7,20v-8c0-2.2,1.8-4,4-4h14c1.2,0,2.4,0.6,3.2,1.6 L35,18\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"35\",\"cy\":\"37\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"37\",\"r\":\"5\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M40.2,17L33,14H7c-1.2,0-2,0.8-2,2v10c0,1.2,0.8,2,2,2h1c0-2.8,2.2-5,5-5s5,2.2,5,5h12c0-2.8,2.2-5,5-5 s5,2.2,5,5h1c1.2,0,2-0.8,2-2v-5.2C43,19.2,41.8,17.6,40.2,17z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#546E7A\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"37\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"35\",\"cy\":\"37\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"37\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M30.4,39c-0.3-0.6-0.4-1.3-0.4-2s0.2-1.4,0.4-2H17.6c0.3,0.6,0.4,1.3,0.4,2s-0.2,1.4-0.4,2H30.4z\"},\"child\":[]}]}]})(props);\n};\nexport function FcBadDecision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"24\",\"fill\":\"#F44336\",\"width\":\"16\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"22\",\"width\":\"10\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"12\",\"width\":\"10\",\"height\":\"30\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"6\",\"width\":\"10\",\"height\":\"36\"},\"child\":[]}]}]})(props);\n};\nexport function FcBbc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M0,17v14h14V17H0z M34,17v14h14V17H34z M17,17v14h14V17H17z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M8.2,23.7c0,0,1.3-0.5,1.3-2c0,0,0.2-2.4-3-2.7H3v10h4c0,0,3.4,0,3.4-2.8C10.4,26.2,10.5,24.3,8.2,23.7z\\r\\n\\t M4.8,20.6h1.4c1.5,0.1,1.4,1.2,1.4,1.2c0,1.4-1.6,1.4-1.6,1.4H4.8V20.6z M6.7,27.5H4.8v-2.7h1.9c1.9,0,1.9,1.3,1.9,1.3\\r\\n\\tC8.5,27.5,6.7,27.5,6.7,27.5z M25.2,23.7c0,0,1.3-0.5,1.3-2c0,0,0.2-2.4-3-2.7H20v10h4c0,0,3.4,0,3.4-2.8\\r\\n\\tC27.4,26.2,27.5,24.3,25.2,23.7z M21.8,20.6h1.4c1.5,0.1,1.4,1.2,1.4,1.2c0,1.4-1.6,1.4-1.6,1.4h-1.2V20.6z M23.7,27.5h-1.9v-2.7\\r\\n\\th1.9c1.9,0,1.9,1.3,1.9,1.3C25.5,27.5,23.7,27.5,23.7,27.5z M45.3,28.1c0,0-2.9,1.8-6.3,0.4c0,0-2.9-1.1-3-4.5c0,0-0.1-3.5,3.7-4.7\\r\\n\\tc0,0,1-0.4,2.8-0.2c0,0,1.1,0.1,2.7,0.8v1.8c0,0-1.7-1.1-3.7-1.1c0,0-3.6-0.1-3.8,3.5c0,0-0.1,3.3,3.7,3.4c0,0,1.6,0.2,3.8-1.2\\r\\n\\tL45.3,28.1L45.3,28.1z\"},\"child\":[]}]})(props);\n};\nexport function FcBearish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#F44336\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"40\",\"y\":\"34\",\"width\":\"4\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"34\",\"y\":\"29\",\"width\":\"4\",\"height\":\"15\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"33\",\"width\":\"4\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"25\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"28\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"10\",\"y\":\"24\",\"width\":\"4\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"19\",\"width\":\"4\",\"height\":\"25\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#D32F2F\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"34,13.2 30,17.2 20,7.2 15,12.2 7.4,4.6 4.6,7.4 15,17.8 20,12.8 30,22.8 34,18.8 40.1,24.9 42.9,22.1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"44,26 35,26 44,17\"},\"child\":[]}]}]})(props);\n};\nexport function FcBinoculars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"16\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"16\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M46.7,25l-15.3,3H16.7L1.4,25l4.3-7.9c1.1-1.9,3.1-3.1,5.3-3.1h26.2c2.2,0,4.2,1.2,5.3,3.1L46.7,25z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"30\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"30\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"28\",\"r\":\"5\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#546E7A\",\"cx\":\"24\",\"cy\":\"28\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#a0f\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"30\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"30\",\"r\":\"7\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#CE93D8\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.7,27.7c-1-1.1-2.3-1.7-3.7-1.7s-2.8,0.6-3.7,1.7c-0.4,0.4-0.3,1,0.1,1.4c0.4,0.4,1,0.3,1.4-0.1 c1.2-1.3,3.3-1.3,4.5,0c0.2,0.2,0.5,0.3,0.7,0.3c0.2,0,0.5-0.1,0.7-0.3C42.1,28.7,42.1,28.1,41.7,27.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,26c-1.4,0-2.8,0.6-3.7,1.7c-0.4,0.4-0.3,1,0.1,1.4c0.4,0.4,1,0.3,1.4-0.1c1.2-1.3,3.3-1.3,4.5,0 c0.2,0.2,0.5,0.3,0.7,0.3c0.2,0,0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0.1-1.4C12.8,26.6,11.4,26,10,26z\"},\"child\":[]}]}]})(props);\n};\nexport function FcBiohazard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#00A344\",\"d\":\"M24,13c-7.2,0-13,5.8-13,13s5.8,13,13,13s13-5.8,13-13S31.2,13,24,13z M24,35c-5,0-9-4-9-9s4-9,9-9s9,4,9,9 S29,35,24,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#00C853\",\"d\":\"M8.5,25.4c4-2.2,9-1.1,11.5,2.5c0.1,0.1,0.2,0.1,0.3,0.1l1.2-0.7c0.1-0.1,0.2-0.2,0.1-0.3 c0-0.2-0.1-0.4-0.1-0.6c0,0,0,0,0,0c0-0.1,0-0.1,0-0.2c0,0,0,0,0,0c0-0.1,0-0.1,0-0.2c0,0,0,0,0,0c0-0.1,0-0.1,0-0.2l0,0 c0-0.1,0-0.1,0.1-0.2c0,0,0,0,0,0c0-0.1,0-0.1,0.1-0.2c0,0,0,0,0,0c0,0,0-0.1,0.1-0.1c0,0,0-0.1,0.1-0.1c0,0,0-0.1,0.1-0.1 c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0,0c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0,0c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0,0c0,0,0.1-0.1,0.1-0.1 c0,0,0,0,0,0c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0.1,0c0.2-0.1,0.4-0.2,0.5-0.2c0.1,0,0.2-0.1,0.2-0.3v-1.3c0-0.1-0.1-0.2-0.2-0.2 c-4.5-0.4-8-4.1-8-8.6c0-4.1,3-7.6,6.9-8.4c0.1,0,0.2-0.1,0.2-0.3V4.8c0-0.1-0.1-0.2-0.2-0.2C16.4,5.5,12,10.4,12,16.3 c0,1.3,0.2,2.6,0.6,3.8c-1.2,0.2-2.5,0.7-3.6,1.3c-5.2,3-7.3,9.2-5.2,14.5C3.9,36,4,36,4.1,36l0.3-0.2c0.1-0.1,0.2-0.2,0.1-0.3 C3.3,31.7,4.8,27.4,8.5,25.4L8.5,25.4z M39,21.4c-1.2-0.7-2.4-1.1-3.6-1.3c0.4-1.2,0.6-2.4,0.6-3.8c0-5.9-4.4-10.8-10.2-11.7 c-0.1,0-0.2,0.1-0.2,0.2v0.4c0,0.1,0.1,0.2,0.2,0.3c4,0.8,6.9,4.3,6.9,8.4c0,4.5-3.5,8.2-8,8.6c-0.1,0-0.2,0.1-0.2,0.2v1.3 c0,0.1,0.1,0.2,0.2,0.3c0.2,0.1,0.4,0.1,0.6,0.2c0,0,0,0,0,0c0,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0 c0.1,0.1,0.2,0.2,0.3,0.3c0,0,0,0,0,0c0,0,0.1,0.1,0.1,0.1c0,0,0,0,0,0c0,0,0.1,0.1,0.1,0.1c0,0,0,0.1,0,0.1c0,0,0,0.1,0,0.1 c0,0,0,0.1,0.1,0.1c0,0,0,0,0,0c0,0.1,0,0.1,0.1,0.2c0,0,0,0,0,0c0,0.1,0,0.1,0,0.2c0,0,0,0,0,0c0,0.1,0,0.1,0,0.2c0,0,0,0,0,0.1 c0,0,0,0.1,0,0.1c0,0,0,0,0,0.1c0,0.2,0,0.4-0.1,0.6c0,0.1,0,0.2,0.1,0.3l1.2,0.7c0.1,0.1,0.2,0,0.3-0.1c2.6-3.6,7.6-4.8,11.5-2.5 c3.6,2.1,5.2,6.3,3.9,10.1c0,0.1,0,0.2,0.1,0.3l0.3,0.2c0.1,0.1,0.2,0,0.3-0.1C46.3,30.5,44.2,24.3,39,21.4L39,21.4z M30.8,40.3 c-4-2.2-5.5-7.1-3.5-11.1c0.1-0.1,0-0.2-0.1-0.3L26,28.2c-0.1-0.1-0.2,0-0.3,0c-0.2,0.1-0.3,0.3-0.5,0.3c0,0,0,0,0,0 c-0.1,0-0.1,0.1-0.2,0.1c0,0,0,0,0,0c-0.1,0-0.1,0-0.2,0.1c0,0,0,0,0,0c-0.1,0-0.3,0.1-0.4,0.1c0,0,0,0,0,0c-0.1,0-0.1,0-0.2,0 c0,0,0,0-0.1,0c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c0,0,0,0-0.1,0c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0 c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0c-0.1,0-0.1,0-0.2-0.1c0,0,0,0,0,0c0,0-0.1,0-0.1-0.1c0,0,0,0-0.1,0c-0.2-0.1-0.3-0.2-0.5-0.3 c-0.1-0.1-0.2-0.1-0.3,0l-1.2,0.7c-0.1,0.1-0.1,0.2-0.1,0.3c1.9,4,0.4,8.8-3.5,11.1c-3.6,2.1-8.2,1.3-10.9-1.7 c-0.1-0.1-0.2-0.1-0.3-0.1l-0.3,0.2c-0.1,0.1-0.1,0.2-0.1,0.3c3.6,4.5,10.2,5.8,15.4,2.8c1.2-0.7,2.2-1.5,3-2.4 c0.8,0.9,1.8,1.8,3,2.4c5.2,3,11.7,1.6,15.4-2.8c0.1-0.1,0-0.2-0.1-0.3L42,38.5c-0.1-0.1-0.2,0-0.3,0.1C39,41.5,34.4,42.3,30.8,40.3 L30.8,40.3z\"},\"child\":[]}]})(props);\n};\nexport function FcBiomass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#9CCC65\",\"d\":\"M32,15V7H16v8L6.2,40c-0.6,1.5,0.5,3,2.1,3h31.5c1.6,0,2.6-1.6,2.1-3L32,15z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M32,9H16c-1.1,0-2-0.9-2-2v0c0-1.1,0.9-2,2-2h16c1.1,0,2,0.9,2,2v0C34,8.1,33.1,9,32,9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2E7D32\",\"d\":\"M28,30c0,4.4-4,8-4,8s-4-3.6-4-8s4-8,4-8S28,25.6,28,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#388E3C\",\"d\":\"M31.1,32.6c-2,4-7.1,5.4-7.1,5.4s-2-5,0-8.9s7.1-5.4,7.1-5.4S33.1,28.6,31.1,32.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#43A047\",\"d\":\"M16.9,32.6c2,4,7.1,5.4,7.1,5.4s2-5,0-8.9s-7.1-5.4-7.1-5.4S14.9,28.6,16.9,32.6z\"},\"child\":[]}]})(props);\n};\nexport function FcBiotech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#AD1457\",\"d\":\"M36,4c0,9.3-6,13.2-12.8,17.8C16.1,26.5,8,31.8,8,44h4c0-10.1,6.5-14.4,13.4-18.9C32.2,20.6,40,15.4,40,4 H36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#AD1457\",\"d\":\"M38,41H11c-0.6,0-1-0.4-1-1s0.4-1,1-1h27c0.6,0,1,0.4,1,1S38.6,41,38,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#AD1457\",\"d\":\"M36,37H12c-0.6,0-1-0.4-1-1s0.4-1,1-1h24c0.6,0,1,0.4,1,1S36.6,37,36,37z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#AD1457\",\"d\":\"M34,33H14c-0.6,0-1-0.4-1-1s0.4-1,1-1h20c0.6,0,1,0.4,1,1S34.6,33,34,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#AD1457\",\"d\":\"M29,29H19c-0.6,0-1-0.4-1-1s0.4-1,1-1h10c0.6,0,1,0.4,1,1S29.6,29,29,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M37,9H10C9.4,9,9,8.6,9,8s0.4-1,1-1h27c0.6,0,1,0.4,1,1S37.6,9,37,9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M36,13H12c-0.6,0-1-0.4-1-1s0.4-1,1-1h24c0.6,0,1,0.4,1,1S36.6,13,36,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M34,17H14c-0.6,0-1-0.4-1-1s0.4-1,1-1h20c0.6,0,1,0.4,1,1S34.6,17,34,17z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M29,21H19c-0.6,0-1-0.4-1-1s0.4-1,1-1h10c0.6,0,1,0.4,1,1S29.6,21,29,21z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M40,44h-4c0-10.1-6.5-14.4-13.4-18.9C15.8,20.6,8,15.4,8,4h4c0,9.3,6,13.2,12.8,17.8 C31.9,26.5,40,31.8,40,44z\"},\"child\":[]}]})(props);\n};\nexport function FcBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M37,43l-13-6l-13,6V9c0-2.2,1.8-4,4-4h18c2.2,0,4,1.8,4,4V43z\"},\"child\":[]}]})(props);\n};\nexport function FcBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M27,7h-6c-1.7,0-3,1.3-3,3v3h2v-3c0-0.6,0.4-1,1-1h6c0.6,0,1,0.4,1,1v3h2v-3C30,8.3,28.7,7,27,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E65100\",\"d\":\"M40,43H8c-2.2,0-4-1.8-4-4V15c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,41.2,42.2,43,40,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF6E40\",\"d\":\"M40,28H8c-2.2,0-4-1.8-4-4v-9c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v9C44,26.2,42.2,28,40,28z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M26,26h-4c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v2C27,25.6,26.6,26,26,26z\"},\"child\":[]}]})(props);\n};\nexport function FcBrokenLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5,27c-1.1,1.2-2.7,2-4.5,2h-3c-3.3,0-6-2.7-6-6s2.7-6,6-6h3c1.8,0,3.4,0.8,4.5,2h4.7 c-1.5-3.5-5.1-6-9.2-6h-3C4.5,13,0,17.5,0,23s4.5,10,10,10h3c4.1,0,7.6-2.5,9.2-6H17.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,13h-3c-4.1,0-7.6,2.5-9.2,6h4.7c1.1-1.2,2.7-2,4.5-2h3c3.3,0,6,2.7,6,6s-2.7,6-6,6h-3 c-1.8,0-3.4-0.8-4.5-2h-4.7c1.5,3.5,5.1,6,9.2,6h3c5.5,0,10-4.5,10-10S43.5,13,38,13z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19.5,4 16,6 22.1,14.1 23.4,13.3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"28.5,4 32,6 25.9,14.1 24.6,13.3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"28.5,44 32,42 25.9,33.9 24.6,34.7\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"19.5,44 16,42 22.1,33.9 23.4,34.7\"},\"child\":[]}]}]})(props);\n};\nexport function FcBullish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#4CAF50\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"40\",\"y\":\"21\",\"width\":\"4\",\"height\":\"23\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"34\",\"y\":\"28\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"23\",\"width\":\"4\",\"height\":\"21\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"29\",\"width\":\"4\",\"height\":\"15\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"32\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"10\",\"y\":\"30\",\"width\":\"4\",\"height\":\"14\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"34\",\"width\":\"4\",\"height\":\"10\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#388E3C\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"40.1,9.1 34,15.2 30,11.2 20,21.2 15,16.2 4.6,26.6 7.4,29.4 15,21.8 20,26.8 30,16.8 34,20.8 42.9,11.9\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"44,8 35,8 44,17\"},\"child\":[]}]}]})(props);\n};\nexport function FcBusinessContact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#673AB7\",\"d\":\"M40,7H8c-2.2,0-4,1.8-4,4v26c0,2.2,1.8,4,4,4h5v-1.3c-0.6-0.3-1-1-1-1.7c0-1.1,0.9-2,2-2s2,0.9,2,2 c0,0.7-0.4,1.4-1,1.7V41h18v-1.3c-0.6-0.3-1-1-1-1.7c0-1.1,0.9-2,2-2s2,0.9,2,2c0,0.7-0.4,1.4-1,1.7V41h5c2.2,0,4-1.8,4-4V11 C44,8.8,42.2,7,40,7z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"18\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M31,28c0,0-1.9-4-7-4c-5.1,0-7,4-7,4v2h14V28z\"},\"child\":[]}]}]})(props);\n};\nexport function FcBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#263238\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11,44H9c-0.6,0-1-0.4-1-1v-2h4v2C12,43.6,11.6,44,11,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,44h-2c-0.6,0-1-0.4-1-1v-2h4v2C40,43.6,39.6,44,39,44z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M27,7h-6c-1.7,0-3,1.3-3,3v3h2v-3c0-0.6,0.4-1,1-1h6c0.6,0,1,0.4,1,1v3h2v-3C30,8.3,28.7,7,27,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,43H8c-2.2,0-4-1.8-4-4V15c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,41.2,42.2,43,40,43z\"},\"child\":[]}]})(props);\n};\nexport function FcBusinessman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF9800\",\"points\":\"24,37 19,31 19,25 29,25 29,31\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M33,13c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,5,4,9,9,9s9-4,9-9C33,18.9,33,14.1,33,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M24,4c-6.1,0-10,4.9-10,11c0,0.8,0,2.3,0,2.3l2,1.7v-5l12-4l4,4v5l2-1.7c0,0,0-1.5,0-2.3c0-4-1-8-6-9l-1-2 H24z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"28\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#fff\",\"points\":\"24,43 19,31 24,32 29,31\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#D32F2F\",\"points\":\"23,35 22.3,39.5 24,43.5 25.7,39.5 25,35 26,34 24,32 22,34\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M29,31L29,31l-5,12l-5-12c0,0-11,2-11,13h32C40,33,29,31,29,31z\"},\"child\":[]}]})(props);\n};\nexport function FcBusinesswoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"15\",\"fill\":\"#BF360C\",\"width\":\"16\",\"height\":\"18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,44H8c0-11,11-13,11-13h10C29,31,40,33,40,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M24,37c-2.2,0-5-6-5-6v-6h10v6C29,31,26.2,37,24,37z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M33,14c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,5,4,9,9,9s9-4,9-9C33,19.9,33,15.1,33,14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M24,4C17.9,4,9,7.4,9,27.3l7,4.7V19l12-7l4,5v15l7-6c0-4-0.7-20-11-20l-1-2H24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M24,38c-4.4,0-5-7-5-7s2.5,4,5,4s5-4,5-4S28.4,38,24,38z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#784719\",\"cx\":\"28\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#784719\",\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FcButtingIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M24,3C12.4,3,3,12.4,3,24c0,11.6,9.4,21,21,21c0.3,0,0.7,0,1-0.1V3.1C24.7,3,24.3,3,24,3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M25,3.1v41.9c4.1-0.2,7.9-1.5,11-3.7V6.8C32.9,4.6,29.1,3.2,25,3.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M20.5,13C14.1,13.3,8.9,18.7,9,25.1c0,2.8,1,5.4,2.7,7.5c1.4,1.7,2.3,3.9,2.3,6.1v3.8c3,1.6,6.4,2.5,10,2.5 c0.3,0,0.7,0,1-0.1c0.7,0,1.3-0.1,2-0.2v-9.4c3.6-2.1,6-5.9,6-10.4C33,18.2,27.4,12.7,20.5,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M29,38.6L25,38v-9h8l-0.7,7C32.1,37.6,30.7,38.8,29,38.6z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFB74D\",\"points\":\"39,29 32,31 31,26 32,22\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#784719\",\"cx\":\"29.5\",\"cy\":\"25.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M21,12c-7.2,0-13,5.8-13,13c0,7.6,5.1,9,6,13l4-3v-8l5-2l1-4c3.2,0,6-3.9,6-6.1C27.9,13,24.4,12,21,12z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"19\",\"cy\":\"27\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M45,24c0-7.1-3.6-13.4-9-17.2v34.4C41.4,37.4,45,31.1,45,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M20,44.6c1.3,0.2,2.6,0.4,4,0.4c0.3,0,0.7,0,1-0.1c0.7,0,1.3-0.1,2-0.2v-6.5l-7-1V44.6z\"},\"child\":[]}]})(props);\n};\nexport function FcCableRelease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M34.9,29.1c-2.7-2.7-7.1-2.7-9.8,0l-4,4c-1.7,1.7-4.5,1.7-6.2,0c-1.7-1.7-1.7-4.5,0-6.2l4.5-4.5l-2.8-2.8 l-4.5,4.5c-3.3,3.3-3.3,8.6,0,11.8c3.3,3.3,8.6,3.3,11.8,0l4-4c1.2-1.1,3-1.1,4.2,0c1.1,1.2,1.1,3,0,4.2L27,41.2l2.8,2.8l5.1-5.1 C37.6,36.2,37.6,31.8,34.9,29.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0277BD\",\"d\":\"M16.1,22.9L16.1,22.9c-2.8-2.8-2.8-7.3,0-10l6.8-6.8c2.8-2.8,7.3-2.8,10,0l0,0c2.8,2.8,2.8,7.3,0,10 l-6.8,6.8C23.3,25.7,18.9,25.7,16.1,22.9z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B3E5FC\",\"cx\":\"28\",\"cy\":\"11\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#616161\",\"d\":\"M40,16H8v24c0,2.2,1.8,4,4,4h24c2.2,0,4-1.8,4-4V16z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M36,4H12C9.8,4,8,5.8,8,8v9h32V8C40,5.8,38.2,4,36,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9CCC65\",\"d\":\"M36,14H12c-0.6,0-1-0.4-1-1V8c0-0.6,0.4-1,1-1h24c0.6,0,1,0.4,1,1v5C37,13.6,36.6,14,36,14z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#33691E\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"33\",\"y\":\"10\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"29\",\"y\":\"10\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5252\",\"d\":\"M36,23h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C37,22.6,36.6,23,36,23z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#E0E0E0\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15,23h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C16,22.6,15.6,23,15,23z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22,23h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C23,22.6,22.6,23,22,23z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,23h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C30,22.6,29.6,23,29,23z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,29h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C16,28.6,15.6,29,15,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22,29h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C23,28.6,22.6,29,22,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,29h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C30,28.6,29.6,29,29,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,35h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C16,34.6,15.6,35,15,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22,35h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C23,34.6,22.6,35,22,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,35h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C30,34.6,29.6,35,29,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,41h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C16,40.6,15.6,41,15,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22,41h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C23,40.6,22.6,41,22,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,41h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C30,40.6,29.6,41,29,41z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#BDBDBD\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36,29h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C37,28.6,36.6,29,36,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M36,35h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C37,34.6,36.6,35,36,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M36,41h-3c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1h3c0.6,0,1,0.4,1,1v2C37,40.6,36.6,41,36,41z\"},\"child\":[]}]}]})(props);\n};\nexport function FcCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M5,38V14h38v24c0,2.2-1.8,4-4,4H9C6.8,42,5,40.2,5,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M43,10v6H5v-6c0-2.2,1.8-4,4-4h30C41.2,6,43,7.8,43,10z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B71C1C\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M33,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C35,3.9,34.1,3,33,3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C17,3.9,16.1,3,15,3z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"20\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"20\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"20\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"20\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"26\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"26\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"26\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"26\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"32\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"32\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"32\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"32\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcCallTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M39.2,8.4l-1.8,1.8c-6.3,6.5-5.4,22,0,27.6l1.8,1.8c0.5,0.5,1.3,0.5,1.8,0l3.6-3.7c0.5-0.5,0.5-1.3,0-1.8 l-3.4-3.4h-4.8c-1.3-1.3-1.3-12.1,0-13.4h4.8l3.3-3.4c0.5-0.5,0.5-1.3,0-1.8L41,8.4C40.5,7.9,39.7,7.9,39.2,8.4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M11.2,8.4l-1.8,1.8c-6.3,6.5-5.4,22,0,27.6l1.8,1.8c0.5,0.5,1.3,0.5,1.8,0l3.6-3.7c0.5-0.5,0.5-1.3,0-1.8 l-3.4-3.4H8.5c-1.3-1.3-1.3-12.1,0-13.4h4.8l3.3-3.4c0.5-0.5,0.5-1.3,0-1.8L13,8.4C12.5,7.9,11.7,7.9,11.2,8.4z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"25.3,18.6 30.7,24 25.3,29.4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"22\",\"width\":\"11\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcCallback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M26.4,33.9c0,0,4-2.6,4.8-3c0.8-0.4,1.7-0.6,2.2-0.2c0.8,0.5,7.5,4.9,8.1,5.3c0.6,0.4,0.8,1.5,0.1,2.6 c-0.8,1.1-4.3,5.5-5.8,5.4c-1.5,0-8.4,0.4-20.3-11.4C3.6,20.7,4,13.8,4,12.3c0-1.5,4.3-5.1,5.4-5.8c1.1-0.8,2.2-0.5,2.6,0.1 c0.4,0.6,4.8,7.3,5.3,8.1c0.3,0.5,0.2,1.4-0.2,2.2c-0.4,0.8-3,4.8-3,4.8s0.7,2.8,5,7.2C23.5,33.2,26.4,33.9,26.4,33.9z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35,9H25v4h10c1.1,0,2,0.9,2,2v10h4V15C41,11.7,38.3,9,35,9z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"28,16 21.3,11 28,6\"},\"child\":[]}]}]})(props);\n};\nexport function FcCamcorderPro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"8\",\"fill\":\"#37474F\",\"width\":\"10\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M27,8h-9.7c-1.5,0-2.8,0.8-3.5,2.1l-3.3,6L14,18l3.3-6H27v7.2h4V12C31,9.8,29.2,8,27,8z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M30,40H6c-2.2,0-4-1.8-4-4V20c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v16C34,38.2,32.2,40,30,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M38,35l5,5h3V18h-3l-5,5V35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M22,35H8c-1.1,0-2-0.9-2-2V23c0-1.1,0.9-2,2-2h14c1.1,0,2,0.9,2,2v10C24,34.1,23.1,35,22,35z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"34\",\"y\":\"23\",\"fill\":\"#455A64\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#263238\",\"d\":\"M41,13h-4c-0.6,0-1-0.4-1-1V8c0-0.6,0.4-1,1-1h4c1.7,0,3,1.3,3,3v0C44,11.7,42.7,13,41,13z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"23\",\"fill\":\"#03A9F4\",\"width\":\"14\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#4FC3F7\",\"points\":\"13.5,25.5 9,32 18,32\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B3E5FC\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"25.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17.5,27.6 14,32 21,32\"},\"child\":[]}]}]})(props);\n};\nexport function FcCamcorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M20,42H10c-2.2,0-4-1.8-4-4V15c0-5,4-9,9-9h0c5,0,9,4,9,9v23C24,40.2,22.2,42,20,42z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#455A64\",\"cx\":\"15\",\"cy\":\"15\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#42A5F5\",\"cx\":\"15\",\"cy\":\"15\",\"r\":\"5.2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M18.3,13c-0.8-0.9-2-1.5-3.3-1.5S12.6,12,11.7,13c-0.3,0.4-0.3,0.9,0.1,1.2c0.4,0.3,0.9,0.3,1.2-0.1 c1-1.2,2.9-1.2,3.9,0c0.2,0.2,0.4,0.3,0.7,0.3c0.2,0,0.4-0.1,0.6-0.2C18.6,13.9,18.6,13.3,18.3,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M40,31H28c-1.1,0-2-0.9-2-2V19c0-1.1,0.9-2,2-2h12c1.1,0,2,0.9,2,2v10C42,30.1,41.1,31,40,31z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"24\",\"y\":\"19\",\"fill\":\"#455A64\",\"width\":\"2\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"19\",\"fill\":\"#03A9F4\",\"width\":\"12\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#4FC3F7\",\"points\":\"33,22.2 29,28 37,28\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B3E5FC\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"37.5\",\"cy\":\"21.5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,24.2 33,28 39,28\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#455A64\",\"cx\":\"15\",\"cy\":\"35\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"15\",\"cy\":\"35\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcCameraAddon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#512DA8\",\"d\":\"M33.9,12.1H14.2L17.6,7c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,12.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8667C4\",\"d\":\"M14,11H8V9.2C8,8.5,8.5,8,9.2,8h3.6C13.5,8,14,8.5,14,9.2V11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#5E35B1\",\"d\":\"M40,42H8c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,40.2,42.2,42,40,42z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#512DA8\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B388FF\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C7A7FF\",\"d\":\"M28.8,23c-1.2-1.4-3-2.2-4.8-2.2s-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.2,24.4,29.3,23.5,28.8,23z\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#8667C4\",\"cx\":\"11\",\"cy\":\"13.5\",\"rx\":\"2\",\"ry\":\"1.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M48,33.8c0-1.3-1.1-2.4-2.4-2.4H42c-0.4,0-0.7-0.5-0.4-0.8c0.4-0.6,0.5-1.3,0.4-2.1 c-0.2-1.2-1.1-2.1-2.3-2.4C37.7,25.7,36,27.1,36,29c0,0.6,0.2,1.1,0.4,1.6c0.2,0.4,0,0.8-0.5,0.8h-3.6c-1.3,0-2.4,1.1-2.4,2.4V37 c0,0.4,0.5,0.7,0.8,0.4c0.6-0.4,1.3-0.5,2.1-0.4c1.2,0.2,2.1,1.1,2.4,2.3c0.4,1.9-1.1,3.6-2.9,3.6c-0.6,0-1.1-0.2-1.6-0.4 c-0.4-0.2-0.8,0-0.8,0.5v2.6c0,1.3,1.1,2.4,2.4,2.4h13.2c1.3,0,2.4-1.1,2.4-2.4V33.8z\"},\"child\":[]}]})(props);\n};\nexport function FcCameraIdentification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#512DA8\",\"d\":\"M33.9,12.1H14.2L17.6,7c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,12.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8667C4\",\"d\":\"M14,11H8V9.2C8,8.5,8.5,8,9.2,8h3.6C13.5,8,14,8.5,14,9.2V11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#5E35B1\",\"d\":\"M40,42H8c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,40.2,42.2,42,40,42z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#512DA8\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B388FF\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#616161\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"42.2\",\"y\":\"38.3\",\"transform\":\"matrix(.707 -.707 .707 .707 -18.002 43.46)\",\"width\":\"2.4\",\"height\":\"10.4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"35\",\"cy\":\"35\",\"r\":\"10\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"43.9\",\"y\":\"42.4\",\"transform\":\"matrix(.707 -.707 .707 .707 -18.709 45.167)\",\"fill\":\"#37474F\",\"width\":\"2.4\",\"height\":\"5.6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#64B5F6\",\"cx\":\"35\",\"cy\":\"35\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M39.3,31.4c-1.1-1.3-2.6-2-4.2-2s-3.2,0.7-4.2,2c-0.2,0.3-0.2,0.6,0.1,0.9c0.3,0.2,0.6,0.2,0.9-0.1 c0.8-1,2-1.5,3.3-1.5s2.5,0.6,3.3,1.5c0.1,0.1,0.3,0.2,0.5,0.2c0.1,0,0.3,0,0.4-0.1C39.5,32.1,39.5,31.7,39.3,31.4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C7A7FF\",\"d\":\"M29,23c-1.2-1.4-3-2.2-4.8-2.2c-1.8,0-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.4,24.4,29.5,23.5,29,23z\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#8667C4\",\"cx\":\"11\",\"cy\":\"13.5\",\"rx\":\"2\",\"ry\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#512DA8\",\"d\":\"M33.9,12.1H14.2L17.6,7c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,12.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8667C4\",\"d\":\"M14,11H8V9.2C8,8.5,8.5,8,9.2,8h3.6C13.5,8,14,8.5,14,9.2V11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#5E35B1\",\"d\":\"M40,42H8c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,40.2,42.2,42,40,42z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#512DA8\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B388FF\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C7A7FF\",\"d\":\"M29,23c-1.2-1.4-3-2.2-4.8-2.2c-1.8,0-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.4,24.4,29.5,23.5,29,23z\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#8667C4\",\"cx\":\"11\",\"cy\":\"13.5\",\"rx\":\"2\",\"ry\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcCancel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#D50000\",\"d\":\"M24,6C14.1,6,6,14.1,6,24s8.1,18,18,18s18-8.1,18-18S33.9,6,24,6z M24,10c3.1,0,6,1.1,8.4,2.8L12.8,32.4 C11.1,30,10,27.1,10,24C10,16.3,16.3,10,24,10z M24,38c-3.1,0-6-1.1-8.4-2.8l19.6-19.6C36.9,18,38,20.9,38,24C38,31.7,31.7,38,24,38 z\"},\"child\":[]}]})(props);\n};\nexport function FcCandleSticks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#546E7A\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"38\",\"y\":\"4\",\"width\":\"2\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"7\",\"width\":\"2\",\"height\":\"17\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"27\",\"width\":\"2\",\"height\":\"17\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"19\",\"width\":\"2\",\"height\":\"22\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M36,7h6c1.1,0,2,0.9,2,2v10c0,1.1-0.9,2-2,2h-6c-1.1,0-2-0.9-2-2V9C34,7.9,34.9,7,36,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M13,10h6c1.1,0,2,0.9,2,2v7c0,1.1-0.9,2-2,2h-6c-1.1,0-2-0.9-2-2v-7C11,10.9,11.9,10,13,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M6,30h6c1.1,0,2,0.9,2,2v7c0,1.1-0.9,2-2,2H6c-1.1,0-2-0.9-2-2v-7C4,30.9,4.9,30,6,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M26,22h6c1.1,0,2,0.9,2,2v12c0,1.1-0.9,2-2,2h-6c-1.1,0-2-0.9-2-2V24C24,22.9,24.9,22,26,22z\"},\"child\":[]}]})(props);\n};\nexport function FcCapacitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"y\":\"27\",\"width\":\"25\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"y\":\"17\",\"width\":\"25\",\"height\":\"4\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M46,35c1.1,0,2-0.9,2-2V15c0-1.1-0.9-2-2-2H27v22H46z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21,13c-1.1,0-2,0.9-2,2v18c0,1.1,0.9,2,2,2h2V13H21z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#303F9F\",\"d\":\"M25,33c1.1,0,2,0.9,2,2V13c0,1.1-0.9,2-2,2c-1.1,0-2-0.9-2-2v22C23,33.9,23.9,33,25,33z\"},\"child\":[]}]})(props);\n};\nexport function FcCdLogo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M17.814,18H20.2c0.5,0,0.8,0.4,0.8,0.8v16.4c0,0.399-0.4,0.8-0.8,0.8h-2.384c-0.4,0-0.8-0.4-0.8-0.8V18.8\\r\\n\\t\\tC16.916,18.3,17.314,18,17.814,18z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M14.2,11h-3.3c-0.5,0-0.9,0.403-0.9,0.807V17H2.2C1.6,17,1,17.605,1,18.21v16.58C1,35.396,1.6,36,2.2,36h12\\r\\n\\t\\tc0.4,0,0.8-0.305,0.8-0.809V11.807C15,11.403,14.7,11,14.2,11z M10,31.283c0,0.398-0.4,0.8-0.8,0.8H6.8c-0.4,0-0.8-0.399-0.8-0.8\\r\\n\\t\\tV21.8C6,21.4,6.3,21,6.8,21h2.4c0.5,0,0.8,0.4,0.8,0.8V31.283z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M33.2,25c0.5,0,0.8,0.6,0.8,0.8v9.4c0,0.399-0.422,0.8-0.8,0.8h-9.4c-0.425,0-0.8-0.4-0.8-0.8v-2.386\\r\\n\\t\\tc0-0.5,0.4-0.799,0.8-0.799L30,32v-3h-6.2c-0.331,0-0.8-0.4-0.8-0.801V18.8c0-0.5,0.4-0.8,0.8-0.8h9.4c0.399,0,0.8,0.4,0.8,0.8v2.4\\r\\n\\t\\tc0,0.3-0.266,0.8-0.8,0.8H27v3H33.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M48,28v7.2c0,0.399-0.4,0.8-0.801,0.8H36.8c-0.2,0-0.8-0.4-0.8-0.8V18.8c0-0.5,0.432-0.8,0.831-0.8H47.2\\r\\n\\t\\tc0,0,0.8,0,0.8,0.8V25h-4v-2.2c0,0,0.1-0.8-0.8-0.8h-2.4c-0.5,0-0.8,0.4-0.8,0.8v8.4c0,0.399,0.5,0.8,0.8,0.8h2.4\\r\\n\\t\\tc0.399,0,0.8-0.4,0.8-0.8V28H48z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#0D47A1\",\"points\":\"45.799,15.98 46.9,15.98 46.9,12.881 48,12.881 48,11.98 44.799,11.98 44.799,12.881 \\r\\n\\t\\t45.799,12.881 \\t\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0D47A1\",\"d\":\"M44.014,14.476h-1.143v0.095c0,0.382-0.096,0.573-0.572,0.573c-0.475,0-0.57-0.191-0.57-0.762v-0.668\\r\\n\\t\\tc0-0.572,0-0.762,0.57-0.762c0.381,0,0.572,0.095,0.572,0.477v0.095h1.047v-0.095c0-1.047-0.381-1.429-1.523-1.429h-0.287\\r\\n\\t\\tc-1.141,0-1.523,0.382-1.523,1.618v0.764c0,1.142,0.381,1.618,1.523,1.618h0.383c1.047,0,1.428-0.477,1.428-1.43v-0.095H44.014z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#0D47A1\",\"points\":\"29.516,12 28.717,14.9 27.816,12 26.217,12 26.217,16 27.316,16 27.316,13 28.115,16 29.217,16 \\r\\n\\t\\t30.115,13.1 30.115,16 31.115,16 31.115,12 \\t\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0D47A1\",\"d\":\"M38.713,12h-0.9h-0.898l-1.199,4h1.199l0.199-0.7h0.602h0.799l0.199,0.7h1.199L38.713,12z M37.914,14.5\\r\\n\\t\\th-0.4l0.4-1.7l0,0l0,0l0.398,1.7H37.914z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0D47A1\",\"d\":\"M33.92,12h-0.199H32.02v4h1.102v-1.1h0.6h0.199c1.102,0,1.5-0.4,1.5-1.4v-0.3C35.42,12.3,35.02,12,33.92,12\\r\\n\\t\\tz M34.32,13.6c0,0.4-0.1,0.5-0.4,0.5h-0.199h-0.6v-1.2h0.6h0.1c0.4,0,0.5,0.1,0.5,0.4V13.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0D47A1\",\"d\":\"M23.594,12h-0.286h-0.286c-1.143,0-1.523,0.382-1.523,1.618v0.762c0,1.144,0.381,1.62,1.523,1.62h0.286\\r\\n\\t\\th0.286c1.143,0,1.523-0.477,1.523-1.62v-0.762C25.117,12.382,24.737,12,23.594,12z M23.975,14.19c0,0.571,0,0.763-0.571,0.763\\r\\n\\t\\th-0.095h-0.095c-0.571,0-0.571-0.191-0.571-0.763v-0.572c0-0.57,0-0.762,0.571-0.762h0.095h0.095c0.571,0,0.571,0.191,0.571,0.762\\r\\n\\t\\tV14.19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0D47A1\",\"d\":\"M20.422,14.477h-1.144v0.095c0,0.382-0.095,0.571-0.571,0.571c-0.476,0-0.571-0.189-0.571-0.762v-0.666\\r\\n\\t\\tc0-0.573,0-0.762,0.571-0.762c0.381,0,0.571,0.095,0.571,0.475v0.096h1.048v-0.096c0-1.047-0.381-1.428-1.523-1.428h-0.286\\r\\n\\t\\tc-1.143,0-1.524,0.381-1.524,1.618v0.763c0,1.143,0.381,1.619,1.524,1.619h0.381c1.048,0,1.429-0.477,1.429-1.429v-0.095H20.422z\"},\"child\":[]}]}]})(props);\n};\nexport function FcCellPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M12,40V10h20c2.2,0,4,1.8,4,4v26c0,2.2-1.8,4-4,4H16C13.8,44,12,42.2,12,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4FC3F7\",\"d\":\"M32,13H16c-0.6,0-1,0.4-1,1v8c0,0.6,0.4,1,1,1h16c0.6,0,1-0.4,1-1v-8C33,13.4,32.6,13,32,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M19,30h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C20,29.6,19.6,30,19,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M25,30h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C26,29.6,25.6,30,25,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M31,30h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C32,29.6,31.6,30,31,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M19,35h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C20,34.6,19.6,35,19,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M25,35h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C26,34.6,25.6,35,25,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M31,35h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C32,34.6,31.6,35,31,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M19,40h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C20,39.6,19.6,40,19,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M25,40h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C26,39.6,25.6,40,25,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B3E5FC\",\"d\":\"M31,40h-2c-0.6,0-1-0.4-1-1v-1c0-0.6,0.4-1,1-1h2c0.6,0,1,0.4,1,1v1C32,39.6,31.6,40,31,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M16,10h-4V4c0-1.1,0.9-2,2-2h0c1.1,0,2,0.9,2,2V10z\"},\"child\":[]}]})(props);\n};\nexport function FcChargeBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#8BC34A\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFEB3B\",\"points\":\"30,24 24.5,24 26.7,13 18,26 23.5,26 21.3,37\"},\"child\":[]}]})(props);\n};\nexport function FcCheckmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#43A047\",\"points\":\"40.6,12.1 17,35.7 7.4,26.1 4.6,29 17,41.3 43.4,14.9\"},\"child\":[]}]})(props);\n};\nexport function FcCircuit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M6,10v28c0,2.2,1.8,4,4,4h28c2.2,0,4-1.8,4-4V10c0-2.2-1.8-4-4-4H10C7.8,6,6,7.8,6,10z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFC107\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.6,8l6,6c-0.4,0.6-0.6,1.3-0.6,2c0,2.2,1.8,4,4,4s4-1.8,4-4s-1.8-4-4-4c-0.7,0-1.4,0.2-2,0.6l-6-6 C7.4,6.9,6.9,7.4,6.6,8z M16,14.5c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5s-1.5-0.7-1.5-1.5S15.2,14.5,16,14.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4,40l-6-6c0.4-0.6,0.6-1.3,0.6-2c0-2.2-1.8-4-4-4s-4,1.8-4,4s1.8,4,4,4c0.7,0,1.4-0.2,2-0.6l6,6 C40.6,41.1,41.1,40.6,41.4,40z M32,33.5c-0.8,0-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5S32.8,33.5,32,33.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,36c2.2,0,4-1.8,4-4c0-0.7-0.2-1.4-0.6-2L30,19.4c0.6,0.4,1.3,0.6,2,0.6c2.2,0,4-1.8,4-4s-1.8-4-4-4 s-4,1.8-4,4c0,0.7,0.2,1.4,0.6,2L18,28.6c-0.6-0.4-1.3-0.6-2-0.6c-2.2,0-4,1.8-4,4S13.8,36,16,36z M32,14.5c0.8,0,1.5,0.7,1.5,1.5 s-0.7,1.5-1.5,1.5s-1.5-0.7-1.5-1.5S31.2,14.5,32,14.5z M16,30.5c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5s-1.5-0.7-1.5-1.5 S15.2,30.5,16,30.5z\"},\"child\":[]}]}]})(props);\n};\nexport function FcClapperboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M43.4,8.3L4,15l-0.3-2c-0.4-2.2,1.1-4.2,3.3-4.6l31.6-5.3c2.2-0.4,4.2,1.1,4.6,3.3L43.4,8.3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V15h40v22C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#9FA8DA\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"18.8,6.4 23.7,11.7 27.7,11 22.7,5.7\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10.9,7.7 15.8,13 19.8,12.3 14.8,7.1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"26.7,5.1 31.6,10.3 35.5,9.7 30.6,4.4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"34.5,3.8 39.5,9 43.4,8.3 38.5,3.1\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9FA8DA\",\"cx\":\"7.5\",\"cy\":\"11.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#9FA8DA\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"40,15 36,21 40,21 44,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"32,15 28,21 32,21 36,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,15 20,21 24,21 28,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16,15 12,21 16,21 20,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"8,15 4,21 8,21 12,15\"},\"child\":[]}]}]})(props);\n};\nexport function FcClearFilters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#F57C00\",\"points\":\"29,23 19,23 7,9 41,9\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"29,38 19,44 19,23 29,23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M41.5,9h-35C5.7,9,5,8.3,5,7.5v0C5,6.7,5.7,6,6.5,6h35C42.3,6,43,6.7,43,7.5v0C43,8.3,42.3,9,41.5,9z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"36\",\"fill\":\"#fff\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#00ACC1\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"20\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#eee\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"11\",\"width\":\"2\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"26.1\",\"y\":\"22.7\",\"transform\":\"matrix(-.707 .707 -.707 -.707 65.787 27.25)\",\"width\":\"2.3\",\"height\":\"9.2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#00ACC1\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FcCloseUpMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2E7D32\",\"d\":\"M5,24c0,18.9,14.8,19,17,19s4,0,4,0S24.1,26.5,5,24z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"26\",\"fill\":\"#388E3C\",\"width\":\"4\",\"height\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C62828\",\"d\":\"M34,16c0,5.1-5.2,8.2-8,8.2s-2-3.1-2-8.2s5-9.2,5-9.2S34,10.9,34,16z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C62828\",\"d\":\"M14,16c0,5.1,5.2,8.2,8,8.2s2-3.1,2-8.2s-5-9.2-5-9.2S14,10.9,14,16z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E53935\",\"d\":\"M24,27c-2.2-1.6-1.9-4.5,2.4-8.8C30.8,13.8,32,7,32,7s5,3.4,5,9C37,21.9,31.3,27,24,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E53935\",\"d\":\"M24,27c2.2-1.6,1.9-4.5-2.4-8.8C17.2,13.8,16,7,16,7s-5,3.4-5,9C11,21.9,16.7,27,24,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M30,16c0,6.1-2.7,11-6,11s-6-4.9-6-11s6-11,6-11S30,9.9,30,16z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M22,43c0,0,1.8,0,4,0s17-0.1,17-19C23.9,26.5,22,43,22,43z\"},\"child\":[]}]})(props);\n};\nexport function FcCloth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M6,10v28c0,2.2,1.8,4,4,4h28c2.2,0,4-1.8,4-4V10c0-2.2-1.8-4-4-4H10C7.8,6,6,7.8,6,10z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#BF360C\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"35\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"31\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.1,39c0.2,0.8,0.6,1.5,1.2,2h33.2c0.6-0.5,1-1.2,1.2-2H6.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.1,9h35.7c-0.2-0.8-0.6-1.5-1.2-2H7.4C6.8,7.5,6.3,8.2,6.1,9z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"23\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"27\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"15\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"11\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"19\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF8A65\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"6\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"13\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"29\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"6\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"29\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"9\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"6\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"25\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"9\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"21\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"17\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"33\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"21\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39\",\"y\":\"33\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39\",\"y\":\"17\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39\",\"y\":\"25\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,6.1V7h1.6C40.2,6.6,39.6,6.3,39,6.1z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"17\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40.6,41H39v0.9C39.6,41.7,40.2,41.4,40.6,41z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"13\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"33\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"29\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39\",\"y\":\"9\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"21\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"25\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"37\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"6\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"41\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"41\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"37\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"37\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"17\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9,41H7.4c0.5,0.4,1,0.7,1.6,0.9V41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.4,7H9V6.1C8.4,6.3,7.8,6.6,7.4,7z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"33\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"25\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"9\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"29\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"17\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"33\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"9\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"6\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"6\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"25\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"41\",\"width\":\"2\",\"height\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"21\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"6\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"37\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"13\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"13\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]}]}]})(props);\n};\nexport function FcCollaboration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#1565C0\",\"d\":\"M25,22h13l6,6V11c0-2.2-1.8-4-4-4H25c-2.2,0-4,1.8-4,4v7C21,20.2,22.8,22,25,22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M23,19H10l-6,6V8c0-2.2,1.8-4,4-4h15c2.2,0,4,1.8,4,4v7C27,17.2,25.2,19,23,19z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"31\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"36\",\"cy\":\"31\",\"r\":\"5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#607D8B\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20,42c0,0-2.2-4-8-4s-8,4-8,4v2h16V42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M44,42c0,0-2.2-4-8-4s-8,4-8,4v2h16V42z\"},\"child\":[]}]}]})(props);\n};\nexport function FcCollapse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"5,30.9 8.1,34 24,18.1 39.9,34 43,30.9 24,12\"},\"child\":[]}]})(props);\n};\nexport function FcCollect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"35\",\"width\":\"4\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,29.6 31,38 17,38\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"2\",\"width\":\"4\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,18.4 17,10 31,10\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"22\",\"width\":\"11\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18.4,24 10,31 10,17\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"22\",\"width\":\"11\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"29.6,24 38,17 38,31\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcComboChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"37\",\"y\":\"18\",\"width\":\"6\",\"height\":\"24\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"29\",\"y\":\"26\",\"width\":\"6\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"22\",\"width\":\"6\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"32\",\"width\":\"6\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"28\",\"width\":\"6\",\"height\":\"14\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"11\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"13\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"40\",\"cy\":\"9\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"39.1,7.2 31.8,10.9 23.5,8.8 15.5,15.8 8.5,14.1 7.5,17.9 16.5,20.2 24.5,13.2 32.2,15.1 40.9,10.8\"},\"child\":[]}]}]})(props);\n};\nexport function FcCommandLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M41,6H7C6.4,6,6,6.4,6,7v35h36V7C42,6.4,41.6,6,41,6z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"13\",\"fill\":\"#263238\",\"width\":\"32\",\"height\":\"27\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#76FF03\",\"d\":\"M22,27.6c-0.1,1.1-0.4,1.9-1,2.5c-0.6,0.6-1.4,0.9-2.5,0.9c-1.1,0-2-0.4-2.6-1.1c-0.6-0.7-0.9-1.8-0.9-3.1\\r\\n\\t\\tv-1.6c0-1.3,0.3-2.4,0.9-3.1c0.6-0.7,1.5-1.1,2.6-1.1c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.4,1,2.6h-2c0-0.7-0.1-1.2-0.3-1.4\\r\\n\\t\\tc-0.2-0.3-0.6-0.4-1.1-0.4c-0.5,0-0.9,0.2-1.2,0.6c-0.2,0.4-0.3,1-0.4,1.8v1.8c0,1,0.1,1.6,0.3,2c0.2,0.4,0.6,0.5,1.1,0.5\\r\\n\\t\\tc0.5,0,0.9-0.1,1.1-0.4c0.2-0.3,0.3-0.7,0.3-1.4H22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#76FF03\",\"d\":\"M24,24c0-0.3,0.1-0.5,0.3-0.7c0.2-0.2,0.4-0.3,0.7-0.3c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7\\r\\n\\t\\tc0,0.3-0.1,0.5-0.3,0.7S25.3,25,25,25c-0.3,0-0.5-0.1-0.7-0.3S24,24.3,24,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#76FF03\",\"d\":\"M24,30c0-0.3,0.1-0.5,0.3-0.7c0.2-0.2,0.4-0.3,0.7-0.3c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7\\r\\n\\t\\tc0,0.3-0.1,0.5-0.3,0.7S25.3,31,25,31c-0.3,0-0.5-0.1-0.7-0.3S24,30.3,24,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#76FF03\",\"d\":\"M28,21h2l3,10h-2L28,21z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#90A4AE\",\"cx\":\"13.5\",\"cy\":\"9.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#90A4AE\",\"cx\":\"9.5\",\"cy\":\"9.5\",\"r\":\"1.5\"},\"child\":[]}]}]})(props);\n};\nexport function FcComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M37,39H11l-6,6V11c0-3.3,2.7-6,6-6h26c3.3,0,6,2.7,6,6v22C43,36.3,40.3,39,37,39z\"},\"child\":[]}]})(props);\n};\nexport function FcCompactCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M40,39H8c-2.2,0-4-1.8-4-4V13c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v22C44,37.2,42.2,39,40,39z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#455A64\",\"cx\":\"29\",\"cy\":\"24\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#42A5F5\",\"cx\":\"29\",\"cy\":\"24\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M33.8,21c-1.2-1.4-3-2.2-4.8-2.2s-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C34.2,22.4,34.3,21.5,33.8,21z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"13\",\"fill\":\"#ADD8FB\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcConferenceCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFA726\",\"cx\":\"12\",\"cy\":\"21\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#455A64\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2,34.7c0,0,2.8-6.3,10-6.3s10,6.3,10,6.3V38H2V34.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M46,34.7c0,0-2.8-6.3-10-6.3s-10,6.3-10,6.3V38h20V34.7z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"24\",\"cy\":\"17\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M36,34.1c0,0-3.3-7.5-12-7.5s-12,7.5-12,7.5V38h24V34.1z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFA726\",\"cx\":\"36\",\"cy\":\"21\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFA726\",\"cx\":\"12\",\"cy\":\"21\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFA726\",\"cx\":\"36\",\"cy\":\"21\",\"r\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FcContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF7043\",\"d\":\"M38,44H12V4h26c2.2,0,4,1.8,4,4v32C42,42.2,40.2,44,38,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BF360C\",\"d\":\"M10,4h2v40h-2c-2.2,0-4-1.8-4-4V8C6,5.8,7.8,4,10,4z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#AB300B\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"26\",\"cy\":\"20\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M33,30c0,0-1.9-4-7-4c-5.1,0-7,4-7,4v2h14V30z\"},\"child\":[]}]}]})(props);\n};\nexport function FcCopyleft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E1BEE7\",\"d\":\"M19.3,28.1c0.3,1.3,0.2,4.1,4.6,4.1c0.9,0,4.8,0.2,4.7-7.2v-1.6c0-6.7-3.2-7.2-4.8-7.2 c-2.3,0-4.2,0.6-4.5,4.3h-4.8c0.1-1.2,0.8-8.2,9.3-8.2c4.2,0,9.7,2.5,9.7,11.2V25c0,9.6-6.5,11.2-9.6,11.2c-3.7,0-8.7-1.6-9.3-8.1 H19.3z\"},\"child\":[]}]})(props);\n};\nexport function FcCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E1BEE7\",\"d\":\"M33.5,28.1c-0.6,6.4-5.6,8.1-9.3,8.1c-3.1,0-9.6-1.6-9.6-11.2v-1.5c0-8.7,5.5-11.2,9.7-11.2 c8.5,0,9.2,7,9.3,8.2h-4.8c-0.3-3.6-2.2-4.3-4.5-4.3c-1.6,0-4.8,0.5-4.8,7.2V25c-0.1,7.5,3.8,7.2,4.7,7.2c4.3,0,4.3-2.9,4.6-4.1 H33.5z\"},\"child\":[]}]})(props);\n};\nexport function FcCrystalOscillator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"28\",\"width\":\"26\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"16\",\"width\":\"26\",\"height\":\"4\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M43,11H20v26h23c1.1,0,2-0.9,2-2V13C45,11.9,44.1,11,43,11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#64B5F6\",\"d\":\"M20,9h-2v30h2c1.1,0,2-0.9,2-2V11C22,9.9,21.1,9,20,9z\"},\"child\":[]}]})(props);\n};\nexport function FcCurrencyExchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#3F51B5\",\"cx\":\"18\",\"cy\":\"18\",\"r\":\"15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF59D\",\"d\":\"M20.3,16v1.7h-3.8v1.4h3.8v1.7h-3.8c0,0.6,0.1,1.2,0.3,1.6c0.2,0.4,0.4,0.8,0.7,1c0.3,0.3,0.7,0.4,1.1,0.6 c0.4,0.1,0.9,0.2,1.4,0.2c0.4,0,0.7,0,1.1-0.1c0.4-0.1,0.7-0.1,1-0.3l0.4,2.7c-0.4,0.1-0.9,0.2-1.4,0.2c-0.5,0.1-1,0.1-1.5,0.1 c-0.9,0-1.8-0.1-2.6-0.4c-0.8-0.2-1.5-0.6-2-1.1c-0.6-0.5-1-1.1-1.4-1.9c-0.3-0.7-0.5-1.6-0.5-2.6h-1.9v-1.7h1.9v-1.4h-1.9V16h1.9 c0.1-1,0.3-1.8,0.6-2.6c0.4-0.7,0.8-1.4,1.4-1.9c0.6-0.5,1.3-0.9,2.1-1.1c0.8-0.3,1.7-0.4,2.6-0.4c0.4,0,0.9,0,1.3,0.1 c0.4,0.1,0.9,0.1,1.3,0.3l-0.4,2.7c-0.3-0.1-0.6-0.2-1-0.3c-0.4-0.1-0.7-0.1-1.1-0.1c-0.5,0-1,0.1-1.4,0.2c-0.4,0.1-0.8,0.3-1,0.6 c-0.3,0.3-0.5,0.6-0.7,1s-0.3,0.9-0.3,1.5H20.3z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#4CAF50\",\"cx\":\"30\",\"cy\":\"30\",\"r\":\"15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M28.4,27c0.1,0.2,0.2,0.4,0.4,0.6c0.2,0.2,0.4,0.4,0.7,0.5c0.3,0.2,0.7,0.3,1.1,0.5c0.7,0.3,1.4,0.6,2,0.9 c0.6,0.3,1.1,0.7,1.5,1.1c0.4,0.4,0.8,0.9,1,1.4c0.2,0.5,0.4,1.2,0.4,1.9c0,0.7-0.1,1.3-0.3,1.8c-0.2,0.5-0.5,1-0.9,1.4 s-0.9,0.7-1.4,0.9c-0.6,0.2-1.2,0.4-1.8,0.5v2.2h-1.8v-2.2c-0.6-0.1-1.2-0.2-1.8-0.4s-1.1-0.5-1.5-1c-0.5-0.4-0.8-1-1.1-1.6 c-0.3-0.6-0.4-1.4-0.4-2.3h3.3c0,0.5,0.1,1,0.2,1.3c0.1,0.4,0.3,0.6,0.6,0.9c0.2,0.2,0.5,0.4,0.8,0.5c0.3,0.1,0.6,0.1,0.9,0.1 c0.4,0,0.7,0,0.9-0.1c0.3-0.1,0.5-0.2,0.7-0.4c0.2-0.2,0.3-0.4,0.4-0.6c0.1-0.2,0.1-0.5,0.1-0.8c0-0.3,0-0.6-0.1-0.8 c-0.1-0.2-0.2-0.5-0.4-0.7s-0.4-0.4-0.7-0.5c-0.3-0.2-0.7-0.3-1.1-0.5c-0.7-0.3-1.4-0.6-2-0.9c-0.6-0.3-1.1-0.7-1.5-1.1 c-0.4-0.4-0.8-0.9-1-1.4c-0.2-0.5-0.4-1.2-0.4-1.9c0-0.6,0.1-1.2,0.3-1.7c0.2-0.5,0.5-1,0.9-1.4c0.4-0.4,0.9-0.7,1.4-1 c0.5-0.2,1.2-0.4,1.8-0.5v-2.4h1.8v2.4c0.6,0.1,1.2,0.3,1.8,0.6c0.5,0.3,1,0.6,1.3,1.1c0.4,0.4,0.7,1,0.9,1.6c0.2,0.6,0.3,1.3,0.3,2 h-3.3c0-0.9-0.2-1.6-0.6-2c-0.4-0.4-0.9-0.7-1.5-0.7c-0.3,0-0.6,0.1-0.9,0.2c-0.2,0.1-0.4,0.2-0.6,0.4c-0.2,0.2-0.3,0.4-0.3,0.6 c-0.1,0.2-0.1,0.5-0.1,0.8C28.3,26.5,28.4,26.8,28.4,27z\"},\"child\":[]}]})(props);\n};\nexport function FcCursor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E0E0E0\",\"d\":\"M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35 c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15 c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3 C28.1,39.7,27.9,39.7,27.8,39.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#212121\",\"d\":\"M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2 c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3 c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5 l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z\"},\"child\":[]}]})(props);\n};\nexport function FcCustomerSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M29,43v-4.6l2.6,0.5c2.9,0.6,5.6-1.5,5.8-4.4L38,28l2.9-1.2c1-0.4,1.4-1.6,0.8-2.6L38,18 c-0.6-7.6-4.9-15-16-15C10.6,3,5,11.4,5,20c0,3.7,1.3,6.9,3.3,9.6c1.8,2.5,2.7,5.5,2.7,8.5l0,4.8H29z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF9800\",\"points\":\"29,43 29,38.4 22,37 22,43\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#784719\",\"cx\":\"33.5\",\"cy\":\"21.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M21.4,3C12.3,3,5,10.3,5,19.4c0,11.1,6,11.4,6,18.6l2.6-0.9c2.1-0.7,3.9-2.3,4.7-4.4l2.8-6.8L27,23v-6 c0,0,7-3.8,7-10.3C31,4.2,25.7,3,21.4,3z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#546E7A\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21,2.1c-0.6,0-1,0.4-1,1v13.9c0,0.6,0.4,1,1,1s1-0.4,1-1V3.1C22,2.5,21.6,2.1,21,2.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M36.9,31.9c-7.9,0-10.3-4.9-10.4-5.1c-0.2-0.5-0.8-0.7-1.3-0.5c-0.5,0.2-0.7,0.8-0.5,1.3 c0.1,0.3,3,6.3,12.2,6.3c0.6,0,1-0.4,1-1S37.4,31.9,36.9,31.9z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"37\",\"cy\":\"33\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"21\",\"cy\":\"23\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#546E7A\",\"cx\":\"21\",\"cy\":\"23\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcDam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#81D4FA\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"24\",\"y\":\"28\",\"width\":\"18\",\"height\":\"14\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"10\",\"width\":\"12\",\"height\":\"32\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16,8h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,10,16,9.1,16,8z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,14h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,16,16,15.1,16,14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,20h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,22,16,21.1,16,20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,26h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,28,16,27.1,16,26z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,32h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,34,16,33.1,16,32z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,38h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2H8c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C16.9,40,16,39.1,16,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,32h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2h-2c0,1.1-0.9,2-2,2v2 c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2 C40.9,34,40,33.1,40,32z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,26h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2h-2c0,1.1-0.9,2-2,2v2 c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2 C40.9,28,40,27.1,40,26z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,38h-2c0,1.1-0.9,2-2,2s-2-0.9-2-2h-2c0,1.1-0.9,2-2,2v2c1.2,0,2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4 s2.3-0.5,3-1.4c0.7,0.8,1.8,1.4,3,1.4v-2C40.9,40,40,39.1,40,38z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M25.1,9.2L31.5,42H18V6h3.2C23.1,6,24.8,7.4,25.1,9.2z\"},\"child\":[]}]})(props);\n};\nexport function FcDataBackup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"31,30 38,35.6 38,24.4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,28c-0.3,0-0.7,0-1,0.1v4c0.3-0.1,0.7-0.1,1-0.1c3.3,0,6,2.7,6,6s-2.7,6-6,6s-6-2.7-6-6 c0-0.3,0-0.6,0.1-0.9l-3.4-2.7C28.3,35.5,28,36.7,28,38c0,5.5,4.5,10,10,10s10-4.5,10-10S43.5,28,38,28z\"},\"child\":[]}]}]})(props);\n};\nexport function FcDataConfiguration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M45.2,38.1c0.1-0.4,0.1-0.8,0.1-1.1s0-0.8-0.1-1.1l2.3-1.7c0.2-0.2,0.3-0.5,0.2-0.7l-2.3-3.9 c-0.1-0.2-0.4-0.3-0.7-0.2l-2.6,1.2c-0.6-0.5-1.3-0.9-2-1.2l-0.3-2.9c0-0.3-0.3-0.5-0.5-0.5h-4.5c-0.3,0-0.5,0.2-0.5,0.5l-0.3,2.9 c-0.7,0.3-1.4,0.7-2,1.2l-2.6-1.2c-0.3-0.1-0.6,0-0.7,0.2l-2.3,3.9c-0.1,0.2-0.1,0.6,0.2,0.7l2.3,1.7c-0.1,0.4-0.1,0.8-0.1,1.1 s0,0.8,0.1,1.1l-2.3,1.7c-0.2,0.2-0.3,0.5-0.2,0.7l2.3,3.9c0.1,0.2,0.4,0.3,0.7,0.2l2.6-1.2c0.6,0.5,1.3,0.9,2,1.2l0.3,2.9 c0,0.3,0.3,0.5,0.5,0.5h4.5c0.3,0,0.5-0.2,0.5-0.5l0.3-2.9c0.7-0.3,1.4-0.7,2-1.2l2.6,1.2c0.3,0.1,0.6,0,0.7-0.2l2.3-3.9 c0.1-0.2,0.1-0.6-0.2-0.7L45.2,38.1z M37,42.2c-2.9,0-5.2-2.3-5.2-5.2c0-2.9,2.3-5.2,5.2-5.2c2.9,0,5.2,2.3,5.2,5.2 C42.2,39.9,39.9,42.2,37,42.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M37,31c-3.3,0-6,2.7-6,6c0,3.3,2.7,6,6,6s6-2.7,6-6C43,33.7,40.3,31,37,31z M37,40c-1.7,0-3-1.3-3-3 c0-1.7,1.3-3,3-3s3,1.3,3,3C40,38.7,38.7,40,37,40z\"},\"child\":[]}]})(props);\n};\nexport function FcDataEncryption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h25.1c1.3-1.3,4.9-0.9,4.9-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M34.4,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-2.4C40,33.5,37.5,31,34.4,31z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"43,46 41,48 39,48 37,46 37,35.4 43,35.4 43,40 42,41 43,42 43,43 42,44 43,45\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M47.5,28.5c-0.3-0.9-1-1.6-2-1.8C44.2,26.4,42.2,26,40,26s-4.2,0.4-5.5,0.6c-1,0.2-1.7,0.9-2,1.8 C32.3,29.4,32,30.6,32,32c0,1.4,0.3,2.6,0.5,3.5c0.3,0.9,1,1.6,2,1.8c1.3,0.3,3.2,0.6,5.5,0.6s4.2-0.4,5.5-0.6c1-0.2,1.7-0.9,2-1.8 c0.3-0.9,0.5-2.1,0.5-3.5C48,30.6,47.7,29.4,47.5,28.5z M42.9,31h-5.7c-0.6,0-1.1-0.5-1.1-1.1v-1.4c0-0.3,1.8-0.6,4-0.6 s4,0.3,4,0.6v1.4C44,30.5,43.5,31,42.9,31z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39\",\"y\":\"37.1\",\"fill\":\"#D68600\",\"width\":\"1\",\"height\":\"10.9\"},\"child\":[]}]})(props);\n};\nexport function FcDataProtection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h25.1c1.3-1.3,4.9-0.9,4.9-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M34.4,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-2.4C40,33.5,37.5,31,34.4,31z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M46,25H32c-1.1,0-2,0.9-2,2v11.8c0,1.3,0.6,2.4,1.6,3.2l7.4,5.5l7.4-5.5c1-0.8,1.6-1.9,1.6-3.2V27 C48,25.9,47.1,25,46,25z\"},\"child\":[]}]})(props);\n};\nexport function FcDataRecovery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#F44336\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"28\",\"width\":\"6\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"35\",\"width\":\"20\",\"height\":\"6\"},\"child\":[]}]}]})(props);\n};\nexport function FcDataSheet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M39,16v7h-6v-7h-2v7h-6v-7h-2v7h-7v2h7v6h-7v2h7v6h-7v2h25V16H39z M39,25v6h-6v-6H39z M25,25h6v6h-6V25z M25,33h6v6h-6V33z M33,39v-6h6v6H33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#00BCD4\",\"points\":\"40,8 8,8 8,40 16,40 16,16 40,16\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0097A7\",\"d\":\"M7,7v34h10V17h24V7H7z M9,23v-6h6v6H9z M15,25v6H9v-6H15z M17,9h6v6h-6V9z M25,9h6v6h-6V9z M15,9v6H9V9H15z M9,39v-6h6v6H9z M39,15h-6V9h6V15z\"},\"child\":[]}]})(props);\n};\nexport function FcDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]}]})(props);\n};\nexport function FcDebian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M26.763,24.548c-0.614,0.01,0.117,0.317,0.918,0.44c0.22-0.172,0.419-0.348,0.6-0.515\\r\\n\\tC27.781,24.592,27.274,24.594,26.763,24.548 M30.054,23.727c0.364-0.5,0.631-1.055,0.723-1.624c-0.082,0.405-0.303,0.755-0.51,1.128\\r\\n\\tc-1.146,0.721-0.108-0.43,0-0.865C29.035,23.913,30.098,23.293,30.054,23.727 M31.269,20.568c0.073-1.105-0.219-0.756-0.317-0.336\\r\\n\\tC31.068,20.294,31.156,21.013,31.269,20.568 M24.439,5.478c0.327,0.058,0.706,0.104,0.653,0.183\\r\\n\\tC25.449,5.582,25.531,5.51,24.439,5.478 M25.093,5.66l-0.232,0.047l0.215-0.017L25.093,5.66 M35.294,20.986\\r\\n\\tc0.038,0.991-0.29,1.472-0.585,2.322l-0.529,0.266c-0.435,0.841,0.041,0.535-0.268,1.202c-0.679,0.603-2.055,1.883-2.496,2.004\\r\\n\\tc-0.321-0.009,0.218-0.382,0.289-0.526c-0.906,0.62-0.728,0.934-2.113,1.313l-0.041-0.09c-3.419,1.607-8.166-1.576-8.103-5.928\\r\\n\\tc-0.037,0.275-0.104,0.209-0.18,0.32c-0.175-2.237,1.033-4.486,3.073-5.403c1.995-0.987,4.335-0.58,5.763,0.75\\r\\n\\tc-0.785-1.028-2.348-2.119-4.199-2.017c-1.814,0.029-3.51,1.182-4.077,2.434c-0.929,0.585-1.038,2.256-1.441,2.563\\r\\n\\tc-0.545,4.003,1.024,5.733,3.68,7.768c0.417,0.282,0.118,0.326,0.175,0.541c-0.883-0.412-1.69-1.037-2.354-1.801\\r\\n\\tc0.353,0.517,0.733,1.017,1.223,1.41c-0.831-0.279-1.942-2.013-2.267-2.084c1.435,2.567,5.818,4.502,8.113,3.541\\r\\n\\tc-1.062,0.04-2.412,0.021-3.604-0.42c-0.501-0.257-1.183-0.791-1.062-0.893c3.133,1.171,6.369,0.887,9.078-1.286\\r\\n\\tc0.689-0.537,1.443-1.449,1.662-1.464c-0.327,0.493,0.057,0.239-0.197,0.674c0.688-1.109-0.299-0.449,0.711-1.913l0.373,0.512\\r\\n\\tc-0.139-0.917,1.143-2.033,1.012-3.489c0.291-0.445,0.326,0.478,0.015,1.502c0.434-1.136,0.113-1.317,0.224-2.254\\r\\n\\tc0.121,0.315,0.279,0.648,0.359,0.981c-0.281-1.097,0.289-1.848,0.433-2.485c-0.142-0.063-0.435,0.485-0.503-0.812\\r\\n\\tc0.01-0.562,0.156-0.295,0.214-0.435c-0.111-0.064-0.4-0.496-0.577-1.323c0.127-0.193,0.342,0.506,0.516,0.533\\r\\n\\tc-0.112-0.655-0.304-1.159-0.313-1.665c-0.51-1.061-0.181,0.143-0.592-0.458c-0.543-1.687,0.449-0.39,0.514-1.156\\r\\n\\tc0.82,1.188,1.289,3.029,1.504,3.792c-0.164-0.93-0.428-1.832-0.752-2.704c0.249,0.108-0.401-1.911,0.324-0.575\\r\\n\\tc-0.772-2.848-3.314-5.511-5.65-6.76c0.286,0.262,0.646,0.591,0.517,0.642c-1.163-0.69-0.959-0.745-1.124-1.041\\r\\n\\tc-0.946-0.383-1.01,0.034-1.636,0c-1.786-0.943-2.129-0.845-3.772-1.437l0.078,0.349c-1.184-0.394-1.379,0.146-2.657,0.002\\r\\n\\tc-0.078-0.062,0.41-0.219,0.811-0.278c-1.143,0.15-1.09-0.228-2.208,0.042c0.277-0.197,0.566-0.322,0.861-0.486\\r\\n\\tc-0.932,0.059-2.226,0.542-1.825,0.103c-1.521,0.676-4.22,1.63-5.735,3.051l-0.047-0.322c-0.694,0.835-3.028,2.492-3.215,3.57\\r\\n\\tl-0.185,0.043c-0.361,0.613-0.595,1.305-0.881,1.935c-0.474,0.806-0.692,0.311-0.626,0.436c-0.929,1.883-1.39,3.467-1.79,4.768\\r\\n\\tc0.284,0.424,0.007,2.558,0.113,4.264c-0.467,8.429,5.916,16.609,12.891,18.5c1.023,0.365,2.542,0.354,3.836,0.39\\r\\n\\tc-1.525-0.438-1.722-0.232-3.209-0.749c-1.074-0.506-1.308-1.082-2.066-1.74l0.3,0.53c-1.49-0.526-0.867-0.652-2.078-1.034\\r\\n\\tl0.321-0.424c-0.482-0.032-1.279-0.811-1.497-1.241l-0.528,0.021c-0.634-0.783-0.972-1.348-0.948-1.785l-0.17,0.305\\r\\n\\tc-0.194-0.332-2.335-2.937-1.224-2.33c-0.207-0.188-0.481-0.307-0.779-0.85l0.227-0.258c-0.535-0.686-0.983-1.568-0.949-1.86\\r\\n\\tc0.284,0.384,0.482,0.454,0.679,0.522c-1.351-3.349-1.426-0.187-2.448-3.409l0.216-0.019c-0.166-0.246-0.265-0.521-0.399-0.785\\r\\n\\tl0.094-0.938c-0.972-1.125-0.272-4.781-0.132-6.783c0.097-0.816,0.811-1.684,1.354-3.045l-0.332-0.055\\r\\n\\tc0.632-1.104,3.612-4.433,4.99-4.26c0.669-0.841-0.132-0.002-0.263-0.215c1.469-1.52,1.93-1.073,2.92-1.349\\r\\n\\tc1.068-0.633-0.917,0.251-0.41-0.239c1.848-0.473,1.31-1.073,3.718-1.311c0.254,0.145-0.59,0.223-0.8,0.41\\r\\n\\tc1.538-0.753,4.87-0.584,7.034,0.417c2.511,1.173,5.33,4.642,5.443,7.904l0.126,0.035c-0.063,1.298,0.198,2.798-0.257,4.175\\r\\n\\tL35.294,20.986 M20.072,25.389l-0.086,0.431c0.403,0.547,0.724,1.142,1.237,1.567C20.853,26.664,20.577,26.364,20.072,25.389\\r\\n\\t M21.023,25.353c-0.213-0.237-0.34-0.518-0.48-0.802c0.135,0.495,0.411,0.922,0.669,1.357L21.023,25.353 M37.877,21.688\\r\\n\\tl-0.088,0.226c-0.166,1.174-0.523,2.332-1.068,3.412C37.324,24.189,37.714,22.947,37.877,21.688 M24.56,5.185\\r\\n\\tC24.974,5.031,25.579,5.101,26.019,5c-0.573,0.048-1.144,0.079-1.706,0.151L24.56,5.185 M10.007,12.923\\r\\n\\tc0.095,0.882-0.667,1.229,0.167,0.644C10.623,12.562,10,13.286,10.007,12.923 M9.028,17.016c0.191-0.592,0.226-0.943,0.3-1.285\\r\\n\\tC8.797,16.41,9.084,16.553,9.028,17.016\"},\"child\":[]}]})(props);\n};\nexport function FcDebt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M10,12c-2.8,0-5-2.2-5-5s2.2-5,5-5s5,2.2,5,5S12.8,12,10,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M2,22v8l3,2l1,14h8l1-14l3-2v-8c0-4.4-3.6-8-8-8h0C5.6,14,2,17.6,2,22z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#263238\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.4,40.4c-0.6,2.5-1,3.6-2.4,3.6c-0.6,0-1.2-0.5-1.9-1.1c-1-0.8-2.2-1.9-4.1-1.9v2c1.1,0,1.9,0.7,2.8,1.4 c0.9,0.7,1.9,1.6,3.2,1.6c3.1,0,3.8-2.9,4.4-5.2C25,38.2,25.4,37,27,37v-2C23.7,35,22.9,38.1,22.4,40.4z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"14.4,40 10,40 10,44 14.1,44\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#4CAF50\",\"cx\":\"36\",\"cy\":\"36\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M35,34c0.1,0.2,0.1,0.3,0.3,0.4c0.1,0.1,0.3,0.2,0.5,0.4c0.2,0.1,0.5,0.2,0.8,0.3c0.5,0.2,0.9,0.4,1.3,0.6 c0.4,0.2,0.7,0.4,1,0.7c0.3,0.3,0.5,0.6,0.7,0.9c0.2,0.4,0.2,0.8,0.2,1.3c0,0.4-0.1,0.8-0.2,1.2c-0.1,0.4-0.3,0.7-0.6,0.9 c-0.3,0.3-0.6,0.5-0.9,0.6c-0.4,0.2-0.8,0.3-1.2,0.3v1.5h-1.2v-1.5c-0.4,0-0.8-0.1-1.2-0.3c-0.4-0.2-0.7-0.4-1-0.6 c-0.3-0.3-0.5-0.6-0.7-1.1c-0.2-0.4-0.3-0.9-0.3-1.5h2.2c0,0.4,0,0.7,0.1,0.9c0.1,0.2,0.2,0.4,0.4,0.6c0.2,0.1,0.3,0.2,0.5,0.3 c0.2,0.1,0.4,0.1,0.6,0.1c0.2,0,0.4,0,0.6-0.1c0.2-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.3,0.3-0.4c0.1-0.2,0.1-0.3,0.1-0.5 c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.1-0.3-0.3-0.4c-0.1-0.1-0.3-0.3-0.5-0.4c-0.2-0.1-0.4-0.2-0.7-0.3c-0.5-0.2-0.9-0.4-1.3-0.6 c-0.4-0.2-0.7-0.4-1-0.7c-0.3-0.3-0.5-0.6-0.7-0.9c-0.2-0.4-0.2-0.8-0.2-1.3c0-0.4,0.1-0.8,0.2-1.2c0.1-0.3,0.3-0.7,0.6-0.9 c0.3-0.3,0.6-0.5,0.9-0.6c0.4-0.2,0.8-0.3,1.2-0.3v-1.6h1.2v1.6c0.4,0.1,0.8,0.2,1.2,0.4c0.4,0.2,0.6,0.4,0.9,0.7 c0.2,0.3,0.4,0.6,0.6,1c0.1,0.4,0.2,0.9,0.2,1.4h-2.2c0-0.6-0.1-1-0.4-1.3c-0.2-0.3-0.6-0.4-1-0.4c-0.2,0-0.4,0-0.6,0.1 c-0.2,0.1-0.3,0.2-0.4,0.3C35.1,32.7,35,32.8,35,33s-0.1,0.3-0.1,0.5C34.9,33.7,34.9,33.9,35,34z\"},\"child\":[]}]})(props);\n};\nexport function FcDecision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0277BD\",\"d\":\"M21.8,29.6c0-6.6,5.1-6.2,5.1-10.2c0-1-0.3-3-2.9-3c-2.8,0-3,2.3-3,2.8h-3.8c0-1,0.4-6,6.8-6 c6.5,0,6.7,5.1,6.7,6c0,4.9-5.4,5.6-5.4,10.3H21.8z M21.5,34.5c0-0.3,0.1-2.1,2.1-2.1c2,0,2.2,1.8,2.2,2.1c0,0.6-0.3,2-2.2,2 C21.8,36.5,21.5,35.1,21.5,34.5z\"},\"child\":[]}]})(props);\n};\nexport function FcDeleteColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M30,5H18c-2.2,0-4,1.8-4,4v30c0,2.2,1.8,4,4,4h12c2.2,0,4-1.8,4-4V9C34,6.8,32.2,5,30,5z M18,39V9h12l0,30 H18z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 .707 -.707 -.707 91.74 38)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 -.707 .707 -.707 38 91.74)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcDeleteDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#D1C4E9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7H10C8.9,7,8,7.9,8,9v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V9C40,7.9,39.1,7,38,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,19.9,39.1,19,38,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31H10c-1.1,0-2,0.9-2,2v6c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2v-6C40,31.9,39.1,31,38,31z\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 .707 -.707 -.707 91.74 38)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 -.707 .707 -.707 38 91.74)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcDeleteRow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M43,30V18c0-2.2-1.8-4-4-4H9c-2.2,0-4,1.8-4,4v12c0,2.2,1.8,4,4,4h30C41.2,34,43,32.2,43,30z M9,18h30v12 L9,30V18z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 .707 -.707 -.707 91.74 38)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 -.707 .707 -.707 38 91.74)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcDepartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#C5CAE9\",\"points\":\"42,42 6,42 6,9 24,2 42,9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"42\",\"fill\":\"#9FA8DA\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"35\",\"fill\":\"#BF360C\",\"width\":\"8\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"35\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"35\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]}]}]})(props);\n};\nexport function FcDeployment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#B0BEC5\",\"d\":\"M37,42H5V32h32c2.8,0,5,2.2,5,5v0C42,39.8,39.8,42,37,42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M10,34c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S11.7,34,10,34z M10,38c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1 s1,0.4,1,1C11,37.6,10.6,38,10,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M19,34c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S20.7,34,19,34z M19,38c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1 s1,0.4,1,1C20,37.6,19.6,38,19,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M37,34c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S38.7,34,37,34z M37,38c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1 s1,0.4,1,1C38,37.6,37.6,38,37,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M28,34c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S29.7,34,28,34z M28,38c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1 s1,0.4,1,1C29,37.6,28.6,38,28,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M35,31H11c-1.1,0-2-0.9-2-2V7c0-1.1,0.9-2,2-2h24c1.1,0,2,0.9,2,2v22C37,30.1,36.1,31,35,31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8A5100\",\"d\":\"M26.5,13h-7c-0.8,0-1.5-0.7-1.5-1.5v0c0-0.8,0.7-1.5,1.5-1.5h7c0.8,0,1.5,0.7,1.5,1.5v0 C28,12.3,27.3,13,26.5,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M37,31H5v2h32c2.2,0,4,1.8,4,4s-1.8,4-4,4H5v2h32c3.3,0,6-2.7,6-6S40.3,31,37,31z\"},\"child\":[]}]})(props);\n};\nexport function FcDiploma1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"9\",\"fill\":\"#E8EAF6\",\"width\":\"40\",\"height\":\"30\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#5C6BC0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,34 32.8,34 27.8,29 25,31.8 30,36.8\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,34 15.2,34 20.2,29 23,31.8 18,36.8\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"15\",\"fill\":\"#9FA8DA\",\"width\":\"26\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9FA8DA\",\"d\":\"M24,23c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S26.8,23,24,23z M24,31c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3 S25.7,31,24,31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9FA8DA\",\"d\":\"M3,8v32h42V8H3z M43,35c-1.7,0-3,1.3-3,3H8c0-1.7-1.3-3-3-3V13c1.7,0,3-1.3,3-3h32c0,1.7,1.3,3,3,3V35z\"},\"child\":[]}]})(props);\n};\nexport function FcDiploma2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"4\",\"fill\":\"#FBE9E7\",\"width\":\"30\",\"height\":\"40\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#F4511E\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,37 32.8,37 27.8,32 25,34.8 30,39.8\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,37 15.2,37 20.2,32 23,34.8 18,39.8\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"13\",\"fill\":\"#FF8A65\",\"width\":\"18\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"20\",\"fill\":\"#FF8A65\",\"width\":\"18\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF8A65\",\"d\":\"M24,26c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S26.8,26,24,26z M24,34c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3 S25.7,34,24,34z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF8A65\",\"d\":\"M8,3v42h32V3H8z M38,40c-1.7,0-3,1.3-3,3H13c0-1.7-1.3-3-3-3V8c1.7,0,3-1.3,3-3h22c0,1.7,1.3,3,3,3V40z\"},\"child\":[]}]})(props);\n};\nexport function FcDisapprove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#F44336\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"16.8\",\"transform\":\"matrix(.707 -.707 .707 .707 -11.355 24.586)\",\"width\":\"4\",\"height\":\"18.5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"16.8\",\"transform\":\"matrix(.707 .707 -.707 .707 25.414 -9.355)\",\"width\":\"4\",\"height\":\"18.5\"},\"child\":[]}]}]})(props);\n};\nexport function FcDisclaimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13,22H8v-8.5c0-1.4,1.1-2.5,2.5-2.5h0c1.4,0,2.5,1.1,2.5,2.5V22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20,22h-5V7.5C15,6.1,16.1,5,17.5,5h0C18.9,5,20,6.1,20,7.5V22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M27,22h-5V5.5C22,4.1,23.1,3,24.5,3h0C25.9,3,27,4.1,27,5.5V22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M34,22h-5V8.5C29,7.1,30.1,6,31.5,6h0C32.9,6,34,7.1,34,8.5V22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M32.1,43L27.1,38l10-10c1.4-1.4,3.6-1.4,4.9,0l0,0c1.4,1.4,1.4,3.6,0,4.9L32.1,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,21c0,0.6-0.4,1-1,1s-1-0.4-1-1h-5c0,0.6-0.4,1-1,1s-1-0.4-1-1h-5c0,0.6-0.4,1-1,1s-1-0.4-1-1H8v16 c0,4.4,3.6,8,8,8h11.2c3.7,0,6.8-3,6.8-6.8V21H29z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#F44336\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"20.2\",\"y\":\"25.5\",\"transform\":\"matrix(.707 -.707 .707 .707 -16.897 25.224)\",\"width\":\"3.5\",\"height\":\"15\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20.2\",\"y\":\"25.6\",\"transform\":\"matrix(.707 .707 -.707 .707 29.811 -5.877)\",\"width\":\"3.5\",\"height\":\"15\"},\"child\":[]}]}]})(props);\n};\nexport function FcDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M34,9c-4.2,0-7.9,2.1-10,5.4C21.9,11.1,18.2,9,14,9C7.4,9,2,14.4,2,21c0,11.9,22,24,22,24s22-12,22-24 C46,14.4,40.6,9,34,9z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]}]})(props);\n};\nexport function FcDisplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#80DEEA\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v26C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2962FF\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,17 31,17 29,15 31,13 36,13 38,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,35 31,35 29,33 31,31 36,31 38,33\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"37,30 37,18 39,16 41,18 41,30 39,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"26,30 26,18 28,16 30,18 30,30 28,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17,17 12,17 10,15 12,13 17,13 19,15\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17,35 12,35 10,33 12,31 17,31 19,33\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,30 18,18 20,16 22,18 22,30 20,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"7,30 7,18 9,16 11,18 11,30 9,32\"},\"child\":[]}]}]})(props);\n};\nexport function FcDoNotInhale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFA726\",\"d\":\"M33.5,20C31.2,17.7,30,13.9,30,9c0-3.2,0-3,0-3H18c0,0,0-0.2,0,3c0,4.9-1.2,8.7-3.5,11 C12.1,20.2,9,22,9,25.4c0,4.5,5.1,4.6,6,4.6c1.2,0,6.1,4,8,4c0,0,0.7,0,1,0s1,0,1,0c1.9,0,6.8-4,8-4c0.9,0,6-0.1,6-4.6 C39,22,35.9,20.2,33.5,20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFA726\",\"d\":\"M33.5,20C31.2,17.7,30,13.9,30,9c0-3.2,0-3,0-3H18c0,0,0-0.2,0,3c0,4.9-1.2,8.7-3.5,11 C12.1,20.2,9,22,9,25.4c0,4.5,5.1,4.6,6,4.6c1.2,0,6.1,4,8,4c0,0,0.7,0,1,0s1,0,1,0c1.9,0,6.8-4,8-4c0.9,0,6-0.1,6-4.6 C39,22,35.9,20.2,33.5,20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M26,9c0-3.2,0-3,0-3h-4c0,0,0-0.2,0,3c0,4.9-3,19-3,19s1.6,2,5,2s5-2,5-2S26,13.9,26,9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CC861E\",\"d\":\"M23,34c-3.3,0-6.4-3.1-8-4c0,0,0.7,0,1.8,0C19.9,30,21.3,34,23,34z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CC861E\",\"d\":\"M25,34c3.3,0,6.4-3.1,8-4c0,0-0.7,0-1.8,0C28.1,30,26.7,34,25,34z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF5722\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,35 22,39 14,39\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"38\",\"width\":\"2\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,35 34,39 26,39\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"29\",\"y\":\"38\",\"width\":\"2\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcDoNotInsert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#7CB342\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"31,29 24,36 17,29\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"7\",\"width\":\"4\",\"height\":\"25\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M42,18c-3.3,0-6,2.7-6,6v12c0,1.1-0.9,2-2,2H14c-1.1,0-2-0.9-2-2V24c0-3.3-2.7-6-6-6H4v4h2c1.1,0,2,0.9,2,2 v12c0,3.3,2.7,6,6,6h20c3.3,0,6-2.7,6-6V24c0-1.1,0.9-2,2-2h2v-4H42z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]}]})(props);\n};\nexport function FcDoNotMix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#00BCD4\",\"points\":\"26.9,42 17,42 17,32.1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#00BCD4\",\"points\":\"30,6 30,26.2 19.8,36.4 22.6,39.2 34,27.8 34,6\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"15.9,31 6,31 6,21.1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"20.2,14 8.8,25.4 11.6,28.2 21.8,18 41,18 41,14\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]}]})(props);\n};\nexport function FcDocument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,45 8,45 8,3 30,3 40,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,14 29,14 29,4.5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"21\",\"width\":\"17\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"25\",\"width\":\"13\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"29\",\"width\":\"17\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"33\",\"width\":\"13\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcDonate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E69329\",\"points\":\"11.7,21.6 16.8,31.5 26.3,27.6 30.7,14.9 15.9,15.7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#546E7A\",\"cx\":\"15\",\"cy\":\"36\",\"r\":\"7.8\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15,27c-5,0-9,4-9,9c0,5,4,9,9,9s9-4,9-9C24,31,20,27,15,27z M15,43c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7 s7,3.1,7,7C22,39.9,18.9,43,15,43z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"33\",\"width\":\"2\",\"height\":\"8\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFB74D\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9,36L12.9,36c1,1.9,3.2,2.7,5.1,1.7l16.5-8.5c1-0.5,1.7-1.2,2.2-1.9c1.7-3.2,5.6-10.7,8.2-17.2 l-18.2,8.7L21.9,26l-6.8,3.6C12.5,30.9,11.7,33.8,12.9,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M30.2,3L13.7,9.3c-0.7,0.2-1.5,1-2.2,1.7l-5.6,7.5c-1,1.5-1.2,3.4-0.5,5.1c0.4,1,1.7,3.4,3.1,6.1 c1.6-1.7,3.9-2.7,6.5-2.7c0.4,0,0.9,0,1.3,0.1l-2.1-4.2l4.6-4.1h8c0,0,15.5-2.2,18.2-8.7L30.2,3z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCDD2\",\"d\":\"M18.2,36c-1.3,0.6-2.8,0-3.3-1.3c-0.6-1.3,0-2.8,1.3-3.3C17.4,30.8,19.4,35.4,18.2,36z\"},\"child\":[]}]})(props);\n};\nexport function FcDoughnutChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#00BCD4\",\"d\":\"M24,30c-3.3,0-6-2.7-6-6s2.7-6,6-6V5C13.5,5,5,13.5,5,24s8.5,19,19,19c4.4,0,8.5-1.5,11.8-4.1l-8-10.2 C26.7,29.5,25.4,30,24,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#448AFF\",\"d\":\"M30,24h13c0-10.5-8.5-19-19-19v13C27.3,18,30,20.7,30,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M43,24H30c0,1.9-0.9,3.6-2.3,4.7l8,10.2C40.2,35.4,43,30,43,24z\"},\"child\":[]}]})(props);\n};\nexport function FcDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"4,29 18,17.3 18,40.7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M42,21V8h-8v13c0,2.2-1.8,4-4,4H13v8h17C36.6,33,42,27.6,42,21z\"},\"child\":[]}]})(props);\n};\nexport function FcDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"44,29 30,17.3 30,40.7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M6,21V8h8v13c0,2.2,1.8,4,4,4h17v8H18C11.4,33,6,27.6,6,21z\"},\"child\":[]}]})(props);\n};\nexport function FcDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,44 12.3,30 35.7,30\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"6\",\"width\":\"8\",\"height\":\"27\"},\"child\":[]}]}]})(props);\n};\nexport function FcDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,37.1 13,24 35,24\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"4\",\"width\":\"8\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"10\",\"width\":\"8\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"16\",\"width\":\"8\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"40\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF4081\",\"d\":\"M42,37c0,2.762-2.238,5-5,5H11c-2.761,0-5-2.238-5-5V11c0-2.762,2.239-5,5-5h26c2.762,0,5,2.238,5,5V37z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M33.061,26.273c-0.703-0.221-1.464,0.175-1.686,0.895c-0.824,2.658-2.316,5.419-2.993,5.57\\r\\n\\tc-0.507,0-1.236-0.43-1.958-1.44c1.674-3.594,2.551-8.106,2.551-11.118c0-8.413-2.124-10.18-3.908-10.18\\r\\n\\tc-3.757,0-3.8,9.912-3.8,10.012c0,1.166,0.042,2.248,0.121,3.256c-0.518-0.189-1.113-0.319-1.77-0.319\\r\\n\\tc-3.86,0-5.618,3.809-5.618,7.347C14,33.63,15.871,37,20.046,37c1.972,0,3.634-1.291,4.975-3.221\\r\\n\\tc1.188,1.235,2.432,1.696,3.36,1.696c2.923,0,4.858-5.233,5.556-7.486C34.16,27.27,33.767,26.502,33.061,26.273z M20.048,34.264\\r\\n\\tc-3.031,0-3.36-2.775-3.36-3.969c0-0.188,0.034-4.611,2.932-4.611c1.144,0,2.022,0.885,2.022,0.885\\r\\n\\tc0.065,0.07,0.137,0.131,0.212,0.184c0.375,1.904,0.904,3.426,1.516,4.632C22.366,33.123,21.203,34.264,20.048,34.264z\\r\\n\\t M24.901,27.926c-0.559-1.93-0.946-4.521-0.946-7.914c0-3.126,0.666-6.068,1.219-7.073c0.424,0.644,1.115,2.65,1.115,7.241\\r\\n\\tC26.289,22.616,25.75,25.446,24.901,27.926z\"},\"child\":[]}]})(props);\n};\nexport function FcDvdLogo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#42A5F5\",\"d\":\"M24.002,27c-12.154,0-22,1.343-22,3.006c0,1.653,9.845,2.994,22,2.994c12.156,0,22-1.341,22-2.994\\r\\n\\tC46.002,28.343,36.158,27,24.002,27z M24.002,30.972c-2.863,0-5.191-0.494-5.191-1.104c0-0.609,2.329-1.104,5.191-1.104\\r\\n\\tc2.862,0,5.193,0.495,5.193,1.104C29.195,30.478,26.864,30.972,24.002,30.972z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1565C0\",\"d\":\"M21.29,15l2.371,6.43L29.25,15h9.486c4.647,0,7.906,2.148,7.158,4.904c-0.745,2.756-5.178,4.904-9.803,4.904\\r\\n\\th-6.295c0,0,0.141-0.043,0.172-0.126c0.246-0.944,1.707-6.264,1.725-6.347c0.02-0.102-0.105-0.133-0.105-0.133h4.572\\r\\n\\tc0,0-0.088-0.006-0.125,0.133c-0.023,0.078-0.947,3.429-1.145,4.176c-0.023,0.094-0.162,0.139-0.162,0.139h1.094\\r\\n\\tc2.594,0,5.047-0.828,5.563-2.748c0.473-1.752-1.244-2.746-4.039-2.746h-1.014l-4.375,0.004l-10.043,9.932l-3.845-9.754\\r\\n\\tc0,0-0.036-0.066-0.065-0.147c-0.014-0.026-0.108-0.106-0.206-0.063c-0.065,0.036-0.074,0.117-0.066,0.146\\r\\n\\tc0.036,0.066,0.042,0.08,0.048,0.111c0.569,0.93,0.467,2.009,0.33,2.52c-0.774,2.75-5.186,4.904-9.812,4.904H2.002\\r\\n\\tc0,0,0.149-0.043,0.172-0.126c0.254-0.946,1.717-6.294,1.726-6.347c0.018-0.09-0.099-0.133-0.099-0.133h4.604\\r\\n\\tc0,0-0.132,0.037-0.158,0.131c-0.024,0.078-0.954,3.432-1.151,4.178c-0.023,0.094-0.178,0.139-0.178,0.139h1.118\\r\\n\\tc2.597,0,5.032-0.828,5.547-2.748c0.472-1.752-1.23-2.746-4.021-2.746H8.539h-4.45c0,0,0.125-0.059,0.147-0.139\\r\\n\\tc0.123-0.443,0.497-1.834,0.515-1.899C4.771,15.047,4.646,15,4.646,15H21.29L21.29,15z\"},\"child\":[]}]})(props);\n};\nexport function FcEditImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8CBCD6\",\"d\":\"M31,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v17C44,35.2,38.2,41,31,41z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B3DDF5\",\"cx\":\"35\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9AC9E3\",\"points\":\"20,16 9,32 31,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B3DDF5\",\"points\":\"31,22 23,32 39,32\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E57373\",\"d\":\"M47.7,29.1l-2.8-2.8c-0.4-0.4-1.1-0.4-1.6,0L42,27.6l4.4,4.4l1.3-1.3C48.1,30.3,48.1,29.6,47.7,29.1z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27.1\",\"y\":\"35.1\",\"transform\":\"matrix(.707 -.707 .707 .707 -16.508 36.511)\",\"fill\":\"#FF9800\",\"width\":\"17.4\",\"height\":\"6.2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"41.5\",\"y\":\"27.8\",\"transform\":\"matrix(-.707 .707 -.707 -.707 95.395 22.352)\",\"fill\":\"#B0BEC5\",\"width\":\"3.1\",\"height\":\"6.2\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFC107\",\"points\":\"27.5,42.2 26,48 31.8,46.5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#37474F\",\"points\":\"26.7,45 26,48 29,47.3\"},\"child\":[]}]})(props);\n};\nexport function FcElectricalSensor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B2EBF2\",\"cx\":\"32\",\"cy\":\"24\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4DD0E1\",\"d\":\"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"24\",\"r\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcElectricalThreshold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"12\",\"fill\":\"#80DEEA\",\"width\":\"42\",\"height\":\"24\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"23\",\"fill\":\"#03A9F4\",\"width\":\"42\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#3F51B5\",\"strokeWidth\":\"4\",\"strokeMiterlimit\":\"10\",\"d\":\"M4,18l4.5-1.5c0.9-0.3,1.9,0.1,2.3,0.9l8.7,14.3 c0.7,1.2,2.4,1.3,3.2,0.2l2.3-2.8c0.5-0.6,1.4-0.9,2.2-0.6l3,1c1,0.3,2.1-0.2,2.5-1.1l4.3-10.1c0.5-1.1,1.9-1.6,2.9-0.9l4,2.7\"},\"child\":[]}]})(props);\n};\nexport function FcElectricity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#00BCD4\",\"d\":\"M33.7,5L22,17l15,5L21.3,36.7l5.1,2.8L12,43l2.7-14.8l2.9,5.1L27,24l-15-5L25,5H33.7z\"},\"child\":[]}]})(props);\n};\nexport function FcElectroDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M39,43H9c-2.2,0-4-1.8-4-4V9c0-2.2,1.8-4,4-4h30c2.2,0,4,1.8,4,4v30C43,41.2,41.2,43,39,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#80DEEA\",\"d\":\"M33.2,5l-9.8,10.1L36,19.3L22.8,31.7l4.3,2.4L15,37l2.3-12.5l2.4,4.3l8-7.8L15,16.8L25.9,5H33.2z\"},\"child\":[]}]})(props);\n};\nexport function FcElectronics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M44,18v-4H34V4h-4v10h-4V4h-4v10h-4V4h-4v10H4v4h10v4H4v4h10v4H4v4h10v10h4V34h4v10h4V34h4v10h4V34h10v-4H34 v-4h10v-4H34v-4H44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M8,12v24c0,2.2,1.8,4,4,4h24c2.2,0,4-1.8,4-4V12c0-2.2-1.8-4-4-4H12C9.8,8,8,9.8,8,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M31,31H17c-1.1,0-2-0.9-2-2V19c0-1.1,0.9-2,2-2h14c1.1,0,2,0.9,2,2v10C33,30.1,32.1,31,31,31z\"},\"child\":[]}]})(props);\n};\nexport function FcEmptyBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#CFD8DC\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]}]})(props);\n};\nexport function FcEmptyFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"29,23 19,23 7,9 41,9\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"29,38 19,44 19,23 29,23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M41.5,9h-35C5.7,9,5,8.3,5,7.5v0C5,6.7,5.7,6,6.5,6h35C42.3,6,43,6.7,43,7.5v0C43,8.3,42.3,9,41.5,9z\"},\"child\":[]}]}]})(props);\n};\nexport function FcEmptyTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#B39DDB\",\"d\":\"M30.6,44H17.4c-2,0-3.7-1.4-4-3.4L9,11h30l-4.5,29.6C34.2,42.6,32.5,44,30.6,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7E57C2\",\"d\":\"M38,13H10c-1.1,0-2-0.9-2-2v0c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v0C40,12.1,39.1,13,38,13z\"},\"child\":[]}]})(props);\n};\nexport function FcEndCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M43.5,16.8l-2.3-2.3c-8.1-7.9-27.5-6.8-34.5,0l-2.3,2.3c-0.6,0.6-0.6,1.6,0,2.3l4.6,4.5 c0.6,0.6,1.7,0.6,2.3,0l5.1-4.9L16,13.4c1.6-1.6,14.4-1.6,16,0l-0.3,5.5l4.9,4.7c0.6,0.6,1.7,0.6,2.3,0l4.6-4.5 C44.2,18.4,44.2,17.4,43.5,16.8z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B71C1C\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,40.5 16,31 32,31\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"24\",\"width\":\"6\",\"height\":\"7.5\"},\"child\":[]}]}]})(props);\n};\nexport function FcEngineering (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#EF6C00\",\"d\":\"M37.4,24.6l-11.6-2.2l-3.9-11.2l-3.8,1.3L22,23.6l-7.8,9l3,2.6l7.8-9l11.6,2.2L37.4,24.6z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24,19c-2.8,0-5,2.2-5,5c0,2.8,2.2,5,5,5s5-2.2,5-5C29,21.2,26.8,19,24,19z M24,26c-1.1,0-2-0.9-2-2 c0-1.1,0.9-2,2-2s2,0.9,2,2C26,25.1,25.1,26,24,26z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40.7,27c0.2-1,0.3-2,0.3-3c0-1-0.1-2-0.3-3l3.3-2.4c0.4-0.3,0.6-0.9,0.3-1.4L40,9.8 c-0.3-0.5-0.8-0.7-1.3-0.4L35,11c-1.5-1.3-3.3-2.3-5.2-3l-0.4-4.1c-0.1-0.5-0.5-0.9-1-0.9h-8.6c-0.5,0-1,0.4-1,0.9L18.2,8 c-1.9,0.7-3.7,1.7-5.2,3L9.3,9.3C8.8,9.1,8.2,9.3,8,9.8l-4.3,7.4c-0.3,0.5-0.1,1.1,0.3,1.4L7.3,21C7.1,22,7,23,7,24 c0,1,0.1,2,0.3,3L4,29.4c-0.4,0.3-0.6,0.9-0.3,1.4L8,38.2c0.3,0.5,0.8,0.7,1.3,0.4L13,37c1.5,1.3,3.3,2.3,5.2,3l0.4,4.1 c0.1,0.5,0.5,0.9,1,0.9h8.6c0.5,0,1-0.4,1-0.9l0.4-4.1c1.9-0.7,3.7-1.7,5.2-3l3.7,1.7c0.5,0.2,1.1,0,1.3-0.4l4.3-7.4 c0.3-0.5,0.1-1.1-0.3-1.4L40.7,27z M24,35c-6.1,0-11-4.9-11-11c0-6.1,4.9-11,11-11s11,4.9,11,11C35,30.1,30.1,35,24,35z\"},\"child\":[]}]}]})(props);\n};\nexport function FcEnteringHeavenAlive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"29\",\"fill\":\"#039BE5\",\"width\":\"14\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"33\",\"fill\":\"#039BE5\",\"width\":\"22\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"37\",\"fill\":\"#039BE5\",\"width\":\"30\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"41\",\"fill\":\"#039BE5\",\"width\":\"38\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#81D4FA\",\"d\":\"M35,13c-0.4,0-0.8,0-1.2,0.1C32.9,8.5,28.9,5,24,5c-4.1,0-7.6,2.5-9.2,6c-0.3,0-0.5,0-0.8,0 c-4.4,0-8,3.6-8,8s3.6,8,8,8c2.4,0,18.5,0,21,0c3.9,0,7-3.1,7-7C42,16.1,38.9,13,35,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#039BE5\",\"d\":\"M28,21c0-2.2-1.8-4-4-4s-4,1.8-4,4c0,0.5,0,6,0,6h8C28,27,28,21.5,28,21z\"},\"child\":[]}]})(props);\n};\nexport function FcExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"43,17.1 39.9,14 24,29.9 8.1,14 5,17.1 24,36\"},\"child\":[]}]})(props);\n};\nexport function FcExpired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#00ACC1\",\"cx\":\"17\",\"cy\":\"17\",\"r\":\"14\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#eee\",\"cx\":\"17\",\"cy\":\"17\",\"r\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"8\",\"width\":\"2\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18.2\",\"y\":\"16\",\"transform\":\"matrix(-.707 .707 -.707 -.707 46.834 19.399)\",\"width\":\"2.4\",\"height\":\"6.8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"17\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#00ACC1\",\"cx\":\"17\",\"cy\":\"17\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M11.9,42l14.4-24.1c0.8-1.3,2.7-1.3,3.4,0L44.1,42c0.8,1.3-0.2,3-1.7,3H13.6C12.1,45,11.1,43.3,11.9,42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#263238\",\"d\":\"M26.4,39.9c0-0.2,0-0.4,0.1-0.6s0.2-0.3,0.3-0.5s0.3-0.2,0.5-0.3s0.4-0.1,0.6-0.1s0.5,0,0.7,0.1 s0.4,0.2,0.5,0.3s0.2,0.3,0.3,0.5s0.1,0.4,0.1,0.6s0,0.4-0.1,0.6s-0.2,0.3-0.3,0.5s-0.3,0.2-0.5,0.3s-0.4,0.1-0.7,0.1 s-0.5,0-0.6-0.1s-0.4-0.2-0.5-0.3s-0.2-0.3-0.3-0.5S26.4,40.1,26.4,39.9z M29.2,36.8h-2.3L26.5,27h3L29.2,36.8z\"},\"child\":[]}]})(props);\n};\nexport function FcExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCCBC\",\"d\":\"M7,40V8c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H11C8.8,44,7,42.2,7,40z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF5722\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"42.7,24 32,33 32,15\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"21\",\"width\":\"23\",\"height\":\"6\"},\"child\":[]}]}]})(props);\n};\nexport function FcExternal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B2DFDB\",\"cx\":\"24\",\"cy\":\"31\",\"r\":\"14\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,3.3 33,14 15,14\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"11\",\"width\":\"6\",\"height\":\"23\"},\"child\":[]}]}]})(props);\n};\nexport function FcFactoryBreakdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E64A19\",\"points\":\"29,23 29,17 21,21 21,23 17,23 17,27 13,27 13,23 5,23 5,43 33,43 33,23\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"27\",\"fill\":\"#992B0A\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"35\",\"fill\":\"#992B0A\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"35\",\"fill\":\"#992B0A\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"35\",\"fill\":\"#992B0A\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"27\",\"fill\":\"#992B0A\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#BF360C\",\"points\":\"41.2,5 38,5 38,7 36,7 36,9 33.7,9 32,43 43,43\"},\"child\":[]}]})(props);\n};\nexport function FcFactory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#BF360C\",\"d\":\"M41.2,5h-7.3L32,43h11L41.2,5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E64A19\",\"d\":\"M33,23h-4v-6l-12,6v-6L5,23v20h28V23z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"27\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"27\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"27\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"35\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"35\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"35\",\"fill\":\"#FFC107\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcFaq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#558B2F\",\"d\":\"M15,40h23l6,6V25c0-2.2-1.8-4-4-4H15c-2.2,0-4,1.8-4,4v11C11,38.2,12.8,40,15,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1B5E20\",\"d\":\"M28.8,32.8h-3.6l-0.7,2.1h-2.2l3.7-10h1.9l3.7,10h-2.2L28.8,32.8z M25.7,31.2h2.5L27,27.4L25.7,31.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M33,25H10l-6,6V8c0-2.2,1.8-4,4-4h25c2.2,0,4,1.8,4,4v13C37,23.2,35.2,25,33,25z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M25.4,14.2c0,1-0.2,1.8-0.5,2.5c-0.3,0.7-0.7,1.3-1.3,1.7l1.7,1.3L24,20.9l-2.2-1.7c-0.2,0-0.5,0.1-0.8,0.1 c-0.6,0-1.2-0.1-1.8-0.3c-0.5-0.2-1-0.6-1.4-1c-0.4-0.4-0.7-1-0.9-1.6c-0.2-0.6-0.3-1.3-0.3-2.1v-0.4c0-0.8,0.1-1.5,0.3-2.1 c0.2-0.6,0.5-1.2,0.9-1.6c0.4-0.4,0.8-0.8,1.4-1c0.5-0.2,1.1-0.3,1.8-0.3c0.6,0,1.2,0.1,1.8,0.3c0.5,0.2,1,0.6,1.4,1 c0.4,0.4,0.7,1,0.9,1.6c0.2,0.6,0.3,1.3,0.3,2.1V14.2z M23.2,13.7c0-1.1-0.2-1.9-0.6-2.4c-0.4-0.6-0.9-0.8-1.6-0.8 c-0.7,0-1.3,0.3-1.6,0.8c-0.4,0.6-0.6,1.4-0.6,2.4v0.5c0,0.5,0.1,1,0.2,1.4c0.1,0.4,0.2,0.8,0.4,1c0.2,0.3,0.4,0.5,0.7,0.6 c0.3,0.1,0.6,0.2,0.9,0.2c0.7,0,1.3-0.3,1.6-0.8c0.4-0.6,0.6-1.4,0.6-2.5V13.7z\"},\"child\":[]}]})(props);\n};\nexport function FcFeedIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M38,24v12c0,1.1-0.9,2-2,2H12c-1.1,0-2-0.9-2-2V24c0-3.3-2.7-6-6-6h0v4h0c1.1,0,2,0.9,2,2v12 c0,3.3,2.7,6,6,6h24c3.3,0,6-2.7,6-6V24c0-1.1,0.9-2,2-2h0v-4h0C40.7,18,38,20.7,38,24z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"38.6,5.6 29,15.2 29,28 33,28 33,16.8 41.4,8.4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"6.6,8.4 15,16.8 15,28 19,28 19,15.2 9.4,5.6\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"37,27 31,33 25,27\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"23,27 17,33 11,27\"},\"child\":[]}]}]})(props);\n};\nexport function FcFeedback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20.9c0-1.3,0.6-2.5,1.7-3.3L24,0l18.3,12.8c1.1,0.7,1.7,2,1.7,3.3V37 C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"12\",\"y\":\"11\",\"fill\":\"#fff\",\"width\":\"24\",\"height\":\"22\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9C27B0\",\"points\":\"24,13.6 18,21.4 30,21.4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20l20,13l20-13v20C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9C27B0\",\"points\":\"24,28 26,26.7 26,20 22,20 22,26.7\"},\"child\":[]}]})(props);\n};\nexport function FcFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,45 8,45 8,3 30,3 40,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,14 29,14 29,4.5\"},\"child\":[]}]})(props);\n};\nexport function FcFilingCabinet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"12\",\"y\":\"44\",\"fill\":\"#263238\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"44\",\"fill\":\"#263238\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M8,41V7c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H12C9.8,45,8,43.2,8,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B0BEC5\",\"d\":\"M12,17V8c0-0.6,0.4-1,1-1h22c0.6,0,1,0.4,1,1v9H12z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"12\",\"y\":\"19\",\"fill\":\"#B0BEC5\",\"width\":\"24\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B0BEC5\",\"d\":\"M12,40v-9h24v9c0,0.6-0.4,1-1,1H13C12.4,41,12,40.6,12,40z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"11\",\"fill\":\"#546E7A\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"23\",\"fill\":\"#546E7A\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"35\",\"fill\":\"#546E7A\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcFilledFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#F57C00\",\"points\":\"29,23 19,23 7,9 41,9\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"29,38 19,44 19,23 29,23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M41.5,9h-35C5.7,9,5,8.3,5,7.5v0C5,6.7,5.7,6,6.5,6h35C42.3,6,43,6.7,43,7.5v0C43,8.3,42.3,9,41.5,9z\"},\"child\":[]}]}]})(props);\n};\nexport function FcFilmReel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M43,39V24h-4v15c0,5,4,9,9,9v-4C45.2,44,43,41.8,43,39z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#90A4AE\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#253278\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"14\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"34\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"34\",\"cy\":\"24\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"24\",\"r\":\"5\"},\"child\":[]}]}]})(props);\n};\nexport function FcFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M45,9H3v30h42V9z M22,37v-4h4v4H22z M30,37v-4h4v4H30z M38,37v-4h4v4H38z M14,37v-4h4v4H14z M6,37v-4h4v4H6 z M22,15v-4h4v4H22z M30,15v-4h4v4H30z M38,15v-4h4v4H38z M14,15v-4h4v4H14z M6,15v-4h4v4H6z\"},\"child\":[]}]})(props);\n};\nexport function FcFinePrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"33,42 5,42 5,4 24,4 33,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"31.5,14 23,14 23,5.5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"38.3\",\"y\":\"34.8\",\"transform\":\"matrix(.707 -.707 .707 .707 -17.177 40.055)\",\"fill\":\"#616161\",\"width\":\"2.8\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#616161\",\"cx\":\"28\",\"cy\":\"29\",\"r\":\"11\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#90CAF9\",\"cx\":\"28\",\"cy\":\"29\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"39.5\",\"y\":\"37.6\",\"transform\":\"matrix(.707 -.707 .707 .707 -17.661 41.223)\",\"fill\":\"#37474F\",\"width\":\"2.8\",\"height\":\"8.7\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M30,31h-9.7c0.4,1.6,1.3,3,2.5,4H30V31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.3,27H30v-4h-7.3C21.5,24,20.7,25.4,20.3,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.1,20H11v2h7.3C18.8,21.3,19.4,20.6,20.1,20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.1,24H11v2h5.4C16.6,25.3,16.8,24.6,17.1,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,29c0-0.3,0-0.7,0.1-1H11v2h5.1C16,29.7,16,29.3,16,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.4,32H11v2h6.1C16.8,33.4,16.6,32.7,16.4,32z\"},\"child\":[]}]}]})(props);\n};\nexport function FcFlashAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFC107\",\"points\":\"33,22 23.6,22 30,5 19,5 13,26 21.6,26 17,45\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M40.8,14.5h-4.3L35.6,17H33l4.5-12h2.3l4.5,12h-2.6L40.8,14.5z M37.1,12.5h3L38.6,8L37.1,12.5z\"},\"child\":[]}]})(props);\n};\nexport function FcFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFC107\",\"points\":\"33,22 23.6,22 30,5 19,5 13,26 21.6,26 17,45\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]}]})(props);\n};\nexport function FcFlashOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFC107\",\"points\":\"33,22 23.6,22 30,5 19,5 13,26 21.6,26 17,45\"},\"child\":[]}]})(props);\n};\nexport function FcFlowChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CFD8DC\",\"points\":\"35,36 39,36 39,22 26,22 26,13 22,13 22,22 9,22 9,36 13,36 13,26 22,26 22,36 26,36 26,26 35,26\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"6\",\"fill\":\"#3F51B5\",\"width\":\"14\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"32\",\"fill\":\"#00BCD4\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"32\",\"fill\":\"#00BCD4\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"32\",\"fill\":\"#00BCD4\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FcFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFA000\",\"d\":\"M40,12H22l-4-4H8c-2.2,0-4,1.8-4,4v8h40v-4C44,13.8,42.2,12,40,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCA28\",\"d\":\"M40,12H8c-2.2,0-4,1.8-4,4v20c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4V16C44,13.8,42.2,12,40,12z\"},\"child\":[]}]})(props);\n};\nexport function FcFrame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3949AB\",\"d\":\"M40.6,40.1h-1.4c-0.2,0-0.3,0-0.5,0l-3.1-0.4c-2.4-0.3-4.9-0.2-7.3,0.4l-3.6,0.9c-0.5,0.1-1.1,0.1-1.6,0 L19.6,40c-2.4-0.6-4.8-0.7-7.3-0.4l-3.1,0.4c-0.2,0-0.3,0-0.5,0H7.4c-1.9,0-3.4-1.5-3.4-3.4v0c0-0.4,0.1-0.9,0.2-1.3l0.2-0.6 c1-2.5,1.1-5.3,0.4-7.9l-0.6-2c-0.2-0.7-0.2-1.3,0-2l0.3-0.8c0.9-2.7,0.8-5.7-0.2-8.4l-0.1-0.3C4.1,13.1,4,12.7,4,12.3v-1 c0-1.9,1.5-3.4,3.4-3.4l1.4,0c0.2,0,0.3,0,0.5,0l3.1,0.4c2.4,0.3,4.9,0.2,7.3-0.4l3.6-0.9c0.5-0.1,1.1-0.1,1.6,0L28.4,8 c2.4,0.6,4.8,0.7,7.3,0.4l3.1-0.4c0.2,0,0.3,0,0.5,0l1.4,0c1.9,0,3.4,1.5,3.4,3.4v1c0,0.4-0.1,0.9-0.2,1.3l-0.1,0.3 c-1.1,2.7-1.2,5.6-0.2,8.4l0.3,0.8c0.2,0.6,0.2,1.3,0,2l-0.6,2c-0.7,2.6-0.6,5.4,0.4,7.9l0.2,0.6c0.2,0.4,0.2,0.8,0.2,1.3v0 C44,38.6,42.5,40.1,40.6,40.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M38,36H10c-0.6,0-1-0.4-1-1V13c0-0.6,0.4-1,1-1h28c0.6,0,1,0.4,1,1v22C39,35.6,38.6,36,38,36z\"},\"child\":[]}]})(props);\n};\nexport function FcFullBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#8BC34A\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]}]})(props);\n};\nexport function FcFullTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF8A65\",\"points\":\"24,21.3 12.7,10 26,1.7 38.3,10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFAB91\",\"points\":\"24,21.3 12.7,10 17,4.7 38.3,10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B39DDB\",\"d\":\"M30.6,44H17.4c-2,0-3.7-1.4-4-3.4L9,11h30l-4.5,29.6C34.2,42.6,32.5,44,30.6,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7E57C2\",\"d\":\"M38,13H10c-1.1,0-2-0.9-2-2v0c0-1.1,0.9-2,2-2h28c1.1,0,2,0.9,2,2v0C40,12.1,39.1,13,38,13z\"},\"child\":[]}]})(props);\n};\nexport function FcGallery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E65100\",\"d\":\"M41,42H13c-2.2,0-4-1.8-4-4V18c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v20C45,40.2,43.2,42,41,42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F57C00\",\"d\":\"M35,36H7c-2.2,0-4-1.8-4-4V12c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v20C39,34.2,37.2,36,35,36z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFF9C4\",\"cx\":\"30\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#942A09\",\"points\":\"17,17.9 8,31 26,31\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#BF360C\",\"points\":\"28,23.5 22,31 34,31\"},\"child\":[]}]})(props);\n};\nexport function FcGenealogy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CFD8DC\",\"points\":\"40,9 40,7 31,7 31,12 24,12 15,12 15,23 8,23 8,25 15,25 15,36 24,36 31,36 31,41 40,41 40,39 33,39 33,31 40,31 40,29 31,29 31,34 24,34 17,34 17,14 24,14 31,14 31,19 40,19 40,17 33,17 33,9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"20\",\"fill\":\"#00BCD4\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"14\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"4\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"9\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"31\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"36\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"26\",\"width\":\"8\",\"height\":\"8\"},\"child\":[]}]}]})(props);\n};\nexport function FcGenericSortingAsc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"6\",\"fill\":\"#2196F3\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"fill\":\"#2196F3\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"22\",\"fill\":\"#2196F3\",\"width\":\"20\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"30\",\"fill\":\"#2196F3\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"38\",\"fill\":\"#2196F3\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcGenericSortingDesc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"38\",\"fill\":\"#2196F3\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"30\",\"fill\":\"#2196F3\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"22\",\"fill\":\"#2196F3\",\"width\":\"20\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"fill\":\"#2196F3\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"6\",\"fill\":\"#2196F3\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M24,4C13,4,4,13,4,24s9,20,20,20s20-9,20-20S35,4,24,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#0277BD\",\"d\":\"M45,24c0,11.7-9.5,21-21,21S3,35.7,3,24S12.3,3,24,3S45,12.3,45,24z M23.8,33.7c0-0.4-0.2-0.6-0.6-0.8 c-1.3-0.4-2.5-0.4-3.6-1.5c-0.2-0.4-0.2-0.8-0.4-1.3c-0.4-0.4-1.5-0.6-2.1-0.8c-0.8,0-1.7,0-2.7,0c-0.4,0-1.1,0-1.5,0 c-0.6-0.2-1.1-1.1-1.5-1.7c0-0.2,0-0.6-0.4-0.6c-0.4-0.2-0.8,0.2-1.3,0c-0.2-0.2-0.2-0.4-0.2-0.6c0-0.6,0.4-1.3,0.8-1.7 c0.6-0.4,1.3,0.2,1.9,0.2c0.2,0,0.2,0,0.4,0.2c0.6,0.2,0.8,1,0.8,1.7c0,0.2,0,0.4,0,0.4c0,0.2,0.2,0.2,0.4,0.2 c0.2-1.1,0.2-2.1,0.4-3.2c0-1.3,1.3-2.5,2.3-2.9c0.4-0.2,0.6,0.2,1.1,0c1.3-0.4,4.4-1.7,3.8-3.4c-0.4-1.5-1.7-2.9-3.4-2.7 c-0.4,0.2-0.6,0.4-1,0.6c-0.6,0.4-1.9,1.7-2.5,1.7c-1.1-0.2-1.1-1.7-0.8-2.3c0.2-0.8,2.1-3.6,3.4-3.1c0.2,0.2,0.6,0.6,0.8,0.8 c0.4,0.2,1.1,0.2,1.7,0.2c0.2,0,0.4,0,0.6-0.2c0.2-0.2,0.2-0.2,0.2-0.4c0-0.6-0.6-1.3-1-1.7c-0.4-0.4-1.1-0.8-1.7-1.1 c-2.1-0.6-5.5,0.2-7.1,1.7s-2.9,4-3.8,6.1c-0.4,1.3-0.8,2.9-1,4.4c-0.2,1-0.4,1.9,0.2,2.9c0.6,1.3,1.9,2.5,3.2,3.4 c0.8,0.6,2.5,0.6,3.4,1.7c0.6,0.8,0.4,1.9,0.4,2.9c0,1.3,0.8,2.3,1.3,3.4c0.2,0.6,0.4,1.5,0.6,2.1c0,0.2,0.2,1.5,0.2,1.7 c1.3,0.6,2.3,1.3,3.8,1.7c0.2,0,1-1.3,1-1.5c0.6-0.6,1.1-1.5,1.7-1.9c0.4-0.2,0.8-0.4,1.3-0.8c0.4-0.4,0.6-1.3,0.8-1.9 C23.8,35.1,24,34.3,23.8,33.7z M24.2,14.3c0.2,0,0.4-0.2,0.8-0.4c0.6-0.4,1.3-1.1,1.9-1.5c0.6-0.4,1.3-1.1,1.7-1.5 c0.6-0.4,1.1-1.3,1.3-1.9c0.2-0.4,0.8-1.3,0.6-1.9c-0.2-0.4-1.3-0.6-1.7-0.8c-1.7-0.4-3.1-0.6-4.8-0.6c-0.6,0-1.5,0.2-1.7,0.8 c-0.2,1.1,0.6,0.8,1.5,1.1c0,0,0.2,1.7,0.2,1.9c0.2,1-0.4,1.7-0.4,2.7c0,0.6,0,1.7,0.4,2.1L24.2,14.3z M41.8,29 c0.2-0.4,0.2-1.1,0.4-1.5c0.2-1,0.2-2.1,0.2-3.1c0-2.1-0.2-4.2-0.8-6.1c-0.4-0.6-0.6-1.3-0.8-1.9c-0.4-1.1-1-2.1-1.9-2.9 c-0.8-1.1-1.9-4-3.8-3.1c-0.6,0.2-1,1-1.5,1.5c-0.4,0.6-0.8,1.3-1.3,1.9c-0.2,0.2-0.4,0.6-0.2,0.8c0,0.2,0.2,0.2,0.4,0.2 c0.4,0.2,0.6,0.2,1,0.4c0.2,0,0.4,0.2,0.2,0.4c0,0,0,0.2-0.2,0.2c-1,1.1-2.1,1.9-3.1,2.9c-0.2,0.2-0.4,0.6-0.4,0.8 c0,0.2,0.2,0.2,0.2,0.4c0,0.2-0.2,0.2-0.4,0.4c-0.4,0.2-0.8,0.4-1.1,0.6c-0.2,0.4,0,1.1-0.2,1.5c-0.2,1.1-0.8,1.9-1.3,2.9 c-0.4,0.6-0.6,1.3-1,1.9c0,0.8-0.2,1.5,0.2,2.1c1,1.5,2.9,0.6,4.4,1.3c0.4,0.2,0.8,0.2,1.1,0.6c0.6,0.6,0.6,1.7,0.8,2.3 c0.2,0.8,0.4,1.7,0.8,2.5c0.2,1,0.6,2.1,0.8,2.9c1.9-1.5,3.6-3.1,4.8-5.2C40.6,32.4,41.2,30.7,41.8,29z\"},\"child\":[]}]})(props);\n};\nexport function FcGoodDecision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#4CAF50\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"16\",\"width\":\"4\",\"height\":\"18\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"23\",\"width\":\"18\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12\\r\\n\\tc0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24\\r\\n\\tc0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF3D00\",\"d\":\"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657\\r\\n\\tC34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36\\r\\n\\tc-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1976D2\",\"d\":\"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571\\r\\n\\tc0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z\"},\"child\":[]}]})(props);\n};\nexport function FcGraduationCap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"20\",\"width\":\"30\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"24\",\"cy\":\"33\",\"rx\":\"15\",\"ry\":\"6\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M23.1,8.2L0.6,18.1c-0.8,0.4-0.8,1.5,0,1.9l22.5,9.9c0.6,0.2,1.2,0.2,1.8,0l22.5-9.9c0.8-0.4,0.8-1.5,0-1.9 L24.9,8.2C24.3,7.9,23.7,7.9,23.1,8.2z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M43.2,20.4l-20-3.4c-0.5-0.1-1.1,0.3-1.2,0.8c-0.1,0.5,0.3,1.1,0.8,1.2L42,22.2V37c0,0.6,0.4,1,1,1 s1-0.4,1-1V21.4C44,20.9,43.6,20.5,43.2,20.4z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"43\",\"cy\":\"37\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M46,40c0,1.7-3,6-3,6s-3-4.3-3-6s1.3-3,3-3S46,38.3,46,40z\"},\"child\":[]}]}]})(props);\n};\nexport function FcGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M7,7v34h34V7H7z M39,15h-6V9h6V15z M25,15V9h6v6H25z M31,17v6h-6v-6H31z M23,15h-6V9h6V15z M23,17v6h-6v-6 H23z M15,23H9v-6h6V23z M15,25v6H9v-6H15z M17,25h6v6h-6V25z M23,33v6h-6v-6H23z M25,33h6v6h-6V33z M25,31v-6h6v6H25z M33,25h6v6h-6 V25z M33,23v-6h6v6H33z M15,9v6H9V9H15z M9,33h6v6H9V33z M33,39v-6h6v6H33z\"},\"child\":[]}]})(props);\n};\nexport function FcHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#0097A7\",\"d\":\"M24,5C14.1,5,6,13.1,6,23v15h4V23c0-7.7,6.3-14,14-14s14,6.3,14,14v15h4V23C42,13.1,33.9,5,24,5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M38,43h-4V31h4c2.2,0,4,1.8,4,4v4C42,41.2,40.2,43,38,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M10,43h4V31h-4c-2.2,0-4,1.8-4,4v4C6,41.2,7.8,43,10,43z\"},\"child\":[]}]})(props);\n};\nexport function FcHeatMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CFD8DC\",\"points\":\"9,39 9,6 7,6 7,41 42,41 42,39\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"23\",\"cy\":\"11\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"33\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"30\",\"cy\":\"33\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"22\",\"cy\":\"33\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"33\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"22\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"22\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"22\",\"r\":\"3\"},\"child\":[]}]}]})(props);\n};\nexport function FcHighBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#CFD8DC\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V13h24v29C36,43.1,35.1,44,34,44z\"},\"child\":[]}]})(props);\n};\nexport function FcHighPriority (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M21.2,44.8l-18-18c-1.6-1.6-1.6-4.1,0-5.7l18-18c1.6-1.6,4.1-1.6,5.7,0l18,18c1.6,1.6,1.6,4.1,0,5.7l-18,18 C25.3,46.4,22.7,46.4,21.2,44.8z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M21.6,32.7c0-0.3,0.1-0.6,0.2-0.9c0.1-0.3,0.3-0.5,0.5-0.7c0.2-0.2,0.5-0.4,0.8-0.5s0.6-0.2,1-0.2 s0.7,0.1,1,0.2c0.3,0.1,0.6,0.3,0.8,0.5c0.2,0.2,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.6,0.2,0.9s-0.1,0.6-0.2,0.9s-0.3,0.5-0.5,0.7 c-0.2,0.2-0.5,0.4-0.8,0.5c-0.3,0.1-0.6,0.2-1,0.2s-0.7-0.1-1-0.2s-0.5-0.3-0.8-0.5c-0.2-0.2-0.4-0.4-0.5-0.7S21.6,33.1,21.6,32.7z M25.8,28.1h-3.6L21.7,13h4.6L25.8,28.1z\"},\"child\":[]}]})(props);\n};\nexport function FcHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E8EAF6\",\"points\":\"42,39 6,39 6,23 24,6 42,23\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#C5CAE9\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"39,21 34,16 34,9 39,9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"39\",\"width\":\"36\",\"height\":\"5\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B71C1C\",\"points\":\"24,4.3 4,22.9 6,25.1 24,8.4 42,25.1 44,22.9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"28\",\"fill\":\"#D84315\",\"width\":\"12\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"17\",\"fill\":\"#01579B\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF8A65\",\"d\":\"M27.5,35.5c-0.3,0-0.5,0.2-0.5,0.5v2c0,0.3,0.2,0.5,0.5,0.5S28,38.3,28,38v-2C28,35.7,27.8,35.5,27.5,35.5z\"},\"child\":[]}]})(props);\n};\nexport function FcIcons8Cup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M40,14H8l3.8,28.3c0.1,1,1,1.7,2,1.7h20.5c1,0,1.8-0.7,2-1.7L40,14z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#81C784\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42,14H6v-3c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4V14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M37.2,10H10.8l1.7-4.7c0.3-0.8,1-1.3,1.9-1.3h19.2c0.8,0,1.6,0.5,1.9,1.3L37.2,10z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E8F5E9\",\"d\":\"M28,28.5c1.2-1.1,2-2.7,2-4.5c0-3.3-2.7-6-6-6c-3.3,0-6,2.7-6,6c0,1.8,0.8,3.4,2,4.5c-1.2,1.1-2,2.7-2,4.5 c0,3.3,2.7,6,6,6c3.3,0,6-2.7,6-6C30,31.2,29.2,29.6,28,28.5z M24,36c-1.7,0-3-1.3-3-3c0-1.7,1.3-3,3-3c1.7,0,3,1.3,3,3 C27,34.7,25.7,36,24,36z M24,27c-1.7,0-3-1.3-3-3c0-1.7,1.3-3,3-3c1.7,0,3,1.3,3,3C27,25.7,25.7,27,24,27z\"},\"child\":[]}]})(props);\n};\nexport function FcIdea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFF59D\",\"cx\":\"24\",\"cy\":\"22\",\"r\":\"20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FBC02D\",\"d\":\"M37,22c0-7.7-6.6-13.8-14.5-12.9c-6,0.7-10.8,5.5-11.4,11.5c-0.5,4.6,1.4,8.7,4.6,11.3 c1.4,1.2,2.3,2.9,2.3,4.8V37h12v-0.1c0-1.8,0.8-3.6,2.2-4.8C35.1,29.7,37,26.1,37,22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF59D\",\"d\":\"M30.6,20.2l-3-2c-0.3-0.2-0.8-0.2-1.1,0L24,19.8l-2.4-1.6c-0.3-0.2-0.8-0.2-1.1,0l-3,2 c-0.2,0.2-0.4,0.4-0.4,0.7s0,0.6,0.2,0.8l3.8,4.7V37h2V26c0-0.2-0.1-0.4-0.2-0.6l-3.3-4.1l1.5-1l2.4,1.6c0.3,0.2,0.8,0.2,1.1,0 l2.4-1.6l1.5,1l-3.3,4.1C25.1,25.6,25,25.8,25,26v11h2V26.4l3.8-4.7c0.2-0.2,0.3-0.5,0.2-0.8S30.8,20.3,30.6,20.2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#5C6BC0\",\"cx\":\"24\",\"cy\":\"44\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9FA8DA\",\"d\":\"M26,45h-4c-2.2,0-4-1.8-4-4v-5h12v5C30,43.2,28.2,45,26,45z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#5C6BC0\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M30,41l-11.6,1.6c0.3,0.7,0.9,1.4,1.6,1.8l9.4-1.3C29.8,42.5,30,41.8,30,41z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,38.7 18,40.7 30,39 30,37\"},\"child\":[]}]}]})(props);\n};\nexport function FcImageFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,45 8,45 8,3 30,3 40,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,14 29,14 29,4.5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#1565C0\",\"points\":\"21,23 14,33 28,33\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#1976D2\",\"points\":\"28,26.4 23,33 33,33\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#1976D2\",\"cx\":\"31.5\",\"cy\":\"24.5\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F8BBD0\",\"d\":\"M7,40V8c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H11C8.8,44,7,42.2,7,40z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#E91E63\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13.3,24 24,15 24,33\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"21\",\"width\":\"23\",\"height\":\"6\"},\"child\":[]}]}]})(props);\n};\nexport function FcInTransit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M44,36H30V16c0-1.1,0.9-2,2-2h8c0.6,0,1.2,0.3,1.6,0.8l6,7.7c0.3,0.4,0.4,0.8,0.4,1.2V32 C48,34.2,46.2,36,44,36z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#9575CD\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8,36h22V13c0-2.2-1.8-4-4-4H4v23C4,34.2,5.8,36,8,36z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"y\":\"9\",\"width\":\"10\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"y\":\"14\",\"width\":\"10\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"y\":\"19\",\"width\":\"10\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"y\":\"24\",\"width\":\"10\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#7E57C2\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"11\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"16\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"21\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"26\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"36\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"36\",\"r\":\"5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#78909C\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"36\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"36\",\"r\":\"2.5\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M44,26h-3.6c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.2-0.2-0.4-0.3-0.7-0.3H34c-0.6,0-1-0.4-1-1v-6 c0-0.6,0.4-1,1-1h5.5c0.3,0,0.6,0.1,0.8,0.4l4.5,5.4c0.1,0.2,0.2,0.4,0.2,0.6V25C45,25.6,44.6,26,44,26z\"},\"child\":[]}]})(props);\n};\nexport function FcInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#2196F3\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"22\",\"fill\":\"#fff\",\"width\":\"4\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#fff\",\"cx\":\"24\",\"cy\":\"16.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FcInspection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M36,4H26c0,1.1-0.9,2-2,2s-2-0.9-2-2H12C9.8,4,8,5.8,8,8v32c0,2.2,1.8,4,4,4h24c2.2,0,4-1.8,4-4V8 C40,5.8,38.2,4,36,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M36,41H12c-0.6,0-1-0.4-1-1V8c0-0.6,0.4-1,1-1h24c0.6,0,1,0.4,1,1v32C37,40.6,36.6,41,36,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M26,4c0,1.1-0.9,2-2,2s-2-0.9-2-2h-7v4c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V4H26z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,0c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4S26.2,0,24,0z M24,6c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2 S25.1,6,24,6z\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#4CAF50\",\"points\":\"30.6,18.6 21.6,27.6 17.4,23.3 14.9,25.8 21.7,32.5 33.1,21.1\"},\"child\":[]}]})(props);\n};\nexport function FcIntegratedWebcam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M38,42H10c-2.2,0-4-1.8-4-4V10c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v28C42,40.2,40.2,42,38,42z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#455A64\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#42A5F5\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M28.8,21c-1.2-1.4-3-2.2-4.8-2.2s-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.2,22.4,29.3,21.5,28.8,21z\"},\"child\":[]}]})(props);\n};\nexport function FcInternal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B3E5FC\",\"cx\":\"24\",\"cy\":\"30\",\"r\":\"15\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,38.7 15,28 33,28\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"5\",\"width\":\"6\",\"height\":\"26\"},\"child\":[]}]}]})(props);\n};\nexport function FcInvite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20.9c0-1.3,0.6-2.5,1.7-3.3L24,0l18.3,12.8c1.1,0.7,1.7,2,1.7,3.3V37 C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"12\",\"y\":\"11\",\"fill\":\"#fff\",\"width\":\"24\",\"height\":\"22\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20l20,13l20-13v20C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#4CAF50\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"14\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"18\",\"width\":\"12\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcIpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M8,41V7c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H12C9.8,45,8,43.2,8,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M36,6H12c-0.6,0-1,0.4-1,1v31c0,0.6,0.4,1,1,1h24c0.6,0,1-0.4,1-1V7C37,6.4,36.6,6,36,6z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"24\",\"cy\":\"42\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcIphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M12,40V8c0-2.2,1.8-4,4-4h16c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H16C13.8,44,12,42.2,12,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M32,7H16c-0.6,0-1,0.4-1,1v29c0,0.6,0.4,1,1,1h16c0.6,0,1-0.4,1-1V8C33,7.4,32.6,7,32,7z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"24\",\"cy\":\"41\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,41 26,45 22,45 18,41 18,21 30,21 30,29 28,31 30,33 30,35 28,37 30,39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,7.8C37.5,6,36,4.7,34.3,4.2C31.9,3.7,28.2,3,24,3s-7.9,0.7-10.3,1.2C12,4.7,10.5,6,10,7.8 c-0.5,1.7-1,4.1-1,6.7c0,2.6,0.5,5,1,6.7c0.5,1.8,1.9,3.1,3.7,3.5C16.1,25.3,19.8,26,24,26s7.9-0.7,10.3-1.2 c1.8-0.4,3.2-1.8,3.7-3.5c0.5-1.7,1-4.1,1-6.7C39,11.9,38.5,9.5,38,7.8z M29,13H19c-1.1,0-2-0.9-2-2V9c0-0.6,3.1-1,7-1s7,0.4,7,1v2 C31,12.1,30.1,13,29,13z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"26\",\"fill\":\"#D68600\",\"width\":\"2\",\"height\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FcKindle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M8,41V7c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H12C9.8,45,8,43.2,8,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#eee\",\"d\":\"M35,6H13c-0.6,0-1,0.4-1,1v29c0,0.6,0.4,1,1,1h22c0.6,0,1-0.4,1-1V7C36,6.4,35.6,6,35,6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"40\",\"fill\":\"#546E7A\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#A1A1A1\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"11\",\"width\":\"16\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"18\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"22\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"26\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"30\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.1\",\"y\":\"8.1\",\"transform\":\"matrix(.707 .707 -.707 .707 21.201 -25.184)\",\"width\":\"9.9\",\"height\":\"9.9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"8\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFEB3B\",\"cx\":\"41\",\"cy\":\"13\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2E7D32\",\"points\":\"16.5,18 0,42 33,42\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#4CAF50\",\"points\":\"33.6,24 19.2,42 48,42\"},\"child\":[]}]})(props);\n};\nexport function FcLeave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCDD2\",\"d\":\"M5,38V14h38v24c0,2.2-1.8,4-4,4H9C6.8,42,5,40.2,5,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M43,10v6H5v-6c0-2.2,1.8-4,4-4h30C41.2,6,43,7.8,43,10z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B71C1C\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#BDBDBD\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M33,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C35,3.9,34.1,3,33,3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C17,3.9,16.1,3,15,3z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M22.2,35.3c0-0.2,0-0.5,0.1-0.7c0.1-0.2,0.2-0.4,0.4-0.5s0.3-0.3,0.5-0.3c0.2-0.1,0.5-0.1,0.7-0.1 s0.5,0,0.7,0.1c0.2,0.1,0.4,0.2,0.6,0.3s0.3,0.3,0.4,0.5c0.1,0.2,0.1,0.4,0.1,0.7c0,0.2,0,0.5-0.1,0.7c-0.1,0.2-0.2,0.4-0.4,0.5 c-0.2,0.1-0.3,0.3-0.6,0.3S24.3,37,24,37s-0.5,0-0.7-0.1c-0.2-0.1-0.4-0.2-0.5-0.3c-0.2-0.1-0.3-0.3-0.4-0.5 C22.3,35.8,22.2,35.6,22.2,35.3z M25.3,31h-2.6l-0.4-11h3.3L25.3,31z\"},\"child\":[]}]})(props);\n};\nexport function FcLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"7,41 7,23 25,41\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22.6\",\"y\":\"5\",\"transform\":\"matrix(.707 .707 -.707 .707 22.912 -12.567)\",\"fill\":\"#3F51B5\",\"width\":\"8\",\"height\":\"32.7\"},\"child\":[]}]})(props);\n};\nexport function FcLeftDown2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"19,44 30.7,30 7.3,30\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M27,6h13v8H27c-2.2,0-4,1.8-4,4v17h-8V18C15,11.4,20.4,6,27,6z\"},\"child\":[]}]})(props);\n};\nexport function FcLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"7,7 25,7 7,25\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22.6\",\"y\":\"10.3\",\"transform\":\"matrix(-.707 .707 -.707 -.707 64.28 26.626)\",\"fill\":\"#3F51B5\",\"width\":\"8\",\"height\":\"32.7\"},\"child\":[]}]})(props);\n};\nexport function FcLeftUp2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"19,4 30.7,18 7.3,18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M27,42h13v-8H27c-2.2,0-4-1.8-4-4V13h-8v17C15,36.6,20.4,42,27,42z\"},\"child\":[]}]})(props);\n};\nexport function FcLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"4,24 18,12.3 18,35.7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"20\",\"width\":\"27\",\"height\":\"8\"},\"child\":[]}]}]})(props);\n};\nexport function FcLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"38\",\"width\":\"46\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"37\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"18\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"43,16 5,16 5,13 24,4 43,13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"34\",\"width\":\"38\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#EF6C00\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"25\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"37\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"16\",\"width\":\"4\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"36\",\"width\":\"42\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcLightAtTheEndOfTunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M6,10v28c0,2.2,1.8,4,4,4h28c2.2,0,4-1.8,4-4V10c0-2.2-1.8-4-4-4H10C7.8,6,6,7.8,6,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CCF2F6\",\"d\":\"M27.9,28.9h-5.8l-8.4,7.2l6-7.2v-2.4l-3,0.8l3-1.9v-1.5c0-0.8,0.1-1.7,0.6-2.4l-7.5-8.3l8.7,7.2 c0.7-0.7,1.5-1.1,2.5-1.2l0.6-7.3l1.1,7.3c0.3,0,0.6,0.1,0.8,0.1l1.2-1.2l-0.3,1.7c0.3,0.1,0.4,0.3,0.7,0.6l4.4-2.8l-3.6,3.9 c0.3,0.4,0.6,1,0.7,1.7l2.2,0.1l-2.2,0.8c0,0.3,0,1.5,0,1.5l2.6,1.4l-2.6-0.3c0,0,0,1.8,0,2.2l6.2,7.1L27.9,28.9z\"},\"child\":[]}]})(props);\n};\nexport function FcLikePlaceholder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCDD2\",\"d\":\"M34,9c-4.2,0-7.9,2.1-10,5.4C21.9,11.1,18.2,9,14,9C7.4,9,2,14.4,2,21c0,11.9,22,24,22,24s22-12,22-24 C46,14.4,40.6,9,34,9z\"},\"child\":[]}]})(props);\n};\nexport function FcLike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M34,9c-4.2,0-7.9,2.1-10,5.4C21.9,11.1,18.2,9,14,9C7.4,9,2,14.4,2,21c0,11.9,22,24,22,24s22-12,22-24 C46,14.4,40.6,9,34,9z\"},\"child\":[]}]})(props);\n};\nexport function FcLineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"38\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"40\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"33\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"35\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"40\",\"cy\":\"31\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"39.1,29.2 31.8,32.9 23.5,30.8 15.5,37.8 8.5,36.1 7.5,39.9 16.5,42.2 24.5,35.2 32.2,37.1 40.9,32.8\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"20\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"22\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"15\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"20\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"40\",\"cy\":\"8\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38.3,6.9c-2.1,3.2-5.3,8-6.9,10.4c-1.2-0.7-3.1-2-6.4-4l-1.3-0.8l-8.3,7.3l-7-1.7l-1,3.9l9,2.3l7.7-6.7 c2.6,1.6,5.8,3.6,6.5,4.1l0.5,0.5l0.9-0.1c1.1-0.1,1.1-0.1,9.5-12.9L38.3,6.9z\"},\"child\":[]}]}]})(props);\n};\nexport function FcLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,13h-3c-5.5,0-10,4.5-10,10s4.5,10,10,10h3c5.5,0,10-4.5,10-10S43.5,13,38,13z M38,29h-3 c-3.3,0-6-2.7-6-6s2.7-6,6-6h3c3.3,0,6,2.7,6,6S41.3,29,38,29z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13,13h-3C4.5,13,0,17.5,0,23s4.5,10,10,10h3c5.5,0,10-4.5,10-10S18.5,13,13,13z M13,29h-3 c-3.3,0-6-2.7-6-6s2.7-6,6-6h3c3.3,0,6,2.7,6,6S16.3,29,13,29z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#42A5F5\",\"d\":\"M33,21H15c-1.1,0-2,0.9-2,2s0.9,2,2,2h18c1.1,0,2-0.9,2-2S34.1,21,33,21z\"},\"child\":[]}]})(props);\n};\nexport function FcLinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 2 48 48\",\"enableBackground\":\"new 0 2 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#ECEFF1\",\"points\":\"20.1,18.2 20.2,20.5 18.6,23.5 16.1,28.4 15.6,32.5 17.4,38.3 21.5,40.6 27.7,40.6 33.5,36.2 \\r\\n\\t36.1,29.3 30.1,22 28.4,17.9 \"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#263238\",\"d\":\"M34.3,23.9c-1.6-2.3-2.9-3.7-3.6-6.6c-0.7-2.9,0.2-2.1-0.4-4.6c-0.3-1.3-0.8-2.2-1.3-2.9\\r\\n\\tc-0.6-0.7-1.3-1.1-1.7-1.2c-0.9-0.5-3-1.3-5.6,0.1c-2.7,1.4-2.4,4.4-1.9,10.5c0,0.4-0.1,0.9-0.3,1.3c-0.4,0.9-1.1,1.7-1.7,2.4\\r\\n\\tc-0.7,1-1.4,2-1.9,3.1c-1.2,2.3-2.3,5.2-2,6.3c0.5-0.1,6.8,9.5,6.8,9.7c0.4-0.1,2.1-0.1,3.6-0.1c2.1-0.1,3.3-0.2,5,0.2\\r\\n\\tc0-0.3-0.1-0.6-0.1-0.9c0-0.6,0.1-1.1,0.2-1.8c0.1-0.5,0.2-1,0.3-1.6c-1,0.9-2.8,1.9-4.5,2.2c-1.5,0.3-4-0.2-5.2-1.7\\r\\n\\tc0.1,0,0.3,0,0.4-0.1c0.3-0.1,0.6-0.2,0.7-0.4c0.3-0.5,0.1-1-0.1-1.3c-0.2-0.3-1.7-1.4-2.4-2c-0.7-0.6-1.1-0.9-1.5-1.3\\r\\n\\tc0,0-0.6-0.6-0.8-0.8c-0.2-0.2-0.3-0.4-0.4-0.5c-0.2-0.5-0.3-1.1-0.2-1.9c0.1-1.1,0.5-2,1-3c0.2-0.4,0.7-1.2,0.7-1.2\\r\\n\\ts-1.7,4.2-0.8,5.5c0,0,0.1-1.3,0.5-2.6c0.3-0.9,0.8-2.2,1.4-2.9s2.1-3.3,2.2-4.9c0-0.7,0.1-1.4,0.1-1.9c-0.4-0.4,6.6-1.4,7-0.3\\r\\n\\tc0.1,0.4,1.5,4,2.3,5.9c0.4,0.9,0.9,1.7,1.2,2.7c0.3,1.1,0.5,2.6,0.5,4.1c0,0.3,0,0.8-0.1,1.3c0.2,0,4.1-4.2-0.5-7.7\\r\\n\\tc0,0,2.8,1.3,2.9,3.9c0.1,2.1-0.8,3.8-1,4.1c0.1,0,2.1,0.9,2.2,0.9c0.4,0,1.2-0.3,1.2-0.3c0.1-0.3,0.4-1.1,0.4-1.4\\r\\n\\tC37.6,29.9,35.9,26.2,34.3,23.9z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#ECEFF1\",\"cx\":\"21.6\",\"cy\":\"15.3\",\"rx\":\"1.3\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#ECEFF1\",\"cx\":\"26.1\",\"cy\":\"15.2\",\"rx\":\"1.7\",\"ry\":\"2.3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"transform\":\"matrix(-0.1254 -0.9921 0.9921 -0.1254 8.9754 38.9969)\",\"fill\":\"#212121\",\"cx\":\"21.7\",\"cy\":\"15.5\",\"rx\":\"1.2\",\"ry\":\"0.7\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#212121\",\"cx\":\"26\",\"cy\":\"15.6\",\"rx\":\"1\",\"ry\":\"1.3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M39.3,37.6c-0.4-0.2-1.1-0.5-1.7-1.4c-0.3-0.5-0.2-1.9-0.7-2.5c-0.3-0.4-0.7-0.2-0.8-0.2\\r\\n\\t\\tc-0.9,0.2-3,1.6-4.4,0c-0.2-0.2-0.5-0.5-1-0.5c-0.5,0-0.7,0.2-0.9,0.6s-0.2,0.7-0.2,1.7c0,0.8,0,1.7-0.1,2.4\\r\\n\\t\\tc-0.2,1.7-0.5,2.7-0.5,3.7c0,1.1,0.3,1.8,0.7,2.1c0.3,0.3,0.8,0.5,1.9,0.5c1.1,0,1.8-0.4,2.5-1.1c0.5-0.5,0.9-0.7,2.3-1.7\\r\\n\\t\\tc1.1-0.7,2.8-1.6,3.1-1.9c0.2-0.2,0.5-0.3,0.5-0.9C40,37.9,39.6,37.7,39.3,37.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M19.2,37.9c-1-1.6-1.1-1.9-1.8-2.9c-0.6-1-1.9-2.9-2.7-2.9c-0.6,0-0.9,0.3-1.3,0.7\\r\\n\\t\\tc-0.4,0.4-0.8,1.3-1.5,1.8c-0.6,0.5-2.3,0.4-2.7,1c-0.4,0.6,0.4,1.5,0.4,3c0,0.6-0.5,1-0.6,1.4c-0.1,0.5-0.2,0.8,0,1.2\\r\\n\\t\\tc0.4,0.6,0.9,0.8,4.3,1.5c1.8,0.4,3.5,1.4,4.6,1.5c1.1,0.1,3,0,3-2.7C21,39.9,20.1,39.5,19.2,37.9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M21.1,19.8C20.5,19.4,20,19,20,18.4c0-0.6,0.4-0.8,1-1.3c0.1-0.1,1.2-1.1,2.3-1.1s2.4,0.7,2.9,0.9\\r\\n\\t\\tc0.9,0.2,1.8,0.4,1.7,1.1c-0.1,1-0.2,1.2-1.2,1.7c-0.7,0.2-2,1.3-2.9,1.3c-0.4,0-1,0-1.4-0.1C22.1,20.8,21.6,20.3,21.1,19.8z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#634703\",\"d\":\"M20.9,19c0.2,0.2,0.5,0.4,0.8,0.5c0.2,0.1,0.5,0.2,0.5,0.2c0.4,0,0.7,0,0.9,0c0.5,0,1.2-0.2,1.9-0.6\\r\\n\\t\\tc0.7-0.3,0.8-0.5,1.3-0.7c0.5-0.3,1-0.6,0.8-0.7c-0.2-0.1-0.4,0-1.1,0.4c-0.6,0.4-1.1,0.6-1.7,0.9c-0.3,0.1-0.7,0.3-1,0.3\\r\\n\\t\\tc-0.3,0-0.6,0-0.9,0c-0.3,0-0.5-0.1-0.8-0.2c-0.2-0.1-0.3-0.2-0.4-0.2c-0.2-0.1-0.6-0.5-0.8-0.6c0,0-0.2,0-0.1,0.1\\r\\n\\t\\tC20.6,18.7,20.7,18.8,20.9,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#634703\",\"d\":\"M23.9,16.8c0.1,0.2,0.3,0.2,0.4,0.3c0.1,0.1,0.2,0.1,0.2,0.1c0.1-0.1,0-0.3-0.1-0.3\\r\\n\\t\\tC24.4,16.7,23.9,16.7,23.9,16.8z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#634703\",\"d\":\"M22.3,17c0,0.1,0.2,0.2,0.2,0.1c0.1-0.1,0.2-0.2,0.3-0.2c0.2-0.1,0.1-0.2-0.2-0.2\\r\\n\\t\\tC22.4,16.8,22.4,16.9,22.3,17z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M32,34.7c0,0.1,0,0.2,0,0.3c0.2,0.4,0.7,0.5,1.1,0.5c0.6,0,1.2-0.4,1.5-0.8c0-0.1,0.1-0.2,0.2-0.3\\r\\n\\tc0.2-0.3,0.3-0.5,0.4-0.6c0,0-0.1-0.1-0.1-0.2c-0.1-0.2-0.4-0.4-0.8-0.5c-0.3-0.1-0.8-0.2-1-0.2c-0.9-0.1-1.4,0.2-1.7,0.5\\r\\n\\tc0,0,0.1,0,0.1,0.1c0.2,0.2,0.3,0.4,0.3,0.7C32.1,34.4,32,34.5,32,34.7z\"},\"child\":[]}]})(props);\n};\nexport function FcList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"22\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"30\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"6\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"38\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"22\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"30\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"6\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"38\",\"width\":\"28\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcLockLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M7,10h34c2.2,0,4,1.8,4,4v20c0,2.2-1.8,4-4,4H7c-2.2,0-4-1.8-4-4V14C3,11.8,4.8,10,7,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M42,34V14c0-0.6-0.4-1-1-1H7c-0.6,0-1,0.4-1,1v20c0,0.6,0.4,1,1,1h34C41.6,35,42,34.6,42,34z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M29,31H19c-0.6,0-1-0.4-1-1v-6c0-0.6,0.4-1,1-1h10c0.6,0,1,0.4,1,1v6C30,30.6,29.6,31,29,31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,17c-2.2,0-4,1.8-4,4v3h2v-3c0-1.1,0.9-2,2-2s2,0.9,2,2v3h2v-3C28,18.8,26.2,17,24,17z\"},\"child\":[]}]}]})(props);\n};\nexport function FcLockPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M10,41V7c0-2.2,1.8-4,4-4h20c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H14C11.8,45,10,43.2,10,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M34,6H14c-0.6,0-1,0.4-1,1v34c0,0.6,0.4,1,1,1h20c0.6,0,1-0.4,1-1V7C35,6.4,34.6,6,34,6z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M29,30H19c-0.6,0-1-0.4-1-1v-6c0-0.6,0.4-1,1-1h10c0.6,0,1,0.4,1,1v6C30,29.6,29.6,30,29,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,16c-2.2,0-4,1.8-4,4v3h2v-3c0-1.1,0.9-2,2-2s2,0.9,2,2v3h2v-3C28,17.8,26.2,16,24,16z\"},\"child\":[]}]}]})(props);\n};\nexport function FcLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M24,4c-5.5,0-10,4.5-10,10v4h4v-4c0-3.3,2.7-6,6-6s6,2.7,6,6v4h4v-4C34,8.5,29.5,4,24,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FB8C00\",\"d\":\"M36,44H12c-2.2,0-4-1.8-4-4V22c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v18C40,42.2,38.2,44,36,44z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#C76E00\",\"cx\":\"24\",\"cy\":\"31\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcLowBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#CFD8DC\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2v-9h24v9C36,43.1,35.1,44,34,44z\"},\"child\":[]}]})(props);\n};\nexport function FcLowPriority (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M21.2,44.8l-18-18c-1.6-1.6-1.6-4.1,0-5.7l18-18c1.6-1.6,4.1-1.6,5.7,0l18,18c1.6,1.6,1.6,4.1,0,5.7l-18,18 C25.3,46.4,22.7,46.4,21.2,44.8z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFEB3B\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,33.4 17,25 31,25\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"14.8\",\"width\":\"4\",\"height\":\"12.3\"},\"child\":[]}]}]})(props);\n};\nexport function FcMakeDecision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF5722\",\"points\":\"24,23.5 24,12.5 30.6,18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M28.9,24.4c0,0.2,0.1,0.4,0.1,0.6c0,2.8-2.2,5-5,5s-5-2.2-5-5s2.2-5,5-5c0.7,0,1.4,0.2,2,0.4v-4.2 c-0.6-0.1-1.3-0.2-2-0.2c-5,0-9,4-9,9s4,9,9,9s9-4,9-9c0-1.2-0.2-2.4-0.7-3.4L28.9,24.4z\"},\"child\":[]}]})(props);\n};\nexport function FcManager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF9800\",\"points\":\"24,37 19,31 19,25 29,25 29,31\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M33,13c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,5,4,9,9,9s9-4,9-9C33,18.9,33,14.1,33,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M24,4c-6.1,0-10,4.9-10,11c0,0.8,0,2.3,0,2.3l2,1.7v-5l12-4l4,4v5l2-1.7c0,0,0-1.5,0-2.3c0-4-1-8-6-9l-1-2 H24z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"28\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M29,31L29,31l-5,1l-5-1c0,0-11,2-11,13h32C40,33,29,31,29,31z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"23,35 22,44 26,44 25,35 26,34 24,32 22,34\"},\"child\":[]}]})(props);\n};\nexport function FcMediumPriority (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFC107\",\"d\":\"M21.2,44.8l-18-18c-1.6-1.6-1.6-4.1,0-5.7l18-18c1.6-1.6,4.1-1.6,5.7,0l18,18c1.6,1.6,1.6,4.1,0,5.7l-18,18 C25.3,46.4,22.7,46.4,21.2,44.8z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#607D8B\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"22\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"10\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"34\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcMiddleBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#CFD8DC\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V8c0-1.1,0.9-2,2-2h20c1.1,0,2,0.9,2,2v34C36,43.1,35.1,44,34,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,13h-8c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h8c0.6,0,1,0.4,1,1v7C29,12.6,28.6,13,28,13z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M34,44H14c-1.1,0-2-0.9-2-2V23h24v19C36,43.1,35.1,44,34,44z\"},\"child\":[]}]})(props);\n};\nexport function FcMindMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CFD8DC\",\"points\":\"39.4,23 38.6,19 26,21.6 26,8 22,8 22,20.3 8.1,11.3 5.9,14.7 21.1,24.5 9.4,39.8 12.6,42.2 23.9,27.4 32.3,40.1 35.7,37.9 27.3,25.4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#3F51B5\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"8\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"21\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"13\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"41\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"34\",\"cy\":\"39\",\"r\":\"5\"},\"child\":[]}]}]})(props);\n};\nexport function FcMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"21\",\"fill\":\"#5C6BC0\",\"width\":\"32\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FcMissedCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#F44336\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"30.3,12.9 24,19.2 15.7,10.9 12.9,13.7 24,24.8 33.1,15.7\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,19 27,10 36,10\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M44.5,30.8l-2.4-2.4c-8.5-8.3-28.9-7.1-36.2,0l-2.4,2.4c-0.7,0.7-0.7,1.7,0,2.4l4.8,4.7 c0.7,0.7,1.7,0.7,2.4,0l5.3-5.1l-0.4-5.6c1.7-1.7,15.1-1.7,16.8,0L32.1,33l5.1,4.9c0.7,0.7,1.7,0.7,2.4,0l4.8-4.7 C45.2,32.5,45.2,31.4,44.5,30.8z\"},\"child\":[]}]})(props);\n};\nexport function FcMms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E91E63\",\"d\":\"M37,39H11l-6,6V11c0-3.3,2.7-6,6-6h26c3.3,0,6,2.7,6,6v22C43,36.3,40.3,39,37,39z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#F48FB1\",\"points\":\"20,16.5 10,31 30,31\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#F8BBD0\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"34\",\"cy\":\"15\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"30,21 22,31 38,31\"},\"child\":[]}]}]})(props);\n};\nexport function FcMoneyTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20.9c0-1.3,0.6-2.5,1.7-3.3L24,0l18.3,12.8c1.1,0.7,1.7,2,1.7,3.3V37 C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"1\",\"fill\":\"#AED581\",\"width\":\"20\",\"height\":\"31\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#558B2F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13,0v33h22V0H13z M33,31H15V2h18V31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M34,3c0,1.7-0.3,3-2,3c-1.7,0-3-1.3-3-3s1.3-2,3-2C33.7,1,34,1.3,34,3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,1c1.7,0,3,0.3,3,2s-1.3,3-3,3s-2-1.3-2-3S14.3,1,16,1z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"8\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"20\",\"r\":\"6\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4l0-20l20,13l20-13v20C44,39.2,42.2,41,40,41z\"},\"child\":[]}]})(props);\n};\nexport function FcMultipleCameras (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M42,41H12c-2.2,0-4-1.8-4-4V17c0-2.2,1.8-4,4-4h30c2.2,0,4,1.8,4,4v20C46,39.2,44.2,41,42,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M36,36H6c-2.2,0-4-1.8-4-4V12c0-2.2,1.8-4,4-4h30c2.2,0,4,1.8,4,4v20C40,34.2,38.2,36,36,36z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#455A64\",\"cx\":\"26\",\"cy\":\"22\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#42A5F5\",\"cx\":\"26\",\"cy\":\"22\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M29.7,19.7c-1-1.1-2.3-1.7-3.7-1.7s-2.8,0.6-3.7,1.7c-0.4,0.4-0.3,1,0.1,1.4c0.4,0.4,1,0.3,1.4-0.1 c1.2-1.3,3.3-1.3,4.5,0c0.2,0.2,0.5,0.3,0.7,0.3c0.2,0,0.5-0.1,0.7-0.3C30.1,20.7,30.1,20.1,29.7,19.7z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"12\",\"fill\":\"#ADD8FB\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcMultipleDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M4,28V8c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v20c0,2.2-1.8,4-4,4H8C5.8,32,4,30.2,4,28z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M36,7H8C7.4,7,7,7.4,7,8v20c0,0.6,0.4,1,1,1h28c0.6,0,1-0.4,1-1V8C37,7.4,36.6,7,36,7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M38,33H6c-2.2,0-4-1.8-4-4v0h40v0C42,31.2,40.2,33,38,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M24,40V16c0-2.2,1.8-4,4-4h12c2.2,0,4,1.8,4,4v24c0,2.2-1.8,4-4,4H28C25.8,44,24,42.2,24,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M40,15H28c-0.6,0-1,0.4-1,1v22c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V16C41,15.4,40.6,15,40,15z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"34\",\"cy\":\"41.5\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcMultipleInputs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90A4AE\",\"d\":\"M40,35v5H8v-5H4v5c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4v-5H40z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,23.4 17,15 31,15\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"4\",\"width\":\"4\",\"height\":\"14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M31.5,26.9L30.8,28l3.5,1.9l0.6-1.2c1.6-3,2.6-4.7,3.5-5.2C39.3,23,41,23,44,23v-4 C36.3,19,35.6,19.4,31.5,26.9z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"38.4,31 29.4,35 28,25\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5,26.9l0.6,1.2L13.6,30L13,28.8c-1.6-3-2.6-4.7-3.5-5.2C8.7,23,7,23,4,23v-4 C11.7,19,12.4,19.4,16.5,26.9z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"20,25 18.6,35 9.6,31\"},\"child\":[]}]}]})(props);\n};\nexport function FcMultipleSmartphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M4,31V8c0-2.2,1.8-4,4-4h12c2.2,0,4,1.8,4,4v23c0,2.2-1.8,4-4,4H8C5.8,35,4,33.2,4,31z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M20,7H8C7.4,7,7,7.4,7,8v21c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V8C21,7.4,20.6,7,20,7z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"14\",\"cy\":\"32.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M14,36V13c0-2.2,1.8-4,4-4h12c2.2,0,4,1.8,4,4v23c0,2.2-1.8,4-4,4H18C15.8,40,14,38.2,14,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M30,12H18c-0.6,0-1,0.4-1,1v21c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V13C31,12.4,30.6,12,30,12z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"24\",\"cy\":\"37.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M24,40V18c0-2.2,1.8-4,4-4h12c2.2,0,4,1.8,4,4v22c0,2.2-1.8,4-4,4H28C25.8,44,24,42.2,24,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M40,17H28c-0.6,0-1,0.4-1,1v20c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V18C41,17.4,40.6,17,40,17z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"34\",\"cy\":\"41.5\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#E91E63\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"33\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,6 24,33 28,33 28,14 39,17 39,10\"},\"child\":[]}]}]})(props);\n};\nexport function FcNegativeDynamic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"22\",\"width\":\"10\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"8\",\"width\":\"10\",\"height\":\"34\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"30\",\"width\":\"10\",\"height\":\"12\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"42,12 32,22 42,22\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"6.9\",\"transform\":\"matrix(.707 -.707 .707 .707 .059 28.142)\",\"width\":\"4\",\"height\":\"14.1\"},\"child\":[]}]}]})(props);\n};\nexport function FcNeutralDecision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFCC80\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,4C15.2,4,8,11.2,8,20c0,1.2,0,3.5,0,3.5l2.1,0.6V19l19.5-6.3l8.2,6.3v5.1l2.1-0.6c0,0,0-2.3,0-3.5 C40,12.5,34.6,4,24,4z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"25\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"32\",\"cy\":\"25\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"25\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcNeutralTrading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"43.4,13 35,20 35,6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"11\",\"width\":\"34\",\"height\":\"4\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"40\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"34\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"28\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"10\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"23\",\"width\":\"4\",\"height\":\"19\"},\"child\":[]}]}]})(props);\n};\nexport function FcNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M32,15v28H10c-2.2,0-4-1.8-4-4V15H32z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCCBC\",\"d\":\"M14,5v34c0,2.2-1.8,4-4,4h29c2.2,0,4-1.8,4-4V5H14z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF5722\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"10\",\"width\":\"18\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"17\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"17\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"21\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"21\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"25\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"25\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"29\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"29\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"33\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"33\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"37\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"37\",\"width\":\"8\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"17.1,5 14,8.1 29.9,24 14,39.9 17.1,43 36,24\"},\"child\":[]}]})(props);\n};\nexport function FcNfcSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M37,42c-0.3,0-0.7-0.1-1-0.3c-1-0.5-1.3-1.8-0.8-2.7c0-0.1,3.7-6.8,3.7-15S35.3,9,35.3,9\\r\\n\\tc-0.5-1-0.2-2.2,0.8-2.7c1-0.5,2.2-0.2,2.7,0.8c0.2,0.3,4.3,7.6,4.3,17s-4.1,16.7-4.3,17C38.4,41.6,37.7,42,37,42z M32.8,35.8\\r\\n\\tc0.1-0.2,2.2-5,2.2-11.8c0-6.8-2.1-11.6-2.2-11.8c-0.4-1-1.6-1.5-2.6-1c-1,0.4-1.5,1.6-1,2.6c0,0,1.8,4.3,1.8,10.2\\r\\n\\tc0,5.9-1.8,10.2-1.8,10.2c-0.4,1,0,2.2,1,2.6c0.3,0.1,0.5,0.2,0.8,0.2C31.8,37,32.5,36.6,32.8,35.8z M23.3,33c0.6-0.1,1.1-0.5,1.4-1\\r\\n\\tc0.1-0.2,2.3-3.9,2.3-8c0-4.1-2.2-7.9-2.3-8c-0.6-1-1.8-1.3-2.7-0.7c-1,0.6-1.3,1.8-0.7,2.7c0,0,1.7,3,1.7,6c0,1.3-0.3,2.7-0.7,3.7\\r\\n\\tl-13-11.2c-0.5-0.4-1.2-0.6-1.8-0.4c-0.6,0.2-1.2,0.6-1.4,1.3C6.1,17.5,5,20.5,5,24c0,3.5,1.1,6.5,1.1,6.7c0.4,1,1.5,1.6,2.6,1.2\\r\\n\\tc1-0.4,1.6-1.5,1.2-2.6c0,0-0.9-2.6-0.9-5.3c0-0.8,0.1-1.6,0.2-2.3l12.5,10.8c0.4,0.3,0.8,0.5,1.3,0.5C23.1,33,23.2,33,23.3,33z\"},\"child\":[]}]})(props);\n};\nexport function FcNightLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#673AB7\",\"points\":\"16.5,18 0,42 33,42\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9575CD\",\"points\":\"33.6,24 19.2,42 48,42\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#40C4FF\",\"d\":\"M42.9,6.3C43.6,7.4,44,8.6,44,10c0,3.9-3.1,7-7,7c-0.7,0-1.3-0.1-1.9-0.3c1.2,2,3.4,3.3,5.9,3.3 c3.9,0,7-3.1,7-7C48,9.8,45.9,7.1,42.9,6.3z\"},\"child\":[]}]})(props);\n};\nexport function FcNightPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#40C4FF\",\"d\":\"M42.9,6.3C43.6,7.4,44,8.6,44,10c0,3.9-3.1,7-7,7c-0.7,0-1.3-0.1-1.9-0.3c1.2,2,3.4,3.3,5.9,3.3 c3.9,0,7-3.1,7-7C48,9.8,45.9,7.1,42.9,6.3z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B39DDB\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"31\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22,37 17,31 17,25 27,25 27,31\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#D1C4E9\",\"d\":\"M31,13c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,5,4,9,9,9s9-4,9-9C31,18.9,31,14.1,31,13z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#673AB7\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"26\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22,4c-6.1,0-10,4.9-10,11c0,0.8,0,2.3,0,2.3l2,1.7v-5l12-4l4,4v5l2-1.7c0,0,0-1.5,0-2.3c0-4-1-8-6-9l-1-2 H22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M27,31L27,31c0,0-2,1-5,1s-5-1-5-1S6,33,6,44h32C38,33,27,31,27,31z\"},\"child\":[]}]}]})(props);\n};\nexport function FcNoIdea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FBC02D\",\"d\":\"M37,22c0-7.7-6.6-13.8-14.5-12.9c-6,0.7-10.8,5.5-11.4,11.5c-0.5,4.6,1.4,8.7,4.6,11.3 c1.4,1.2,2.3,2.9,2.3,4.8V37h12v-0.1c0-1.8,0.8-3.6,2.2-4.8C35.1,29.7,37,26.1,37,22z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF59D\",\"d\":\"M30.6,20.2l-3-2c-0.3-0.2-0.8-0.2-1.1,0L24,19.8l-2.4-1.6c-0.3-0.2-0.8-0.2-1.1,0l-3,2 c-0.2,0.2-0.4,0.4-0.4,0.7s0,0.6,0.2,0.8l3.8,4.7V37h2V26c0-0.2-0.1-0.4-0.2-0.6l-3.3-4.1l1.5-1l2.4,1.6c0.3,0.2,0.8,0.2,1.1,0 l2.4-1.6l1.5,1l-3.3,4.1C25.1,25.6,25,25.8,25,26v11h2V26.4l3.8-4.7c0.2-0.2,0.3-0.5,0.2-0.8S30.8,20.3,30.6,20.2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#5C6BC0\",\"cx\":\"24\",\"cy\":\"44\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9FA8DA\",\"d\":\"M26,45h-4c-2.2,0-4-1.8-4-4v-5h12v5C30,43.2,28.2,45,26,45z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#5C6BC0\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M30,41l-11.6,1.6c0.3,0.7,0.9,1.4,1.6,1.8l9.4-1.3C29.8,42.5,30,41.8,30,41z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"18,38.7 18,40.7 30,39 30,37\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22\",\"y\":\"-2.9\",\"transform\":\"matrix(.707 -.707 .707 .707 -9.941 24)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"53.7\"},\"child\":[]}]})(props);\n};\nexport function FcNoVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M8,12h22c2.2,0,4,1.8,4,4v16c0,2.2-1.8,4-4,4H8c-2.2,0-4-1.8-4-4V16C4,13.8,5.8,12,8,12z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#388E3C\",\"points\":\"44,35 34,29 34,19 44,13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#212121\",\"strokeWidth\":\"4\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"x1\":\"5\",\"y1\":\"5\",\"x2\":\"43\",\"y2\":\"43\"},\"child\":[]}]})(props);\n};\nexport function FcNook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90A4AE\",\"d\":\"M8,39V9c0-3.3,2.7-6,6-6h20c3.3,0,6,2.7,6,6v30c0,3.3-2.7,6-6,6H14C10.7,45,8,42.3,8,39z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#ECEFF1\",\"d\":\"M34,7H14c-1.1,0-2,0.9-2,2v26c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V9C36,7.9,35.1,7,34,7z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"12\",\"width\":\"16\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"19\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"23\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"27\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"31\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#eee\",\"strokeWidth\":\"2\",\"strokeMiterlimit\":\"10\",\"d\":\"M22,43v-1c0-1.1,0.9-2,2-2h0c1.1,0,2,0.9,2,2v1\"},\"child\":[]}]})(props);\n};\nexport function FcNumericalSorting12 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#546E7A\",\"points\":\"38,33 38,5 34,5 34,33 28,33 36,43 44,33\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.4,20h-3V8.6L9.9,9.7V7.3L16,5.1h0.3V20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4,43H9.2v-2l4.8-5.1c0.4-0.4,0.7-0.8,0.9-1.1c0.2-0.3,0.5-0.6,0.6-0.9c0.2-0.3,0.3-0.5,0.3-0.8 c0.1-0.2,0.1-0.5,0.1-0.7c0-0.7-0.2-1.2-0.5-1.6c-0.3-0.4-0.8-0.6-1.4-0.6c-0.3,0-0.7,0.1-0.9,0.2c-0.3,0.1-0.5,0.3-0.7,0.5 c-0.2,0.2-0.3,0.5-0.4,0.8s-0.1,0.6-0.1,1h-3c0-0.7,0.1-1.3,0.4-1.9c0.2-0.6,0.6-1.1,1-1.6c0.5-0.4,1-0.8,1.6-1.1 c0.6-0.3,1.4-0.4,2.2-0.4c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.1,0.5,1.5,0.8s0.7,0.8,0.9,1.3s0.3,1.1,0.3,1.8c0,0.5-0.1,1-0.2,1.4 S18.3,34.5,18,35s-0.6,0.9-1,1.4c-0.4,0.5-0.9,1-1.4,1.5L13,40.6h6.4V43z\"},\"child\":[]}]}]})(props);\n};\nexport function FcNumericalSorting21 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#546E7A\",\"points\":\"38,33 38,5 34,5 34,33 28,33 36,43 44,33\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.2,20H9v-2l4.8-5.1c0.4-0.4,0.7-0.8,0.9-1.1c0.2-0.3,0.5-0.6,0.6-0.9c0.2-0.3,0.3-0.5,0.3-0.8 c0.1-0.2,0.1-0.5,0.1-0.7c0-0.7-0.2-1.2-0.5-1.6c-0.3-0.4-0.8-0.6-1.4-0.6c-0.3,0-0.7,0.1-0.9,0.2c-0.3,0.1-0.5,0.3-0.7,0.5 c-0.2,0.2-0.3,0.5-0.4,0.8s-0.1,0.6-0.1,1h-3c0-0.7,0.1-1.3,0.4-1.9c0.2-0.6,0.6-1.1,1-1.6c0.5-0.4,1-0.8,1.6-1.1 c0.6-0.3,1.4-0.4,2.2-0.4c0.8,0,1.5,0.1,2.1,0.3c0.6,0.2,1.1,0.5,1.5,0.8s0.7,0.8,0.9,1.3c0.2,0.5,0.3,1.1,0.3,1.8 c0,0.5-0.1,1-0.2,1.4s-0.4,0.9-0.7,1.4s-0.6,0.9-1,1.4c-0.4,0.5-0.9,1-1.4,1.5l-2.6,2.8h6.4V20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2,43h-3V31.6l-3.5,1.1v-2.4l6.2-2.2h0.3V43z\"},\"child\":[]}]}]})(props);\n};\nexport function FcOk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#4CAF50\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CCFF90\",\"points\":\"34.6,14.6 21,28.2 15.4,22.6 12.6,25.4 21,33.8 37.4,17.4\"},\"child\":[]}]})(props);\n};\nexport function FcOldTimeCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M14,13H8v-1.8C8,10.5,8.5,10,9.2,10h3.6c0.7,0,1.2,0.5,1.2,1.2V13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#5E35B1\",\"d\":\"M40,40H8c-2.2,0-4-1.8-4-4V22h40v14C44,38.2,42.2,40,40,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#42257A\",\"d\":\"M12.7,22c-0.4,1.3-0.7,2.6-0.7,4c0,6.6,5.4,12,12,12s12-5.4,12-12c0-1.4-0.3-2.7-0.7-4H12.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M8,12h32c2.2,0,4,1.8,4,4v6H4v-6C4,13.8,5.8,12,8,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M33.9,13.1H14.2L17.6,8c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,13.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M35.3,22c-1.6-4.7-6.1-8-11.3-8s-9.7,3.3-11.3,8H35.3z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B388FF\",\"cx\":\"24\",\"cy\":\"26\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#C7A7FF\",\"d\":\"M29,23c-1.2-1.4-3-2.2-4.8-2.2c-1.8,0-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.4,24.4,29.5,23.5,29,23z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"15\",\"fill\":\"#DBE2E5\",\"width\":\"5\",\"height\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FcOnlineSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"30\",\"fill\":\"#BF360C\",\"width\":\"22\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"26\",\"r\":\"4\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M39,19c0-12.7-30-8.3-30,0c0,1.8,0,8.2,0,10c0,8.3,6.7,15,15,15s15-6.7,15-15C39,27.2,39,20.8,39,19z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"30\",\"cy\":\"26\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"26\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M24,2C15.5,2,3,7.8,3,35.6L13,42V24l16.8-9.8L35,21v21l10-8.2c0-5.6-0.9-29-15.4-29L28.2,2H24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#757575\",\"d\":\"M45,24c-0.6,0-1,0.4-1,1v-7c0-8.8-7.2-16-16-16h-9c-0.6,0-1,0.4-1,1s0.4,1,1,1h9c7.7,0,14,6.3,14,14v10 c0,0.6,0.4,1,1,1s1-0.4,1-1v2c0,3.9-3.1,7-7,7H24c-0.6,0-1,0.4-1,1s0.4,1,1,1h13c5,0,9-4,9-9v-5C46,24.4,45.6,24,45,24z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45,22h-1c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2h1c1.1,0,2-0.9,2-2v-4C47,22.9,46.1,22,45,22z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"38\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcOpenedFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFA000\",\"d\":\"M38,12H22l-4-4H8c-2.2,0-4,1.8-4,4v24c0,2.2,1.8,4,4,4h31c1.7,0,3-1.3,3-3V16C42,13.8,40.2,12,38,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFCA28\",\"d\":\"M42.2,18H15.3c-1.9,0-3.6,1.4-3.9,3.3L8,40h31.7c1.9,0,3.6-1.4,3.9-3.3l2.5-14C46.6,20.3,44.7,18,42.2,18z\"},\"child\":[]}]})(props);\n};\nexport function FcOrgUnit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M10,10v28h28V10H10z M34,34H14V14h20V34z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"6\",\"fill\":\"#D81B60\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"6\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"30\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"30\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcOrganization (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M42,42H6V10c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4V42z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"42\",\"fill\":\"#64B5F6\",\"width\":\"36\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"27\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"35\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"35\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"19\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"11\",\"width\":\"6\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"35\",\"width\":\"6\",\"height\":\"9\"},\"child\":[]}]}]})(props);\n};\nexport function FcOvertime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M12,40V20h32v20c0,2.2-1.8,4-4,4H16C13.8,44,12,42.2,12,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M44,16v6H12v-6c0-2.2,1.8-4,4-4h24C42.2,12,44,13.8,44,16z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M37,10c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2s2-0.9,2-2v-4C39,10.9,38.1,10,37,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20,10c-1.1,0-2,0.9-2,2v4c0,1.1,0.9,2,2,2s2-0.9,2-2v-4C22,10.9,21.1,10,20,10z\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"34\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"26\",\"y\":\"34\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"34\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"28\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"26\",\"y\":\"28\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"28\",\"fill\":\"#90A4AE\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"16\",\"cy\":\"15\",\"r\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#eee\",\"cx\":\"16\",\"cy\":\"15\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"8\",\"width\":\"2\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16.9\",\"y\":\"14.2\",\"transform\":\"matrix(-.707 .707 -.707 -.707 42.506 16.192)\",\"width\":\"1.9\",\"height\":\"5.4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"15\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M38,42H10c-2.2,0-4-1.8-4-4V10c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v28C42,40.2,40.2,42,38,42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#8A5100\",\"d\":\"M29.5,16h-11c-0.8,0-1.5-0.7-1.5-1.5v0c0-0.8,0.7-1.5,1.5-1.5h11c0.8,0,1.5,0.7,1.5,1.5v0 C31,15.3,30.3,16,29.5,16z\"},\"child\":[]}]})(props);\n};\nexport function FcPaid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2E7D32\",\"d\":\"M25.4,5.6c-0.8-0.8-2-0.8-2.8,0l-12,12c-0.8,0.8-0.8,2,0,2.8C11,20.8,11.5,21,12,21s1-0.2,1.4-0.6l12-12 C26.2,7.6,26.2,6.4,25.4,5.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1B5E20\",\"d\":\"M37.4,17.6l-12-12c-0.8-0.8-2-0.8-2.8,0c-0.8,0.8-0.8,2,0,2.8l12,12C35,20.8,35.5,21,36,21s1-0.2,1.4-0.6 C38.2,19.6,38.2,18.4,37.4,17.6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#388E3C\",\"d\":\"M37.4,41H10.6c-1,0-1.8-0.7-2-1.6L5,21h38l-3.7,18.4C39.1,40.3,38.3,41,37.4,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M43,23H5c-1.1,0-2-0.9-2-2v-2c0-1.1,0.9-2,2-2h38c1.1,0,2,0.9,2,2v2C45,22.1,44.1,23,43,23z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#DCEDC8\",\"points\":\"30.8,24.8 22.9,32.7 19.2,28.9 17,31.1 22.9,37 33,26.9\"},\"child\":[]}]})(props);\n};\nexport function FcPanorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F57C00\",\"d\":\"M4,9v32c0,0,8.4-3,20-3s20,3,20,3V9c0,0-6.7,3-20,3S4,9,4,9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#942A09\",\"d\":\"M24,34c0.1,0,0.3,0,0.4,0L15,19L6.9,36.2C10.3,35.3,16.5,34,24,34z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BF360C\",\"d\":\"M24,34c3.3,0,6.3,0.2,9,0.6l-8-11.8l-7.8,11.5C19.3,34.1,21.6,34,24,34z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E65100\",\"d\":\"M40.7,36L35,26.5l-5,7.8C34.5,34.7,38.2,35.4,40.7,36z\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#FFF9C4\",\"cx\":\"36\",\"cy\":\"19.5\",\"rx\":\"2\",\"ry\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FcParallelTasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"36,13 36,9 22,9 22,22 13,22 13,26 22,26 22,39 36,39 36,35 26,35 26,26 36,26 36,22 26,22 26,13\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"17\",\"fill\":\"#D81B60\",\"width\":\"10\",\"height\":\"14\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"6\",\"fill\":\"#2196F3\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"32\",\"fill\":\"#2196F3\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"19\",\"fill\":\"#2196F3\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FcPhoneAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M12,40V8c0-2.2,1.8-4,4-4h16c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H16C13.8,44,12,42.2,12,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M32,7H16c-0.6,0-1,0.4-1,1v29c0,0.6,0.4,1,1,1h16c0.6,0,1-0.4,1-1V8C33,7.4,32.6,7,32,7z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"40\",\"fill\":\"#78909C\",\"width\":\"6\",\"height\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M39.1,7l-3.7,0C22.2,7.2,7.1,24.1,7,35.4l0,3.7c0,1,0.8,1.9,1.9,1.9l7.5-0.1c1,0,1.9-0.9,1.9-1.9l0.2-8.2 l-4.7-4c0-2.6,10.5-13.1,13.2-13.2l4.3,4.7l7.9-0.2c1,0,1.9-0.9,1.9-1.9L41,8.9C41,7.8,40.2,7,39.1,7z\"},\"child\":[]}]})(props);\n};\nexport function FcPhotoReel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#673AB7\",\"d\":\"M10,9c-2.2,0-4,1.8-4,4v26c0,2.2,1.8,4,4,4h16c2.2,0,4-1.8,4-4V13c0-2.2-1.8-4-4-4\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#311B92\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"13\",\"width\":\"2\",\"height\":\"26\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,9V7c0-1.2-0.8-2-2-2h-8c-1.2,0-2,0.8-2,2v2H24z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#D84315\",\"d\":\"M30,13H16v26h14V13z M21,37h-3v-4h3V37z M21,19h-3v-4h3V19z M27,37h-3v-4h3V37z M24,19v-4h3v4H24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF5722\",\"d\":\"M30,13v2h3v4h-3v14h3v4h-3v2h12V13H30z M39,37h-3v-4h3V37z M39,19h-3v-4h3V19z\"},\"child\":[]}]})(props);\n};\nexport function FcPicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F57C00\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v26C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFF9C4\",\"cx\":\"35\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#942A09\",\"points\":\"20,16 9,32 31,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#BF360C\",\"points\":\"31,22 23,32 39,32\"},\"child\":[]}]})(props);\n};\nexport function FcPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#00BCD4\",\"d\":\"M24,6C14.1,6,6,14.1,6,24s8.1,18,18,18c5.2,0,9.9-2.2,13.1-5.7L24,24V6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#448AFF\",\"d\":\"M42,24c0-9.9-8.1-18-18-18v18H42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M24,24l13.1,12.3c3-3.2,4.9-7.5,4.9-12.3H24z\"},\"child\":[]}]})(props);\n};\nexport function FcPlanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M5,38V14h38v24c0,2.2-1.8,4-4,4H9C6.8,42,5,40.2,5,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M43,10v6H5v-6c0-2.2,1.8-4,4-4h30C41.2,6,43,7.8,43,10z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B71C1C\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M33,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C35,3.9,34.1,3,33,3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15,3c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2s2-0.9,2-2V5C17,3.9,16.1,3,15,3z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"21\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"21\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"29\",\"y\":\"21\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"29\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"29\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"29\",\"y\":\"29\",\"fill\":\"#F44336\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FcPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#4CAF50\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"14\",\"width\":\"6\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"21\",\"width\":\"20\",\"height\":\"6\"},\"child\":[]}]}]})(props);\n};\nexport function FcPodiumWithAudience (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B0BEC5\",\"points\":\"41,12 7,12 6,16 11,19 9,16 39,16 37,19 42,16\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#78909C\",\"points\":\"9,16 39,16 35,28 13,28\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"24\",\"cy\":\"28\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"36\",\"cy\":\"28\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"12\",\"cy\":\"28\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"18\",\"cy\":\"37\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"30\",\"cy\":\"37\",\"r\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FcPodiumWithSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"24\",\"cy\":\"11\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M36,26.1c0,0-3.3-7.1-12-7.1s-12,7.1-12,7.1V30h24V26.1z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B0BEC5\",\"points\":\"41,25 7,25 6,29 11,32 9,29 39,29 37,32 42,29\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#78909C\",\"points\":\"9,29 39,29 35,41 13,41\"},\"child\":[]}]})(props);\n};\nexport function FcPodiumWithoutSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B0BEC5\",\"points\":\"43,16 5,16 4,20 9,23 7,20 41,20 39,23 44,20\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#78909C\",\"points\":\"7,20 41,20 37,36 11,36\"},\"child\":[]}]})(props);\n};\nexport function FcPortraitMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M22,38c-4.8,0-5-7-5-7v-6h10v6C27,31,26.8,38,22,38z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA726\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"31\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"19\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M31,13c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,5,4,9,9,9s9-4,9-9C31,18.9,31,14.1,31,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M22,4c-6.1,0-10,4.9-10,11c0,0.8,0,2.3,0,2.3l2,1.7v-5l12-4l4,4v5l2-1.7c0,0,0-1.5,0-2.3c0-4-1-8-6-9l-1-2 H22z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"26\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M27,31L27,31c0,0-1.8,2-5,2s-5-2-5-2S6,33,6,44h32C38,33,27,31,27,31z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF9800\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.1\",\"y\":\"6.1\",\"transform\":\"matrix(.707 .707 -.707 .707 19.787 -25.77)\",\"width\":\"9.9\",\"height\":\"9.9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36\",\"y\":\"6\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFEB3B\",\"cx\":\"41\",\"cy\":\"11\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcPositiveDynamic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"22\",\"width\":\"10\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"8\",\"width\":\"10\",\"height\":\"34\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"30\",\"width\":\"10\",\"height\":\"12\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11,8 21,18 21,8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"8.9\",\"transform\":\"matrix(-.707 -.707 .707 -.707 10.879 36.506)\",\"width\":\"4\",\"height\":\"14.1\"},\"child\":[]}]}]})(props);\n};\nexport function FcPrevious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#2196F3\",\"points\":\"30.9,43 34,39.9 18.1,24 34,8.1 30.9,5 12,24\"},\"child\":[]}]})(props);\n};\nexport function FcPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"11\",\"fill\":\"#424242\",\"width\":\"30\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#616161\",\"d\":\"M4,25h40v-7c0-2.2-1.8-4-4-4H8c-2.2,0-4,1.8-4,4V25z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M8,36h32c2.2,0,4-1.8,4-4v-8H4v8C4,34.2,5.8,36,8,36z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#00E676\",\"cx\":\"40\",\"cy\":\"18\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"4\",\"fill\":\"#90CAF9\",\"width\":\"26\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#242424\",\"d\":\"M37.5,31h-27C9.7,31,9,30.3,9,29.5v0c0-0.8,0.7-1.5,1.5-1.5h27c0.8,0,1.5,0.7,1.5,1.5v0 C39,30.3,38.3,31,37.5,31z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"31\",\"fill\":\"#90CAF9\",\"width\":\"26\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"29\",\"fill\":\"#42A5F5\",\"width\":\"26\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"33\",\"width\":\"17\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"37\",\"width\":\"13\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcPrivacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M24,4c-5.5,0-10,4.5-10,10v4h4v-4c0-3.3,2.7-6,6-6s6,2.7,6,6v4h4v-4C34,8.5,29.5,4,24,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FB8C00\",\"d\":\"M36,44H12c-2.2,0-4-1.8-4-4V22c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v18C40,42.2,38.2,44,36,44z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#EFEBE9\",\"cx\":\"24\",\"cy\":\"31\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#1E88E5\",\"cx\":\"24\",\"cy\":\"31\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#fff\",\"cx\":\"26\",\"cy\":\"29\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FcProcess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#9C27B0\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"31,8 42.9,9.6 33.1,19.4\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17,40 5.1,38.4 14.9,28.6\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"8,17 9.6,5.1 19.4,14.9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.3,21.2L5.1,22C5,22.7,5,23.3,5,24c0,4.6,1.6,9,4.6,12.4l3-2.6C10.3,31.1,9,27.6,9,24 C9,23.1,9.1,22.1,9.3,21.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,5c-5.4,0-10.2,2.3-13.7,5.9l2.8,2.8C15.9,10.8,19.7,9,24,9c0.9,0,1.9,0.1,2.8,0.3l0.7-3.9 C26.4,5.1,25.2,5,24,5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38.7,26.8l4.2-0.8c0.1-0.7,0.1-1.3,0.1-2c0-4.4-1.5-8.7-4.3-12.1l-3.1,2.5c2.2,2.7,3.4,6.1,3.4,9.5 C39,24.9,38.9,25.9,38.7,26.8z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M34.9,34.3C32.1,37.2,28.3,39,24,39c-0.9,0-1.9-0.1-2.8-0.3l-0.7,3.9c1.2,0.2,2.4,0.3,3.5,0.3 c5.4,0,10.2-2.3,13.7-5.9L34.9,34.3z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"40,31 38.4,42.9 28.6,33.1\"},\"child\":[]}]}]})(props);\n};\nexport function FcPuzzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M39,15c0-2.2-1.8-4-4-4h-6c-0.7,0-1.1-0.8-0.7-1.4c0.6-1,0.9-2.2,0.6-3.5c-0.4-2-1.9-3.6-3.8-4 C21.8,1.4,19,3.9,19,7c0,1,0.3,1.8,0.7,2.6c0.4,0.6,0,1.4-0.8,1.4h-6c-2.2,0-4,1.8-4,4v7c0,0.7,0.8,1.1,1.4,0.7 c1-0.6,2.2-0.9,3.5-0.6c2,0.4,3.6,1.9,4,3.8c0.7,3.2-1.8,6.1-4.9,6.1c-1,0-1.8-0.3-2.6-0.7C9.8,30.9,9,31.3,9,32v6c0,2.2,1.8,4,4,4 h22c2.2,0,4-1.8,4-4V15z\"},\"child\":[]}]})(props);\n};\nexport function FcQuestions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#42A5F5\",\"points\":\"36,44 8,44 8,8 28,8 36,16\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,40 12,40 12,4 32,4 40,12\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,13 31,13 31,5.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#1976D2\",\"d\":\"M24.5,28.3c0-4.7,3.6-4.4,3.6-7.2c0-0.7-0.2-2.1-2-2.1c-2,0-2.1,1.6-2.1,2h-2.7c0-0.7,0.3-4.2,4.8-4.2 c4.6,0,4.7,3.6,4.7,4.3c0,3.5-3.8,4-3.8,7.3H24.5z M24.3,31.8c0-0.2,0-1.5,1.5-1.5c1.4,0,1.5,1.3,1.5,1.5c0,0.4-0.2,1.4-1.5,1.4 C24.5,33.2,24.3,32.2,24.3,31.8z\"},\"child\":[]}]})(props);\n};\nexport function FcRadarPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M38.4,13L24.1,6.4L4.6,12.1l8.8,13.2l-2.2,15.1h22.7l6.6-13.3L38.4,13z M32.1,37.5H14.7l1.8-12.9L9.4,13.9 l14.5-4.3L35.6,15l1.8,11.7L32.1,37.5z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"8\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"27\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"39\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"25\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"33\",\"cy\":\"39\",\"r\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcRating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFCA28\",\"points\":\"24,11 27.9,18.9 36.6,20.2 30.3,26.3 31.8,35 24,30.9 16.2,35 17.7,26.3 11.4,20.2 20.1,18.9\"},\"child\":[]}]})(props);\n};\nexport function FcRatings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#42A5F5\",\"points\":\"36,44 8,44 8,8 28,8 36,16\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,40 12,40 12,4 32,4 40,12\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,13 31,13 31,5.5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#1976D2\",\"points\":\"34,20 27,20 29.4,22.4 27,24.9 23,20.9 16.9,26.9 19.1,29.1 23,25.1 27,29.1 31.6,24.6 34,27\"},\"child\":[]}]})(props);\n};\nexport function FcReadingEbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M33.5,27c-2.2-3-5.2-5-9.5-5s-7.3,2-9.5,5H33.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M34.1,43H13.9c-1.1,0-1.9-0.8-2-1.9l-0.8-13C11.1,27,12,26,13.1,26h21.8c1.2,0,2.1,1,2,2.1l-0.8,13 C36,42.2,35.2,43,34.1,43z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B0BEC5\",\"cx\":\"34\",\"cy\":\"29\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFB74D\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"12\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1,42.4L15,43.5c-0.6,0.6-1.6,0.6-2.2,0l-3.3-3.3c-0.6-0.6-0.6-1.6,0-2.2l1.1-1.1c1.3-1.3,3.1-1.3,4.4,0 l1.1,1.1C17.3,39.3,17.3,41.2,16.1,42.4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M31.9,38l1.1-1.1c1.3-1.3,3.1-1.3,4.4,0l1.1,1.1c0.6,0.6,0.6,1.6,0,2.2l-3.3,3.3c-0.6,0.6-1.6,0.6-2.2,0 l-1.1-1.1C30.7,41.2,30.7,39.3,31.9,38z\"},\"child\":[]}]}]})(props);\n};\nexport function FcReading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#5C6BC0\",\"d\":\"M40,40c-6.9,0-16,4-16,4V22c0,0,9-4,18-4L40,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7986CB\",\"d\":\"M8,40c6.9,0,16,4,16,4V22c0,0-9-4-18-4L8,40z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFB74D\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"12\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M41,32h1c0.6,0,1-0.4,1-1v-4c0-0.6-0.4-1-1-1h-1c-1.7,0-3,1.3-3,3v0C38,30.7,39.3,32,41,32z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7,26H6c-0.6,0-1,0.4-1,1v4c0,0.6,0.4,1,1,1h1c1.7,0,3-1.3,3-3v0C10,27.3,8.7,26,7,26z\"},\"child\":[]}]}]})(props);\n};\nexport function FcReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M12.193,19.555c-1.94-1.741-4.79-1.727-6.365,0.029c-1.576,1.756-1.301,5.023,0.926,6.632L12.193,19.555z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M35.807,19.555c1.939-1.741,4.789-1.727,6.365,0.029c1.575,1.756,1.302,5.023-0.927,6.632L35.807,19.555z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFFFFF\",\"cx\":\"38.32\",\"cy\":\"10.475\",\"r\":\"3.5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#FFFFFF\",\"cx\":\"24.085\",\"cy\":\"28.611\",\"rx\":\"18.085\",\"ry\":\"12.946\"},\"child\":[]}]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#D84315\",\"cx\":\"30.365\",\"cy\":\"26.39\",\"r\":\"2.884\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#D84315\",\"cx\":\"17.635\",\"cy\":\"26.39\",\"r\":\"2.884\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M24.002,34.902c-3.252,0-6.14-0.745-8.002-1.902c1.024,2.044,4.196,4,8.002,4c3.802,0,6.976-1.956,7.998-4\\r\\n\\t\\tC30.143,34.157,27.254,34.902,24.002,34.902z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M41.83,27.026l-1.17-1.621c0.831-0.6,1.373-1.556,1.488-2.623c0.105-0.98-0.157-1.903-0.721-2.531\\r\\n\\t\\tc-0.571-0.637-1.391-0.99-2.307-0.994c-0.927,0.013-1.894,0.365-2.646,1.041l-1.336-1.488c1.123-1.008,2.545-1.523,3.991-1.553\\r\\n\\t\\tc1.488,0.007,2.833,0.596,3.786,1.658c0.942,1.05,1.387,2.537,1.221,4.081C43.961,24.626,43.121,26.096,41.83,27.026z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M6.169,27.026c-1.29-0.932-2.131-2.401-2.306-4.031c-0.166-1.543,0.279-3.03,1.221-4.079\\r\\n\\t\\tc0.953-1.062,2.297-1.651,3.785-1.658c0.009,0,0.018,0,0.027,0c1.441,0,2.849,0.551,3.965,1.553l-1.336,1.488\\r\\n\\t\\tc-0.753-0.676-1.689-1.005-2.646-1.041c-0.916,0.004-1.735,0.357-2.306,0.994c-0.563,0.628-0.826,1.55-0.721,2.53\\r\\n\\t\\tc0.115,1.067,0.657,2.023,1.488,2.624L6.169,27.026z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M25,16.84h-2c0-2.885,0-10.548,4.979-10.548c2.154,0,3.193,1.211,3.952,2.096\\r\\n\\t\\tc0.629,0.734,0.961,1.086,1.616,1.086h1.37v2h-1.37c-1.604,0-2.453-0.99-3.135-1.785c-0.67-0.781-1.198-1.398-2.434-1.398\\r\\n\\t\\tC25.975,8.292,25,11.088,25,16.84z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M24.085,16.95c9.421,0,17.085,5.231,17.085,11.661c0,6.431-7.664,11.662-17.085,11.662S7,35.042,7,28.611\\r\\n\\t\\tC7,22.181,14.664,16.95,24.085,16.95 M24.085,14.95C13.544,14.95,5,21.066,5,28.611c0,7.546,8.545,13.662,19.085,13.662\\r\\n\\t\\tc10.54,0,19.085-6.116,19.085-13.662C43.17,21.066,34.625,14.95,24.085,14.95L24.085,14.95z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M38.32,7.975c1.379,0,2.5,1.122,2.5,2.5s-1.121,2.5-2.5,2.5s-2.5-1.122-2.5-2.5S36.941,7.975,38.32,7.975\\r\\n\\t\\t M38.32,5.975c-2.484,0-4.5,2.015-4.5,4.5s2.016,4.5,4.5,4.5c2.486,0,4.5-2.015,4.5-4.5S40.807,5.975,38.32,5.975L38.32,5.975z\"},\"child\":[]}]}]})(props);\n};\nexport function FcRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"43,18 29,6.3 29,29.7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20,14h12v8H20c-2.8,0-5,2.2-5,5s2.2,5,5,5h3v8h-3c-7.2,0-13-5.8-13-13S12.8,14,20,14z\"},\"child\":[]}]}]})(props);\n};\nexport function FcRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13,13c0-3.3,2.7-6,6-6h10c3.3,0,6,2.7,6,6h4c0-5.5-4.5-10-10-10H19C13.5,3,9,7.5,9,13v11.2h4V13z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"4.6,22 11,30.4 17.4,22\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1565C0\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35,35c0,3.3-2.7,6-6,6H19c-3.3,0-6-2.7-6-6H9c0,5.5,4.5,10,10,10h10c5.5,0,10-4.5,10-10V23h-4V35z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"30.6,26 37,17.6 43.4,26\"},\"child\":[]}]}]})(props);\n};\nexport function FcRegisteredTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E1BEE7\",\"d\":\"M25,26.8h-4.5v9h-4V12.5h8.2c1.3,0,2.5,0.2,3.6,0.5c1,0.3,1.9,0.8,2.6,1.3c0.7,0.6,1.3,1.3,1.6,2.2 s0.6,1.9,0.6,3c0,1.6-0.4,2.9-1.1,3.9c-0.8,1-1.8,1.9-3.1,2.4l5.2,9.7v0.2h-4.3L25,26.8z M20.5,23.6h4.2c0.7,0,1.4-0.1,1.9-0.3 c0.5-0.2,1-0.5,1.4-0.8c0.4-0.3,0.6-0.7,0.8-1.2c0.2-0.5,0.3-1,0.3-1.6c0-0.6-0.1-1.1-0.3-1.6c-0.2-0.5-0.4-0.9-0.8-1.2 c-0.4-0.3-0.8-0.6-1.4-0.8c-0.5-0.2-1.2-0.3-2-0.3h-4.1V23.6z\"},\"child\":[]}]})(props);\n};\nexport function FcRemoveImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8CBCD6\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v26C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#B3DDF5\",\"cx\":\"35\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9AC9E3\",\"points\":\"20,16 9,32 31,32\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#B3DDF5\",\"points\":\"31,22 23,32 39,32\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#F44336\",\"cx\":\"38\",\"cy\":\"38\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 .707 -.707 -.707 91.74 38)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36.5\",\"y\":\"32\",\"transform\":\"matrix(-.707 -.707 .707 -.707 38 91.74)\",\"width\":\"3\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcReuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#455A64\",\"points\":\"12.1,42 17.2,42 16.5,18.2 10.9,20.2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFB74D\",\"cx\":\"36.5\",\"cy\":\"10\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#607D8B\",\"points\":\"11,42 6,42 7.8,18.6 14.2,20.9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M31.7,15.9c-0.6-2-1.3-4-2.5-5.8c-1.3-1.6-3.2-3.1-6.1-2c-3.1,1.3-9.2,3.6-11.2,4.5 c-2.3,1.1-4.1,2.7-4.1,5.9c0,3.4,4.3,5.3,4.3,5.3l14.7-6.1l1.7,4.5l5.3,0.1C33.8,22.4,32.3,17.9,31.7,15.9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#B39DDB\",\"d\":\"M37.9,42h-7.9c-1,0-1.8-0.7-2-1.7l-2.6-17.1h17l-2.6,17.1C39.8,41.3,38.9,42,37.9,42z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7E57C2\",\"d\":\"M42,24H26c-0.6,0-1-0.4-1-1v0c0-0.6,0.4-1,1-1h16c0.6,0,1,0.4,1,1v0C43,23.6,42.6,24,42,24z\"},\"child\":[]}]})(props);\n};\nexport function FcRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"41,41 23,41 41,23\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17.4\",\"y\":\"5\",\"transform\":\"matrix(.707 -.707 .707 .707 -8.854 21.374)\",\"fill\":\"#3F51B5\",\"width\":\"8\",\"height\":\"32.7\"},\"child\":[]}]})(props);\n};\nexport function FcRightDown2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"29,44 17.3,30 40.7,30\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M21,6H8v8h13c2.2,0,4,1.8,4,4v17h8V18C33,11.4,27.6,6,21,6z\"},\"child\":[]}]})(props);\n};\nexport function FcRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"41,7 41,25 23,7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17.4\",\"y\":\"10.3\",\"transform\":\"matrix(-.707 -.707 .707 -.707 17.661 60.567)\",\"fill\":\"#3F51B5\",\"width\":\"8\",\"height\":\"32.7\"},\"child\":[]}]})(props);\n};\nexport function FcRightUp2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"29,4 17.3,18 40.7,18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M21,42H8v-8h13c2.2,0,4-1.8,4-4V13h8v17C33,36.6,27.6,42,21,42z\"},\"child\":[]}]})(props);\n};\nexport function FcRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"44,24 30,35.7 30,12.3\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"20\",\"width\":\"27\",\"height\":\"8\"},\"child\":[]}]}]})(props);\n};\nexport function FcRotateCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#5E35B1\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M33.9,12.1H14.2L17.6,7c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,12.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14,11H8V9.2C8,8.5,8.5,8,9.2,8h3.6C13.5,8,14,8.5,14,9.2V11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,42H8c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,40.2,42.2,42,40,42z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E8EAF6\",\"d\":\"M34,25c0-5.5-4.5-10-10-10s-10,4.5-10,10s4.5,10,10,10v-2c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8h-3.5 l4.5,5.6l4.5-5.6H34z\"},\"child\":[]}]})(props);\n};\nexport function FcRotateToLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M10,41V7c0-2.2,1.8-4,4-4h20c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H14C11.8,45,10,43.2,10,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F3E5F5\",\"d\":\"M34,6H14c-0.6,0-1,0.4-1,1v34c0,0.6,0.4,1,1,1h20c0.6,0,1-0.4,1-1V7C35,6.4,34.6,6,34,6z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9C27B0\",\"points\":\"22,34 27.9,27 16.1,27\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9C27B0\",\"d\":\"M26,16c-3.3,0-6,2.7-6,6v6h4v-6c0-1.1,0.9-2,2-2s2,0.9,2,2v2h4v-2C32,18.7,29.3,16,26,16z\"},\"child\":[]}]})(props);\n};\nexport function FcRotateToPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M41,38H7c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h34c2.2,0,4,1.8,4,4v20C45,36.2,43.2,38,41,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F3E5F5\",\"d\":\"M6,14v20c0,0.6,0.4,1,1,1h34c0.6,0,1-0.4,1-1V14c0-0.6-0.4-1-1-1H7C6.4,13,6,13.4,6,14z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#9C27B0\",\"points\":\"26,15 20.1,22 31.9,22\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#9C27B0\",\"d\":\"M24,21v6c0,1.1-0.9,2-2,2s-2-0.9-2-2v-2h-4v2c0,3.3,2.7,6,6,6s6-2.7,6-6v-6H24z\"},\"child\":[]}]})(props);\n};\nexport function FcRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"16.7\",\"y\":\"1.6\",\"transform\":\"matrix(-.707 -.707 .707 -.707 24 57.941)\",\"fill\":\"#FFA000\",\"width\":\"14.6\",\"height\":\"44.8\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#9E6400\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"17.9\",\"y\":\"20.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 21.177 51.125)\",\"width\":\"6.6\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"22.3\",\"y\":\"15.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 29.833 44.71)\",\"width\":\"3.7\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25.9\",\"y\":\"12.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 40.49 43.125)\",\"width\":\"6.6\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"31.2\",\"y\":\"6.3\",\"transform\":\"matrix(.707 -.707 .707 .707 3.643 25.147)\",\"width\":\"2\",\"height\":\"3.7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6.3\",\"y\":\"31.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 -8.794 60.71)\",\"width\":\"3.7\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9.9\",\"y\":\"28.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 1.863 59.125)\",\"width\":\"6.6\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14.3\",\"y\":\"23.2\",\"transform\":\"matrix(-.707 -.707 .707 -.707 10.52 52.71)\",\"width\":\"3.7\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcRules (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#42A5F5\",\"d\":\"M39,45H9c0,0-3-0.1-3-8h36C42,44.9,39,45,39,45z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"3\",\"fill\":\"#90CAF9\",\"width\":\"32\",\"height\":\"34\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"15\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"19\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"23\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"27\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"18\",\"y\":\"31\",\"width\":\"16\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1976D2\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"15\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"31\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcSafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"39\",\"fill\":\"#455A64\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"34\",\"y\":\"39\",\"fill\":\"#455A64\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v26C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90A4AE\",\"d\":\"M40,38H8c-0.6,0-1-0.4-1-1V11c0-0.6,0.4-1,1-1h32c0.6,0,1,0.4,1,1v26C41,37.6,40.6,38,40,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M29,14c-5.5,0-10,4.5-10,10c0,5.5,4.5,10,10,10s10-4.5,10-10C39,18.5,34.5,14,29,14z M29,31 c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7s7,3.1,7,7C36,27.9,32.9,31,29,31z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#B0BEC5\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35.3,19.1l0.4-0.4c0.4-0.4,0.4-1,0-1.4s-1-0.4-1.4,0l-0.4,0.4C34.4,18.1,34.9,18.6,35.3,19.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.7,19.1c0.4-0.5,0.9-1,1.4-1.4l-0.4-0.4c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4L22.7,19.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21,24c0-0.3,0-0.7,0.1-1h-0.6c-0.6,0-1,0.4-1,1s0.4,1,1,1h0.6C21,24.7,21,24.3,21,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,16c0.3,0,0.7,0,1,0.1v-0.6c0-0.6-0.4-1-1-1s-1,0.4-1,1v0.6C28.3,16,28.7,16,29,16z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M35.3,28.9c-0.4,0.5-0.9,1-1.4,1.4l0.4,0.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3c0.4-0.4,0.4-1,0-1.4 L35.3,28.9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.7,28.9l-0.4,0.4c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l0.4-0.4 C23.6,29.9,23.1,29.4,22.7,28.9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M37.5,23h-0.6c0,0.3,0.1,0.7,0.1,1s0,0.7-0.1,1h0.6c0.6,0,1-0.4,1-1S38.1,23,37.5,23z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M29,32c-0.3,0-0.7,0-1-0.1v0.6c0,0.6,0.4,1,1,1s1-0.4,1-1v-0.6C29.7,32,29.3,32,29,32z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M12,20c-1.1,0-2,0.9-2,2v8c0,1.1,0.9,2,2,2s2-0.9,2-2v-8C14,20.9,13.1,20,12,20z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M12,18c-1.1,0-2,0.9-2,2v8c0,1.1,0.9,2,2,2s2-0.9,2-2v-8C14,18.9,13.1,18,12,18z\"},\"child\":[]}]})(props);\n};\nexport function FcSalesPerformance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38,13c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,12.1,41.3,13,38,13 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,10c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,9.1,41.3,10,38,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,16c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,15.1,41.3,16,38,16 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,19c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,18.1,41.3,19,38,19 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,22c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,21.1,41.3,22,38,22 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,25c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,24.1,41.3,25,38,25 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,28c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,27.1,41.3,28,38,28 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,31c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,30.1,41.3,31,38,31 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,34c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,33.1,41.3,34,38,34 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,37c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,36.1,41.3,37,38,37 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,40c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C44,39.1,41.3,40,38,40 z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFC107\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"38\",\"cy\":\"8\",\"rx\":\"6\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,12c-2.8,0-5.1-0.6-5.8-1.5C32.1,10.7,32,10.8,32,11c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,11.4,40.8,12,38,12z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,15c-2.8,0-5.1-0.6-5.8-1.5C32.1,13.7,32,13.8,32,14c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,14.4,40.8,15,38,15z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,18c-2.8,0-5.1-0.6-5.8-1.5C32.1,16.7,32,16.8,32,17c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,17.4,40.8,18,38,18z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,21c-2.8,0-5.1-0.6-5.8-1.5C32.1,19.7,32,19.8,32,20c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,20.4,40.8,21,38,21z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,24c-2.8,0-5.1-0.6-5.8-1.5C32.1,22.7,32,22.8,32,23c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,23.4,40.8,24,38,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,27c-2.8,0-5.1-0.6-5.8-1.5C32.1,25.7,32,25.8,32,26c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,26.4,40.8,27,38,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,30c-2.8,0-5.1-0.6-5.8-1.5C32.1,28.7,32,28.8,32,29c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,29.4,40.8,30,38,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,33c-2.8,0-5.1-0.6-5.8-1.5C32.1,31.7,32,31.8,32,32c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,32.4,40.8,33,38,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,36c-2.8,0-5.1-0.6-5.8-1.5C32.1,34.7,32,34.8,32,35c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,35.4,40.8,36,38,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M38,39c-2.8,0-5.1-0.6-5.8-1.5C32.1,37.7,32,37.8,32,38c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C43.1,38.4,40.8,39,38,39z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10,19c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,18.1,13.3,19,10,19 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,16c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,15.1,13.3,16,10,16 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,22c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,21.1,13.3,22,10,22 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,25c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,24.1,13.3,25,10,25 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,28c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,27.1,13.3,28,10,28 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,31c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,30.1,13.3,31,10,31 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,34c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,33.1,13.3,34,10,34 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,37c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,36.1,13.3,37,10,37 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,40c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C16,39.1,13.3,40,10,40 z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFC107\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"10\",\"cy\":\"14\",\"rx\":\"6\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,18c-2.8,0-5.1-0.6-5.8-1.5C4.1,16.7,4,16.8,4,17c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,17.4,12.8,18,10,18z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,21c-2.8,0-5.1-0.6-5.8-1.5C4.1,19.7,4,19.8,4,20c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,20.4,12.8,21,10,21z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,24c-2.8,0-5.1-0.6-5.8-1.5C4.1,22.7,4,22.8,4,23c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,23.4,12.8,24,10,24z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,27c-2.8,0-5.1-0.6-5.8-1.5C4.1,25.7,4,25.8,4,26c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,26.4,12.8,27,10,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,30c-2.8,0-5.1-0.6-5.8-1.5C4.1,28.7,4,28.8,4,29c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,29.4,12.8,30,10,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,33c-2.8,0-5.1-0.6-5.8-1.5C4.1,31.7,4,31.8,4,32c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,32.4,12.8,33,10,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,36c-2.8,0-5.1-0.6-5.8-1.5C4.1,34.7,4,34.8,4,35c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,35.4,12.8,36,10,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10,39c-2.8,0-5.1-0.6-5.8-1.5C4.1,37.7,4,37.8,4,38c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C15.1,38.4,12.8,39,10,39z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24,28c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,27.1,27.3,28,24,28 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,25c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,24.1,27.3,25,24,25 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,31c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,30.1,27.3,31,24,31 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,34c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,33.1,27.3,34,24,34 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,37c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,36.1,27.3,37,24,37 z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,40c-3.3,0-6-0.9-6-2c0,0.4,0,1.6,0,2c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.4,0-1.6,0-2C30,39.1,27.3,40,24,40 z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFC107\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"24\",\"cy\":\"23\",\"rx\":\"6\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,27c-2.8,0-5.1-0.6-5.8-1.5C18.1,25.7,18,25.8,18,26c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C29.1,26.4,26.8,27,24,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,30c-2.8,0-5.1-0.6-5.8-1.5C18.1,28.7,18,28.8,18,29c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C29.1,29.4,26.8,30,24,30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,33c-2.8,0-5.1-0.6-5.8-1.5C18.1,31.7,18,31.8,18,32c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C29.1,32.4,26.8,33,24,33z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,36c-2.8,0-5.1-0.6-5.8-1.5C18.1,34.7,18,34.8,18,35c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C29.1,35.4,26.8,36,24,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,39c-2.8,0-5.1-0.6-5.8-1.5C18.1,37.7,18,37.8,18,38c0,1.1,2.7,2,6,2s6-0.9,6-2c0-0.2-0.1-0.3-0.2-0.5 C29.1,38.4,26.8,39,24,39z\"},\"child\":[]}]}]})(props);\n};\nexport function FcScatterPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#CFD8DC\",\"points\":\"9,39 9,6 7,6 7,41 42,41 42,39\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"39\",\"cy\":\"11\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"31\",\"cy\":\"13\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"34\",\"cy\":\"26\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"28\",\"cy\":\"20\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"26\",\"cy\":\"28\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"23\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"21\",\"cy\":\"33\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"30\",\"r\":\"3\"},\"child\":[]}]}]})(props);\n};\nexport function FcSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#616161\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"34.6\",\"y\":\"28.1\",\"transform\":\"matrix(.707 -.707 .707 .707 -15.154 36.586)\",\"width\":\"4\",\"height\":\"17\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"20\",\"r\":\"16\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"36.2\",\"y\":\"32.1\",\"transform\":\"matrix(.707 -.707 .707 .707 -15.839 38.239)\",\"fill\":\"#37474F\",\"width\":\"4\",\"height\":\"12.3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#64B5F6\",\"cx\":\"20\",\"cy\":\"20\",\"r\":\"13\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M26.9,14.2c-1.7-2-4.2-3.2-6.9-3.2s-5.2,1.2-6.9,3.2c-0.4,0.4-0.3,1.1,0.1,1.4c0.4,0.4,1.1,0.3,1.4-0.1 C16,13.9,17.9,13,20,13s4,0.9,5.4,2.5c0.2,0.2,0.5,0.4,0.8,0.4c0.2,0,0.5-0.1,0.6-0.2C27.2,15.3,27.2,14.6,26.9,14.2z\"},\"child\":[]}]})(props);\n};\nexport function FcSelfServiceKiosk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M44,30H4V11c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4V30z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#64B5F6\",\"d\":\"M40,27H8c-0.6,0-1-0.4-1-1V11c0-0.6,0.4-1,1-1h32c0.6,0,1,0.4,1,1v15C41,26.6,40.6,27,40,27z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M40,41H8c-2.2,0-4-1.8-4-4v-7h40v7C44,39.2,42.2,41,40,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"34\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"34\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18,35c0,1.1-1.3,2-3,2s-3-0.9-3-2H18z\"},\"child\":[]}]}]})(props);\n};\nexport function FcSelfie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M32.9,22c0-0.3,0.1-0.7,0.1-1c0-1.1,0-5.9,0-7c0-7.6-18-5-18,0c0,1.1,0,5.9,0,7c0,0.3,0,0.7,0.1,1H32.9z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M40,44H8c-2.2,0-4-1.8-4-4V26c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v14C44,42.2,42.2,44,40,44z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M7,26v14c0,0.6,0.4,1,1,1h29c0.6,0,1-0.4,1-1V26c0-0.6-0.4-1-1-1H8C7.4,25,7,25.4,7,26z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"40\",\"y\":\"30\",\"fill\":\"#78909C\",\"width\":\"2\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"32\",\"fill\":\"#BF360C\",\"width\":\"8\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20.5\",\"y\":\"37.5\",\"fill\":\"#FF9800\",\"width\":\"5\",\"height\":\"3.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFB74D\",\"d\":\"M27.5,32c0-3.8-9-2.5-9,0c0,0.5,0,3,0,3.5c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5C27.5,35,27.5,32.5,27.5,32z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#784719\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"28\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"25\",\"cy\":\"35.5\",\"r\":\".5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"21\",\"cy\":\"35.5\",\"r\":\".5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FF5722\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23,27c-3,0-8,1.3-8,11l4,3v-6.5l6-3.5l2,2.5V41l4-3c0-2-0.8-10-6-10l-0.5-1H23z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16,22v-3l12-7l4,5v5h6.8C38.3,15.8,36.1,6,28,6l-1-2h-3C18.5,4,10.7,6.8,9.2,22H16z\"},\"child\":[]}]}]})(props);\n};\nexport function FcSerialTasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M33,9H11v4h22c1.1,0,2,0.9,2,2v20H23v4h16V15C39,11.7,36.3,9,33,9z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"6\",\"fill\":\"#D81B60\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"32\",\"y\":\"17\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"16\",\"y\":\"32\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"26\",\"cy\":\"11\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"37\",\"r\":\"5\"},\"child\":[]}]}]})(props);\n};\nexport function FcServiceMark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#E1BEE7\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.7,28.2c0-3.8-7.3-2.2-7.3-8.1c0-0.7,0.4-4.8,5.5-4.8c5.1,0,5.4,4.5,5.4,5.3h-3.5c0-0.4,0-2.5-2-2.5 c-1.8,0-1.9,1.7-1.9,2c0,3,7.4,2,7.4,8.1c0,2-1.1,4.8-5.3,4.8C10.3,33,9,29.6,9,27.3h3.5c0,0.5-0.2,2.8,2.5,2.8 C16.8,30.2,16.7,28.5,16.7,28.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M27.1,15.6L30.3,28l3.2-12.4h4.5v17.2h-3.5v-4.6l0.3-7.2l-3.4,11.8h-2.4l-3.4-11.8l0.3,7.2v4.6h-3.5V15.6 H27.1z\"},\"child\":[]}]}]})(props);\n};\nexport function FcServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E65100\",\"d\":\"M25.6,34.4c0.1-0.4,0.1-0.9,0.1-1.4s0-0.9-0.1-1.4l2.8-2c0.3-0.2,0.4-0.6,0.2-0.9l-2.7-4.6 c-0.2-0.3-0.5-0.4-0.8-0.3L22,25.3c-0.7-0.6-1.5-1-2.4-1.4l-0.3-3.4c0-0.3-0.3-0.6-0.6-0.6h-5.3c-0.3,0-0.6,0.3-0.6,0.6L12.4,24 c-0.9,0.3-1.6,0.8-2.4,1.4l-3.1-1.4c-0.3-0.1-0.7,0-0.8,0.3l-2.7,4.6c-0.2,0.3-0.1,0.7,0.2,0.9l2.8,2c-0.1,0.4-0.1,0.9-0.1,1.4 s0,0.9,0.1,1.4l-2.8,2c-0.3,0.2-0.4,0.6-0.2,0.9l2.7,4.6c0.2,0.3,0.5,0.4,0.8,0.3l3.1-1.4c0.7,0.6,1.5,1,2.4,1.4l0.3,3.4 c0,0.3,0.3,0.6,0.6,0.6h5.3c0.3,0,0.6-0.3,0.6-0.6l0.3-3.4c0.9-0.3,1.6-0.8,2.4-1.4l3.1,1.4c0.3,0.1,0.7,0,0.8-0.3l2.7-4.6 c0.2-0.3,0.1-0.7-0.2-0.9L25.6,34.4z M16,38c-2.8,0-5-2.2-5-5c0-2.8,2.2-5,5-5c2.8,0,5,2.2,5,5C21,35.8,18.8,38,16,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFA000\",\"d\":\"M41.9,15.3C42,14.8,42,14.4,42,14s0-0.8-0.1-1.3l2.5-1.8c0.3-0.2,0.3-0.5,0.2-0.8l-2.5-4.3 c-0.2-0.3-0.5-0.4-0.8-0.2l-2.9,1.3c-0.7-0.5-1.4-0.9-2.2-1.3l-0.3-3.1C36,2.2,35.8,2,35.5,2h-4.9c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.1 c-0.8,0.3-1.5,0.7-2.2,1.3l-2.9-1.3c-0.3-0.1-0.6,0-0.8,0.2l-2.5,4.3c-0.2,0.3-0.1,0.6,0.2,0.8l2.5,1.8C24,13.2,24,13.6,24,14 s0,0.8,0.1,1.3l-2.5,1.8c-0.3,0.2-0.3,0.5-0.2,0.8l2.5,4.3c0.2,0.3,0.5,0.4,0.8,0.2l2.9-1.3c0.7,0.5,1.4,0.9,2.2,1.3l0.3,3.1 c0,0.3,0.3,0.5,0.6,0.5h4.9c0.3,0,0.6-0.2,0.6-0.5l0.3-3.1c0.8-0.3,1.5-0.7,2.2-1.3l2.9,1.3c0.3,0.1,0.6,0,0.8-0.2l2.5-4.3 c0.2-0.3,0.1-0.6-0.2-0.8L41.9,15.3z M33,19c-2.8,0-5-2.2-5-5c0-2.8,2.2-5,5-5c2.8,0,5,2.2,5,5C38,16.8,35.8,19,33,19z\"},\"child\":[]}]})(props);\n};\nexport function FcSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M39.6,27.2c0.1-0.7,0.2-1.4,0.2-2.2s-0.1-1.5-0.2-2.2l4.5-3.2c0.4-0.3,0.6-0.9,0.3-1.4L40,10.8 c-0.3-0.5-0.8-0.7-1.3-0.4l-5,2.3c-1.2-0.9-2.4-1.6-3.8-2.2l-0.5-5.5c-0.1-0.5-0.5-0.9-1-0.9h-8.6c-0.5,0-1,0.4-1,0.9l-0.5,5.5 c-1.4,0.6-2.7,1.3-3.8,2.2l-5-2.3c-0.5-0.2-1.1,0-1.3,0.4l-4.3,7.4c-0.3,0.5-0.1,1.1,0.3,1.4l4.5,3.2c-0.1,0.7-0.2,1.4-0.2,2.2 s0.1,1.5,0.2,2.2L4,30.4c-0.4,0.3-0.6,0.9-0.3,1.4L8,39.2c0.3,0.5,0.8,0.7,1.3,0.4l5-2.3c1.2,0.9,2.4,1.6,3.8,2.2l0.5,5.5 c0.1,0.5,0.5,0.9,1,0.9h8.6c0.5,0,1-0.4,1-0.9l0.5-5.5c1.4-0.6,2.7-1.3,3.8-2.2l5,2.3c0.5,0.2,1.1,0,1.3-0.4l4.3-7.4 c0.3-0.5,0.1-1.1-0.3-1.4L39.6,27.2z M24,35c-5.5,0-10-4.5-10-10c0-5.5,4.5-10,10-10c5.5,0,10,4.5,10,10C34,30.5,29.5,35,24,35z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M24,13c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C36,18.4,30.6,13,24,13z M24,30 c-2.8,0-5-2.2-5-5c0-2.8,2.2-5,5-5s5,2.2,5,5C29,27.8,26.8,30,24,30z\"},\"child\":[]}]})(props);\n};\nexport function FcShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#1976D2\",\"d\":\"M38.1,31.2L19.4,24l18.7-7.2c1.5-0.6,2.3-2.3,1.7-3.9c-0.6-1.5-2.3-2.3-3.9-1.7l-26,10C8.8,21.6,8,22.8,8,24 s0.8,2.4,1.9,2.8l26,10c0.4,0.1,0.7,0.2,1.1,0.2c1.2,0,2.3-0.7,2.8-1.9C40.4,33.5,39.6,31.8,38.1,31.2z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#1E88E5\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"24\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"14\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"34\",\"r\":\"7\"},\"child\":[]}]}]})(props);\n};\nexport function FcShipped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#8BC34A\",\"d\":\"M43,36H29V14h10.6c0.9,0,1.6,0.6,1.9,1.4L45,26v8C45,35.1,44.1,36,43,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#388E3C\",\"d\":\"M29,36H5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h22c1.1,0,2,0.9,2,2V36z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"36\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"36\",\"r\":\"5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#78909C\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"37\",\"cy\":\"36\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"36\",\"r\":\"2\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M41,25h-7c-0.6,0-1-0.4-1-1v-7c0-0.6,0.4-1,1-1h5.3c0.4,0,0.8,0.3,0.9,0.7l1.7,5.2c0,0.1,0.1,0.2,0.1,0.3V24 C42,24.6,41.6,25,41,25z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#DCEDC8\",\"points\":\"21.8,13.8 13.9,21.7 10.2,17.9 8,20.1 13.9,26 24,15.9\"},\"child\":[]}]})(props);\n};\nexport function FcShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"19\",\"fill\":\"#CFD8DC\",\"width\":\"38\",\"height\":\"19\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"38\",\"fill\":\"#B0BEC5\",\"width\":\"38\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"27\",\"y\":\"24\",\"fill\":\"#455A64\",\"width\":\"12\",\"height\":\"18\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"24\",\"fill\":\"#E3F2FD\",\"width\":\"14\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"10\",\"y\":\"25\",\"fill\":\"#1E88E5\",\"width\":\"12\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90A4AE\",\"d\":\"M36.5,33.5c-0.3,0-0.5,0.2-0.5,0.5v2c0,0.3,0.2,0.5,0.5,0.5S37,36.3,37,36v-2C37,33.7,36.8,33.5,36.5,33.5z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#558B2F\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"36\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#7CB342\",\"d\":\"M40,6H8C6.9,6,6,6.9,6,8v3h36V8C42,6.9,41.1,6,40,6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"11\",\"fill\":\"#7CB342\",\"width\":\"6\",\"height\":\"8\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#7CB342\",\"points\":\"37,11 32,11 33,19 39,19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#7CB342\",\"points\":\"11,11 16,11 15,19 9,19\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFA000\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"30\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M45,19c0,1.7-1.3,3-3,3s-3-1.3-3-3s1.3-3,3-3L45,19z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3,19c0,1.7,1.3,3,3,3s3-1.3,3-3s-1.3-3-3-3L3,19z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFC107\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"32,11 27,11 27,19 33,19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"42,11 37,11 39,19 45,19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16,11 21,11 21,19 15,19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"6,11 11,11 9,19 3,19\"},\"child\":[]}]}]})(props);\n};\nexport function FcSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#1565C0\",\"d\":\"M38.8,28.2C41.5,24.8,45,20.1,45,12c0-0.6-0.4-1-1-1s-1,0.4-1,1c0,6.7-2.5,10.7-5,13.9c-0.6-1.9-1-4.2-1-6.9 c0-0.5-0.4-1-1-1c-0.5,0-1,0.4-1,1c-0.1,1.7-0.6,3.6-1,3.8c-0.4,0-0.9-1.4-1-2.8c0-0.5-0.5-0.9-1-0.9c-0.5,0-1,0.3-1,0.9 c-0.3,1.7-1.1,4.1-2,4.1c-0.4,0-0.6-0.1-0.7-0.3c-0.3-0.3-0.4-1-0.4-1.6c0-0.4,0.1-0.8,0.1-1.2c0-0.5-0.4-1-0.9-1 c-0.5,0-1,0.3-1.1,0.8c0,0.1-0.1,0.5-0.1,1.1C25.7,23.6,25.1,27,23,27c-0.7,0-1.1-0.2-1.4-0.7c-0.5-0.8-0.5-2.1,0-3.3c0,0,0,0,0-0.1 c0.1-0.1,0.1-0.3,0.2-0.4c0,0,0,0,0,0c0.8-1.6,1.7-2.5,3.2-2.5c0.6,0,1-0.4,1-1s-0.4-1-1-1c-4.2,0-5.4,4.1-6.6,8 c-1.4,4.8-2.7,8-6.4,8c-5.1,0-7-6.6-7-11c0-8.6,4.7-14,9-14c2.9,0,4,2.3,4.1,2.4c0.2,0.5,0.8,0.7,1.3,0.5c0.5-0.2,0.7-0.8,0.5-1.3 C19.8,10.4,18.2,7,14,7C8.6,7,3,13,3,23c0,10.3,5.9,13,9,13c5.1,0,6.8-4.5,8.1-8.5c0.7,0.9,1.7,1.5,2.9,1.5c2.2,0,3.5-1.6,4.2-3.6 c0.5,0.4,1.1,0.6,1.8,0.6c1.4,0,2.4-1.2,3-2.4c0.4,0.7,1.1,1.2,2,1.2c0.6,0,1.1-0.3,1.5-0.7c0.3,1.4,0.7,2.7,1,3.8 C35.1,29.7,34,31.2,34,33c0,1.7,1.3,3,3,3c1.8,0,3-1.6,3-3c0-1.3-0.5-2.7-1.1-4.3C38.9,28.5,38.8,28.4,38.8,28.2z M37,34 c-0.7,0-1-0.5-1-1c0-0.9,0.5-1.8,1.3-2.9c0.4,1.2,0.7,2.1,0.7,2.9C38,33.3,37.7,34,37,34z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"40\",\"fill\":\"#90A4AE\",\"width\":\"42\",\"height\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcSimCardChip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M5,35V13c0-2.2,1.8-4,4-4h30c2.2,0,4,1.8,4,4v22c0,2.2-1.8,4-4,4H9C6.8,39,5,37.2,5,35z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFD54F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M43,21v-2H31c-1.1,0-2-0.9-2-2s0.9-2,2-2h1v-2h-1c-2.2,0-4,1.8-4,4s1.8,4,4,4h3v6h-3c-2.8,0-5,2.2-5,5 s2.2,5,5,5h2v-2h-2c-1.7,0-3-1.3-3-3s1.3-3,3-3h12v-2h-7v-6H43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17,27h-3v-6h3c2.2,0,4-1.8,4-4s-1.8-4-4-4h-3v2h3c1.1,0,2,0.9,2,2s-0.9,2-2,2H5v2h7v6H5v2h12 c1.7,0,3,1.3,3,3s-1.3,3-3,3h-2v2h2c2.8,0,5-2.2,5-5S19.8,27,17,27z\"},\"child\":[]}]}]})(props);\n};\nexport function FcSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M36,45H12c-2.2,0-4-1.8-4-4V7c0-2.2,1.8-4,4-4h16.3c1.1,0,2.1,0.4,2.8,1.2l7.7,7.7c0.8,0.8,1.2,1.8,1.2,2.8 V41C40,43.2,38.2,45,36,45z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M32,38H16c-1.1,0-2-0.9-2-2V24c0-1.1,0.9-2,2-2h16c1.1,0,2,0.9,2,2v12C34,37.1,33.1,38,32,38z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFD54F\",\"d\":\"M29,30v3h5v2h-5v3h-2V22h2v6h5v2H29z M14,29v2h5v2h-5v2h5v3h2v-9H14z\"},\"child\":[]}]})(props);\n};\nexport function FcSlrBackSide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#5E35B1\",\"d\":\"M40,10h-7.6l-2-3c-0.4-0.6-1-0.9-1.7-0.9h-9.6c-0.7,0-1.3,0.3-1.7,0.9l-2,3H8c-2.2,0-4,1.8-4,4v24 c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4V14C44,11.8,42.2,10,40,10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#F57C00\",\"d\":\"M11,16h20c0.6,0,1,0.4,1,1v16c0,0.6-0.4,1-1,1H11c-0.6,0-1-0.4-1-1V17C10,16.4,10.4,16,11,16z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#942A09\",\"points\":\"18.9,22 12,32 25.8,32\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFF9C4\",\"cx\":\"27\",\"cy\":\"21\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#BF360C\",\"points\":\"25.2,26 20.4,32 30,32\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#8667C4\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34,10h6V9.2C40,8.5,39.5,8,38.8,8h-3.6C34.5,8,34,8.5,34,9.2V10z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"24\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"38\",\"cy\":\"30\",\"r\":\"2\"},\"child\":[]}]}]})(props);\n};\nexport function FcSmartphoneTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M4,39V7c0-2.2,1.8-4,4-4h22c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H8C5.8,43,4,41.2,4,39z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M30,6H8C7.4,6,7,6.4,7,7v29c0,0.6,0.4,1,1,1h22c0.6,0,1-0.4,1-1V7C31,6.4,30.6,6,30,6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"39\",\"fill\":\"#78909C\",\"width\":\"6\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M24,41V17c0-2.2,1.8-4,4-4h12c2.2,0,4,1.8,4,4v24c0,2.2-1.8,4-4,4H28C25.8,45,24,43.2,24,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M40,16H28c-0.6,0-1,0.4-1,1v22c0,0.6,0.4,1,1,1h12c0.6,0,1-0.4,1-1V17C41,16.4,40.6,16,40,16z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"34\",\"cy\":\"42.5\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M37,39H11l-6,6V11c0-3.3,2.7-6,6-6h26c3.3,0,6,2.7,6,6v22C43,36.3,40.3,39,37,39z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#fff\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"24\",\"cy\":\"22\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"34\",\"cy\":\"22\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"22\",\"r\":\"3\"},\"child\":[]}]}]})(props);\n};\nexport function FcSoundRecordingCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E1BEE7\",\"d\":\"M20.7,27.2v8.4h-3.9V12.9h8.7c1.3,0,2.5,0.2,3.5,0.5c1,0.4,1.9,0.9,2.6,1.5c0.7,0.6,1.2,1.4,1.6,2.3 c0.4,0.9,0.6,1.8,0.6,2.9c0,1.1-0.2,2.1-0.6,3c-0.4,0.9-0.9,1.6-1.6,2.2c-0.7,0.6-1.6,1.1-2.6,1.4c-1,0.3-2.2,0.5-3.5,0.5H20.7z M20.7,24h4.7c0.8,0,1.4-0.1,2-0.3c0.5-0.2,1-0.5,1.4-0.8c0.4-0.3,0.6-0.8,0.8-1.2c0.2-0.5,0.2-1,0.2-1.6c0-0.5-0.1-1-0.2-1.5 c-0.2-0.5-0.4-0.9-0.8-1.3c-0.4-0.4-0.8-0.7-1.4-0.9c-0.5-0.2-1.2-0.3-2-0.3h-4.7V24z\"},\"child\":[]}]})(props);\n};\nexport function FcSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#81D4FA\",\"d\":\"M28,7.1v2c7.3,1,13,7.3,13,14.9s-5.7,13.9-13,14.9v2c8.4-1,15-8.2,15-16.9S36.4,8.1,28,7.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#546E7A\",\"d\":\"M14,32H7c-1.1,0-2-0.9-2-2V18c0-1.1,0.9-2,2-2h7V32z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#78909C\",\"points\":\"26,42 14,32 14,16 26,6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#03A9F4\",\"d\":\"M28,17.3v2.1c1.8,0.8,3,2.5,3,4.6s-1.2,3.8-3,4.6v2.1c2.9-0.9,5-3.5,5-6.7S30.9,18.2,28,17.3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#4FC3F7\",\"d\":\"M28,12.2v2c4.6,0.9,8,5,8,9.8s-3.4,8.9-8,9.8v2c5.7-1,10-5.9,10-11.8S33.7,13.1,28,12.2z\"},\"child\":[]}]})(props);\n};\nexport function FcSportsMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FF9800\",\"cx\":\"28\",\"cy\":\"9\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#00796B\",\"d\":\"M29,27.3l-9.2-4.1c-1-0.5-1.5,1-2,2c-0.5,1-4.1,7.2-3.8,8.3c0.3,0.9,1.1,1.4,1.9,1.4c0.2,0,0.4,0,0.6-0.1 L28.8,31c0.8-0.2,1.4-1,1.4-1.8C30.2,28.4,29.7,27.6,29,27.3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#009688\",\"d\":\"M26.8,15.2l-2.2-1c-1.3-0.6-2.9,0-3.5,1.3L9.2,41.1c-0.5,1,0,2.2,1,2.7c0.3,0.1,0.6,0.2,0.9,0.2 c0.8,0,1.5-0.4,1.8-1.1c0,0,9.6-13.3,10.4-14.9s4.9-9.3,4.9-9.3C28.7,17.4,28.2,15.8,26.8,15.2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M40.5,15.7c-0.7-0.8-2-1-2.8-0.3l-5,4.2l-6.4-3.5c-1.1-0.6-2.6-0.4-3.3,0.9c-0.8,1.3-0.4,2.9,0.8,3.4 l8.3,3.4c0.3,0.1,0.6,0.2,0.9,0.2c0.5,0,0.9-0.2,1.3-0.5l6-5C41.1,17.8,41.2,16.6,40.5,15.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M11.7,23.1l3.4-5.1l4.6,0.6l1.5-3.1c0.4-0.9,1.2-1.4,2.1-1.5c-0.1,0-0.2,0-0.2,0h-9c-0.7,0-1.3,0.3-1.7,0.9 l-4,6c-0.6,0.9-0.4,2.2,0.6,2.8C9.2,23.9,9.6,24,10,24C10.6,24,11.3,23.7,11.7,23.1z\"},\"child\":[]}]})(props);\n};\nexport function FcStackOfPhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"12.3\",\"y\":\"12.3\",\"transform\":\"matrix(.948 .318 -.318 .948 9.725 -6.994)\",\"fill\":\"#64B5F6\",\"width\":\"28\",\"height\":\"28\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15.6\",\"y\":\"15.4\",\"transform\":\"matrix(.951 .31 -.31 .951 9.176 -6.977)\",\"fill\":\"#1E88E5\",\"width\":\"22\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8.1\",\"y\":\"8.1\",\"transform\":\"matrix(.983 .181 -.181 .983 4.385 -3.65)\",\"fill\":\"#90CAF9\",\"width\":\"28\",\"height\":\"28\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"11.3\",\"y\":\"11.2\",\"transform\":\"matrix(.985 .175 -.175 .985 4.048 -3.566)\",\"fill\":\"#42A5F5\",\"width\":\"22\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"fill\":\"#BBDEFB\",\"width\":\"28\",\"height\":\"28\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"fill\":\"#4CAF50\",\"width\":\"22\",\"height\":\"20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M16,13c0-1.1,0.9-2,2-2s2,0.9,2,2s-2,4-2,4S16,14.1,16,13z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M20,21c0,1.1-0.9,2-2,2s-2-0.9-2-2s2-4,2-4S20,19.9,20,21z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M13.5,16.7c-1-0.6-1.3-1.8-0.7-2.7c0.6-1,1.8-1.3,2.7-0.7c1,0.6,2.5,3.7,2.5,3.7S14.5,17.3,13.5,16.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M22.5,17.3c1,0.6,1.3,1.8,0.7,2.7c-0.6,1-1.8,1.3-2.7,0.7C19.5,20.2,18,17,18,17S21.5,16.7,22.5,17.3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M22.5,16.7c1-0.6,1.3-1.8,0.7-2.7c-0.6-1-1.8-1.3-2.7-0.7C19.5,13.8,18,17,18,17S21.5,17.3,22.5,16.7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M13.5,17.3c-1,0.6-1.3,1.8-0.7,2.7c0.6,1,1.8,1.3,2.7,0.7c1-0.6,2.5-3.7,2.5-3.7S14.5,16.7,13.5,17.3z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFC107\",\"cx\":\"18\",\"cy\":\"17\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcStart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F44336\",\"d\":\"M38,42H10c-2.2,0-4-1.8-4-4V10c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v28C42,40.2,40.2,42,38,42z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#fff\",\"points\":\"31,24 20,16 20,32\"},\"child\":[]}]})(props);\n};\nexport function FcStatistics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"23\",\"y\":\"5\",\"width\":\"2\",\"height\":\"36\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20.5\",\"y\":\"31.4\",\"transform\":\"matrix(.707 .707 -.707 .707 33.523 -3.921)\",\"width\":\"2\",\"height\":\"14.2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"25.5\",\"y\":\"31.4\",\"transform\":\"matrix(-.707 .707 -.707 -.707 72.487 46.995)\",\"width\":\"2\",\"height\":\"14.2\"},\"child\":[]}]},{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"8\",\"fill\":\"#CFD8DC\",\"width\":\"40\",\"height\":\"28\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#607D8B\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"7\",\"width\":\"42\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"35\",\"width\":\"42\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"31.5\",\"cy\":\"43.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"43.5\",\"r\":\"1.5\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#C51162\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"31.9,18.9 26,24.9 20,18.9 11.9,26.9 14.1,29.1 20,23.1 26,29.1 34.1,21.1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,24 29,17 36,17\"},\"child\":[]}]}]})(props);\n};\nexport function FcSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M42,38c0,2.209-1.791,4-4,4H10c-2.209,0-4-1.791-4-4V10c0-2.209,1.791-4,4-4h28c2.209,0,4,1.791,4,4V38z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M18.459,33.645c-0.288,0-0.56-0.057-0.822-0.141l-0.005,0.02l-3.67-1.062\\r\\n\\t\\tc0.644,1.878,2.406,3.237,4.5,3.237c2.641,0,4.776-2.136,4.776-4.776s-2.135-4.777-4.776-4.777c-1.141,0-2.175,0.418-2.998,1.087\\r\\n\\t\\tL19,28.255c0.029,0.007,0.055,0.018,0.084,0.024l0.049,0.016v0.002c1.177,0.301,2.049,1.359,2.049,2.626\\r\\n\\t\\tC21.184,32.424,19.964,33.645,18.459,33.645z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M30.923,24.299c3.222,0,5.837-2.615,5.837-5.838c0-3.222-2.615-5.837-5.837-5.837\\r\\n\\t\\tc-3.221,0-5.837,2.615-5.837,5.837C25.086,21.684,27.702,24.299,30.923,24.299z M30.92,14.409c2.24,0,4.056,1.813,4.056,4.052\\r\\n\\t\\tc0,2.241-1.815,4.053-4.056,4.053c-2.236,0-4.049-1.812-4.049-4.053C26.871,16.223,28.684,14.409,30.92,14.409z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M38,6h-2.75h-22.5H10c-2.209,0-4,1.791-4,4v2.75v4.236v7.509l7.027,2.033\\r\\n\\t\\tc1.287-1.59,3.229-2.626,5.434-2.626c0.07,0,0.135,0.02,0.204,0.021l3.876-5.355c0-0.035-0.005-0.072-0.005-0.105\\r\\n\\t\\tc0-4.63,3.755-8.388,8.387-8.388c4.633,0,8.386,3.757,8.386,8.386c0,4.633-3.753,8.387-8.386,8.387\\r\\n\\t\\tc-0.044,0-0.087-0.006-0.132-0.007l-5.33,3.871c0.002,0.07,0.021,0.14,0.021,0.211c0,3.878-3.142,7.021-7.021,7.021\\r\\n\\t\\tc-3.593,0-6.52-2.707-6.937-6.188L6,30.158v2.583v2.509V38c0,2.209,1.791,4,4,4h2.75h22.5H38c2.209,0,4-1.791,4-4v-2.75v-22.5V10\\r\\n\\t\\tC42,7.791,40.209,6,38,6z\"},\"child\":[]}]}]})(props);\n};\nexport function FcStumbleupon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E64A19\",\"d\":\"M24.001,5c-10.494,0-19,8.506-19,19c0,10.493,8.506,19,19,19c10.493,0,19-8.507,19-19\\r\\n\\tC43.001,13.506,34.494,5,24.001,5z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M24.001,19C23.998,19,24.004,19,24.001,19c-0.062-0.004-1,0-1,1v7.876C22.916,29.888,21.504,33,17.959,33\\r\\n\\t\\tc-3.607,0-4.958-3.065-4.958-4.958V24h4v4c0.038,0.709,0.629,1,1,1c0.665,0,0.972-0.361,1-1v-8.124c0-2.01,1.332-5,5-5\\r\\n\\t\\tc0.045,0,0.086,0.006,0.131,0.007c0,0,4.869-0.009,4.869,5.117c0,1.104-0.896,1.876-2,1.876s-2-0.771-2-1.876\\r\\n\\t\\tC25.001,19.124,24.041,19.003,24.001,19z M35.001,27.876c0,2.01-1.331,5.124-5,5.124s-5-3.114-5-5.124v-3.439\\r\\n\\t\\tc0.614,0.272,1.285,0.439,2,0.439c0.712,0,1.386-0.154,2-0.424V28c0.038,1,0.663,1,1,1c0.247,0,1,0,1-1v-4h4V27.876z\"},\"child\":[]}]}]})(props);\n};\nexport function FcSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M44.7,11L36,19.6c0,0-2.6,0-5.2-2.6s-2.6-5.2-2.6-5.2l8.7-8.7c-4.9-1.2-10.8,0.4-14.4,4 c-5.4,5.4-0.6,12.3-2,13.7C12.9,28.7,5.1,34.7,4.9,35c-2.3,2.3-2.4,6-0.2,8.2c2.2,2.2,5.9,2.1,8.2-0.2c0.3-0.3,6.7-8.4,14.2-15.9 c1.4-1.4,8,3.7,13.6-1.8C44.2,21.7,45.9,15.9,44.7,11z M9.4,41.1c-1.4,0-2.5-1.1-2.5-2.5C6.9,37.1,8,36,9.4,36 c1.4,0,2.5,1.1,2.5,2.5C11.9,39.9,10.8,41.1,9.4,41.1z\"},\"child\":[]}]})(props);\n};\nexport function FcSurvey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M36,4H26c0,1.1-0.9,2-2,2s-2-0.9-2-2H12C9.8,4,8,5.8,8,8v32c0,2.2,1.8,4,4,4h24c2.2,0,4-1.8,4-4V8 C40,5.8,38.2,4,36,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#fff\",\"d\":\"M36,41H12c-0.6,0-1-0.4-1-1V8c0-0.6,0.4-1,1-1h24c0.6,0,1,0.4,1,1v32C37,40.6,36.6,41,36,41z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M26,4c0,1.1-0.9,2-2,2s-2-0.9-2-2h-7v4c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V4H26z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M24,0c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4S26.2,0,24,0z M24,6c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2 S25.1,6,24,6z\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#CFD8DC\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"20\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"19\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#03A9F4\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"29\",\"width\":\"12\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"15\",\"y\":\"28\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcSwitchCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#5E35B1\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M33.9,12.1H14.2L17.6,7c0.4-0.6,1-0.9,1.7-0.9h9.6c0.7,0,1.3,0.3,1.7,0.9L33.9,12.1z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14,11H8V9.2C8,8.5,8.5,8,9.2,8h3.6C13.5,8,14,8.5,14,9.2V11z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M40,42H8c-2.2,0-4-1.8-4-4V14c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4v24C44,40.2,42.2,42,40,42z\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E8EAF6\",\"d\":\"M34,25c0-5.5-4.5-10-10-10c-2.4,0-4.6,0.8-6.3,2.2l1.2,1.6c1.4-1.1,3.1-1.8,5.1-1.8c4.4,0,8,3.6,8,8h-3.5 l4.5,5.6l4.5-5.6H34z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E8EAF6\",\"d\":\"M29.1,31.2C27.7,32.3,25.9,33,24,33c-4.4,0-8-3.6-8-8h3.5L15,19.4L10.5,25H14c0,5.5,4.5,10,10,10 c2.4,0,4.6-0.8,6.3-2.2L29.1,31.2z\"},\"child\":[]}]})(props);\n};\nexport function FcSynchronize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF6F00\",\"d\":\"M38.7,11.9l-3.1,2.5c2.2,2.7,3.4,6.1,3.4,9.5c0,8.3-6.7,15-15,15c-0.9,0-1.9-0.1-2.8-0.3l-0.7,3.9 c1.2,0.2,2.4,0.3,3.5,0.3c10.5,0,19-8.5,19-19C43,19.6,41.5,15.3,38.7,11.9z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF6F02\",\"points\":\"31,8 42.9,9.6 33.1,19.4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF6F00\",\"d\":\"M24,5C13.5,5,5,13.5,5,24c0,4.6,1.6,9,4.6,12.4l3-2.6C10.3,31.1,9,27.6,9,24c0-8.3,6.7-15,15-15 c0.9,0,1.9,0.1,2.8,0.3l0.7-3.9C26.4,5.1,25.2,5,24,5z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FF6F02\",\"points\":\"17,40 5.1,38.4 14.9,28.6\"},\"child\":[]}]})(props);\n};\nexport function FcTabletAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M8,41V7c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v34c0,2.2-1.8,4-4,4H12C9.8,45,8,43.2,8,41z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M36,6H12c-0.6,0-1,0.4-1,1v31c0,0.6,0.4,1,1,1h24c0.6,0,1-0.4,1-1V7C37,6.4,36.6,6,36,6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"41\",\"fill\":\"#78909C\",\"width\":\"6\",\"height\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FcTemplate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"7\",\"fill\":\"#BBDEFB\",\"width\":\"40\",\"height\":\"34\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"12\",\"fill\":\"#3F51B5\",\"width\":\"30\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"21\",\"width\":\"13\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"26\",\"y\":\"21\",\"width\":\"13\",\"height\":\"16\"},\"child\":[]}]}]})(props);\n};\nexport function FcTimeline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M42,29H20.8c-0.5,0-1-0.2-1.4-0.6l-3.7-3.7c-0.4-0.4-0.4-1,0-1.4l3.7-3.7c0.4-0.4,0.9-0.6,1.4-0.6H42 c0.6,0,1,0.4,1,1v8C43,28.6,42.6,29,42,29z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"6\",\"fill\":\"#CFD8DC\",\"width\":\"2\",\"height\":\"36\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"24\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"38\",\"r\":\"3\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#448AFF\",\"d\":\"M34,43H20.8c-0.5,0-1-0.2-1.4-0.6l-3.7-3.7c-0.4-0.4-0.4-1,0-1.4l3.7-3.7c0.4-0.4,0.9-0.6,1.4-0.6H34 c0.6,0,1,0.4,1,1v8C35,42.6,34.6,43,34,43z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#00BCD4\",\"d\":\"M35,15H20.8c-0.5,0-1-0.2-1.4-0.6l-3.7-3.7c-0.4-0.4-0.4-1,0-1.4l3.7-3.7C19.8,5.2,20.3,5,20.8,5H35 c0.6,0,1,0.4,1,1v8C36,14.6,35.6,15,35,15z\"},\"child\":[]}]})(props);\n};\nexport function FcTodoList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"17.8,18.1 10.4,25.4 6.2,21.3 4,23.5 10.4,29.9 20,20.3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17.8,5.1 10.4,12.4 6.2,8.3 4,10.5 10.4,16.9 20,7.3\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"17.8,31.1 10.4,38.4 6.2,34.3 4,36.5 10.4,42.9 20,33.3\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90CAF9\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"24\",\"y\":\"22\",\"width\":\"20\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"24\",\"y\":\"9\",\"width\":\"20\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"24\",\"y\":\"35\",\"width\":\"20\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcTouchscreenSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M12,40V8c0-2.2,1.8-4,4-4h16c2.2,0,4,1.8,4,4v32c0,2.2-1.8,4-4,4H16C13.8,44,12,42.2,12,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M32,7H16c-0.6,0-1,0.4-1,1v29c0,0.6,0.4,1,1,1h16c0.6,0,1-0.4,1-1V8C33,7.4,32.6,7,32,7z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"24\",\"cy\":\"41\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#E91E63\",\"cx\":\"24\",\"cy\":\"23\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#F48FB1\",\"strokeWidth\":\"2\",\"strokeMiterlimit\":\"10\",\"cx\":\"24\",\"cy\":\"23\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"none\",\"stroke\":\"#F8BBD0\",\"strokeMiterlimit\":\"10\",\"cx\":\"24\",\"cy\":\"23\",\"r\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FcTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"fill\":\"#9C27B0\",\"cx\":\"24\",\"cy\":\"24\",\"r\":\"21\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#E1BEE7\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.6,18.5h-4.2v14.2h-3.5V18.5H8.7v-2.9h11.9V18.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M27.1,15.6L30.3,28l3.2-12.4h4.5v17.1h-3.5v-4.6l0.3-7.1l-3.4,11.8h-2.4L25.7,21l0.3,7.1v4.6h-3.5V15.6 H27.1z\"},\"child\":[]}]}]})(props);\n};\nexport function FcTreeStructure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"36.9,13.8 35.1,10.2 7.5,24 35.1,37.8 36.9,34.2 16.5,24\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"18\",\"fill\":\"#D81B60\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"6\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"30\",\"y\":\"30\",\"width\":\"12\",\"height\":\"12\"},\"child\":[]}]}]})(props);\n};\nexport function FcTwoSmartphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M6,36V8c0-2.2,1.8-4,4-4h14c2.2,0,4,1.8,4,4v28c0,2.2-1.8,4-4,4H10C7.8,40,6,38.2,6,36z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#BBDEFB\",\"d\":\"M24,7H10C9.4,7,9,7.4,9,8v25c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V8C25,7.4,24.6,7,24,7z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"36\",\"fill\":\"#78909C\",\"width\":\"6\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E38939\",\"d\":\"M20,40V12c0-2.2,1.8-4,4-4h14c2.2,0,4,1.8,4,4v28c0,2.2-1.8,4-4,4H24C21.8,44,20,42.2,20,40z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFF3E0\",\"d\":\"M38,11H24c-0.6,0-1,0.4-1,1v25c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V12C39,11.4,38.6,11,38,11z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#A6642A\",\"cx\":\"31\",\"cy\":\"41\",\"r\":\"1.5\"},\"child\":[]}]})(props);\n};\nexport function FcUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#00BCD4\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5,18 19,6.3 19,29.7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M28,14H16v8h12c2.8,0,5,2.2,5,5s-2.2,5-5,5h-3v8h3c7.2,0,13-5.8,13-13S35.2,14,28,14z\"},\"child\":[]}]}]})(props);\n};\nexport function FcUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#424242\",\"d\":\"M24,4c-5.5,0-10,4.5-10,10v4h4v-4c0-3.3,2.7-6,6-6s6,2.7,6,6h4C34,8.5,29.5,4,24,4z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FB8C00\",\"d\":\"M36,44H12c-2.2,0-4-1.8-4-4V22c0-2.2,1.8-4,4-4h24c2.2,0,4,1.8,4,4v18C40,42.2,38.2,44,36,44z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#C76E00\",\"cx\":\"24\",\"cy\":\"31\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FcUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"4,19 18,30.7 18,7.3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M42,27v13h-8V27c0-2.2-1.8-4-4-4H13v-8h17C36.6,15,42,20.4,42,27z\"},\"child\":[]}]})(props);\n};\nexport function FcUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"44,19 30,30.7 30,7.3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M6,27v13h8V27c0-2.2,1.8-4,4-4h17v-8H18C11.4,15,6,20.4,6,27z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#3F51B5\",\"points\":\"44,19 30,30.7 30,7.3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M6,27v13h8V27c0-2.2,1.8-4,4-4h17v-8H18C11.4,15,6,20.4,6,27z\"},\"child\":[]}]})(props);\n};\nexport function FcUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#3F51B5\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,4 35.7,18 12.3,18\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"15\",\"width\":\"8\",\"height\":\"27\"},\"child\":[]}]}]})(props);\n};\nexport function FcUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#009688\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"24,10.9 35,24 13,24\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"40\",\"width\":\"8\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"34\",\"width\":\"8\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"21\",\"width\":\"8\",\"height\":\"11\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"36\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#1565C0\",\"d\":\"M38.701,24.355h-2.189l-0.467,2.265c0,0,2.277,0,2.51,0c0.233,0,1.545-0.167,1.545-1.267\\r\\n\\tC40.1,24.266,38.701,24.355,38.701,24.355z M39.521,20.339h-2.15l-0.374,1.796c0,0,2.161,0,2.337,0c0.188,0,1.113-0.146,1.113-1.006\\r\\n\\tC40.447,20.271,39.521,20.339,39.521,20.339z M44.064,23.109c0,0,1.436-0.743,1.436-3.093c0-3.715-4.377-3.516-4.377-3.516h-2.865\\r\\n\\tl0.674-3c0,0-12.4,0-20.971,0c-9.344,0-12.158,6.774-12.158,6.774L5.736,20.5H2.547l-1.047,6h3.37l0.001,0.143\\r\\n\\tc0,0-0.285,6.857,10.463,6.857c10.747,0,19.042,0,19.042,0l0.679-3c0.84,0,2.2,0,4.389,0c4.729,0,5.591-3.354,5.591-4.9\\r\\n\\tC45.032,23.838,44.064,23.109,44.064,23.109z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M38.701,24.355h-2.189l-0.467,2.265c0,0,2.277,0,2.51,0c0.233,0,1.545-0.167,1.545-1.267\\r\\n\\tC40.1,24.266,38.701,24.355,38.701,24.355z M39.521,20.339h-2.15l-0.374,1.796c0,0,2.161,0,2.337,0c0.188,0,1.113-0.146,1.113-1.006\\r\\n\\tC40.447,20.271,39.521,20.339,39.521,20.339z M14.022,29.5c-5.306,0-5.306-3.624-5.238-3.986c0.069-0.363,1.789-8.014,1.789-8.014\\r\\n\\th3.84l-1.358,6.354c0,0-0.971,2.728,1.251,2.728c2.081,0,2.336-2.535,2.336-2.535l1.465-6.543h3.839l-1.582,6.979\\r\\n\\tC20.365,24.48,20.258,29.5,14.022,29.5z M26.098,29.521c-2.674,0-4.958-1.262-4.856-4.14h3.438c0,0.576,0.086,1.627,1.633,1.627\\r\\n\\tc0.627,0,1.688-0.266,1.688-1.133c0-1.631-5.597-0.785-5.597-4.57c0-2.063,1.899-3.785,4.989-3.785c4.976,0,4.613,3.749,4.613,3.749\\r\\n\\th-3.369c0-1.044-0.664-1.204-1.463-1.204c-0.8,0-1.372,0.343-1.372,0.944c0,1.471,5.634,0.456,5.634,4.531\\r\\n\\tC31.436,27.305,30.012,29.521,26.098,29.521z M39.366,29.5c-0.419,0-7.515,0-7.515,0l2.601-12c0,0,5.444,0,6.556,0\\r\\n\\tc1.113,0,3.43,0.234,3.43,2.542c0,2.602-2.227,3.013-2.227,3.013s1.764,0.407,1.764,2.473C43.975,29.457,39.775,29.5,39.366,29.5z\"},\"child\":[]}]})(props);\n};\nexport function FcVideoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M8,12h22c2.2,0,4,1.8,4,4v16c0,2.2-1.8,4-4,4H8c-2.2,0-4-1.8-4-4V16C4,13.8,5.8,12,8,12z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#388E3C\",\"points\":\"44,35 34,29 34,19 44,13\"},\"child\":[]}]})(props);\n};\nexport function FcVideoFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#90CAF9\",\"points\":\"40,45 8,45 8,3 30,3 40,13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#E1F5FE\",\"points\":\"38.5,14 29,14 29,4.5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#1976D2\",\"points\":\"30,28 20,22 20,34\"},\"child\":[]}]})(props);\n};\nexport function FcVideoProjector (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"#546E7A\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"34\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"37\",\"y\":\"34\",\"width\":\"6\",\"height\":\"3\"},\"child\":[]}]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#78909C\",\"d\":\"M44,35H4c-2.2,0-4-1.8-4-4V17c0-2.2,1.8-4,4-4h40c2.2,0,4,1.8,4,4v14C48,33.2,46.2,35,44,35z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#37474F\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"17\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"19\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"23\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"27\",\"width\":\"2\",\"height\":\"2\"},\"child\":[]}]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#37474F\",\"cx\":\"37\",\"cy\":\"24\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#a0f\",\"cx\":\"37\",\"cy\":\"24\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#EA80FC\",\"d\":\"M40.7,21.7c-1-1.1-2.3-1.7-3.7-1.7s-2.8,0.6-3.7,1.7c-0.4,0.4-0.3,1,0.1,1.4c0.4,0.4,1,0.3,1.4-0.1 c1.2-1.3,3.3-1.3,4.5,0c0.2,0.2,0.5,0.3,0.7,0.3c0.2,0,0.5-0.1,0.7-0.3C41.1,22.7,41.1,22.1,40.7,21.7z\"},\"child\":[]}]})(props);\n};\nexport function FcViewDetails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"4\",\"fill\":\"#BBDEFB\",\"width\":\"34\",\"height\":\"40\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#2196F3\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"26\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"18\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"34\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"13\",\"y\":\"10\",\"width\":\"4\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"26\",\"width\":\"14\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"18\",\"width\":\"14\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"34\",\"width\":\"14\",\"height\":\"4\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"21\",\"y\":\"10\",\"width\":\"14\",\"height\":\"4\"},\"child\":[]}]}]})(props);\n};\nexport function FcVip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#880E4F\",\"d\":\"M38,43H10c-2.2,0-4-1.8-4-4V11c0-2.2,1.8-4,4-4h28c2.2,0,4,1.8,4,4v28C42,41.2,40.2,43,38,43z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#FFD54F\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.9,28l2.1-9.1h2.8l-3.6,12.6h-2.6L11,18.9h2.8L15.9,28z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M25.6,31.5h-2.5V18.9h2.5V31.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M31.2,27.1v4.4h-2.5V18.9h4.3c3.7,0,4.1,3.4,4.1,4.2c0,1.2-0.5,4-4.1,4H31.2z M31.2,24.9h1.7 c1.3,0,1.5-1.1,1.5-1.9c0-1.6-0.9-2.1-1.5-2.1h-1.7V24.9z\"},\"child\":[]}]}]})(props);\n};\nexport function FcVlc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#F57C00\",\"d\":\"M36.258,28.837c0,0-0.11-0.837-1.257-0.837c-0.216,0-2.392,0-3.719,0c0.798,2.671,1.497,5.135,1.497,5.279\\r\\n\\tc0,2.387-3.401,3.393-8.917,3.393c-5.515,0-8.651-0.94-8.651-3.326c0-0.167,0.998-2.692,1.791-5.346c-1.591,0-3.863,0-4.063,0\\r\\n\\tc-0.806,0-0.937,0.749-0.937,0.749L8.159,40.986L8.815,42h30.652l0.376-1.014L36.258,28.837z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#E0E0E0\",\"d\":\"M24.001,6c-1.029,0-1.864,0.179-1.864,0.398c-0.492,1.483-8.122,26.143-8.122,26.774\\r\\n\\tc0,2.388,4.471,3.827,9.985,3.827s9.986-1.439,9.986-3.827c0-0.549-7.614-25.268-8.122-26.774C25.865,6.179,25.031,6,24.001,6\\r\\n\\tL24.001,6z\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M33.196,30.447C32.032,32.232,28.341,34,24.046,34c-4.34,0-8.156-1.696-9.281-3.51\\r\\n\\t\\tc-0.499,1.483-0.892,2.647-0.892,3.28c0,2.386,4.533,4.229,10.128,4.229c5.595,0,10.131-1.844,10.131-4.229\\r\\n\\t\\tC34.132,33.222,33.713,31.955,33.196,30.447z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M31.387,24.314l-2.074-6.794c0,0-1.857,1.479-5.311,1.479c-3.453,0-5.316-1.479-5.316-1.479l-2.081,6.806\\r\\n\\t\\tc0,0,2.068,2.674,7.397,2.674C29.375,27,31.387,24.314,31.387,24.314z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FF9800\",\"d\":\"M27.241,10.809l-1.376-4.41c0,0-0.083-0.398-1.864-0.398c-1.844,0-1.864,0.398-1.864,0.398l-1.376,4.407\\r\\n\\t\\tc0,0,0.885,1.194,3.239,1.194C26.355,12,27.241,10.809,27.241,10.809z\"},\"child\":[]}]}]})(props);\n};\nexport function FcVoicePresentation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#2196F3\",\"d\":\"M40,22h-8l-4,4V12c0-2.2,1.8-4,4-4h8c2.2,0,4,1.8,4,4v6C44,20.2,42.2,22,40,22z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#FFA726\",\"cx\":\"17\",\"cy\":\"19\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#607D8B\",\"d\":\"M30,36.7c0,0-3.6-6.7-13-6.7S4,36.7,4,36.7V40h26V36.7z\"},\"child\":[]}]})(props);\n};\nexport function FcVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#4CAF50\",\"d\":\"M48,24c0-6.1-4.9-11-11-11s-11,4.9-11,11c0,2.7,0.9,5.1,2.5,7h-9c1.6-1.9,2.5-4.3,2.5-7c0-6.1-4.9-11-11-11 S0,17.9,0,24s4.9,11,11,11h27v-0.1C43.6,34.4,48,29.7,48,24z M4,24c0-3.9,3.1-7,7-7s7,3.1,7,7s-3.1,7-7,7S4,27.9,4,24z M37,31 c-3.9,0-7-3.1-7-7s3.1-7,7-7c3.9,0,7,3.1,7,7S40.9,31,37,31z\"},\"child\":[]}]})(props);\n};\nexport function FcWebcam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M36.5,44H11.5c-1.1,0-1.8-1.2-1.3-2.2L13,37h22l2.7,4.8C38.3,42.8,37.6,44,36.5,44z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#78909C\",\"cx\":\"24\",\"cy\":\"23\",\"r\":\"18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#455A64\",\"d\":\"M24,35c-6.6,0-12-5.4-12-12c0-6.6,5.4-12,12-12s12,5.4,12,12C36,29.6,30.6,35,24,35z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#42A5F5\",\"cx\":\"24\",\"cy\":\"23\",\"r\":\"9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#90CAF9\",\"d\":\"M28.8,20c-1.2-1.4-3-2.2-4.8-2.2s-3.6,0.8-4.8,2.2c-0.5,0.5-0.4,1.3,0.1,1.8c0.5,0.5,1.3,0.4,1.8-0.1 c1.5-1.7,4.3-1.7,5.8,0c0.3,0.3,0.6,0.4,1,0.4c0.3,0,0.6-0.1,0.9-0.3C29.2,21.4,29.3,20.5,28.8,20z\"},\"child\":[]}]})(props);\n};\nexport function FcWiFiLogo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#3F51B5\",\"d\":\"M46,26.48c0,4.527-3.268,7.52-7.3,7.52H9.299C5.269,34,2,30.634,2,26.48V21.52C2,17.366,5.269,14,9.299,14\\r\\n\\t\\tH38.7c4.032,0,7.3,3.366,7.3,7.52V26.48z\"},\"child\":[]},{\"tag\":\"ellipse\",\"attr\":{\"fill\":\"#3F51B5\",\"cx\":\"24\",\"cy\":\"24\",\"rx\":\"14.902\",\"ry\":\"15\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"fill\":\"#FFFFFF\",\"points\":\"17,19 14.264,19 13.427,24.859 12.388,19.028 9.93,19.028 8.864,24.859 8.054,19.028 5.266,19.028 \\r\\n\\t\\t7.597,29 10.056,29 11.12,22.854 12.209,29 14.693,29 \\t\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"19\",\"y\":\"22\",\"fill\":\"#FFFFFF\",\"width\":\"2.508\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M21.5,19.747C21.5,20.44,20.94,21,20.25,21S19,20.44,19,19.747c0-0.696,0.56-1.258,1.25-1.258\\r\\n\\t\\tS21.5,19.051,21.5,19.747z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#FFFFFF\",\"d\":\"M38.561,16c-4.818,0-7.979,0-7.979,0S25,16.193,25,21.914v4.336c0,0,0.101,2.941-3,5.75h16.785\\r\\n\\t\\tc0,0,5.215,0,5.215-5.553c0-4.879,0-4.879,0-4.879S43.772,16,38.561,16z M37.339,21.369h-5.651v2.236h5.094v2.344h-5.094V29H29V19\\r\\n\\t\\th8.339V21.369z M40.25,18.489c0.689,0,1.25,0.562,1.25,1.258C41.5,20.44,40.939,21,40.25,21S39,20.44,39,19.747\\r\\n\\t\\tC39,19.051,39.561,18.489,40.25,18.489z M41.508,29H39v-7h2.508V29z\"},\"child\":[]}]}]})(props);\n};\nexport function FcWikipedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1.1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"#CFD8DC\",\"d\":\"M6,10c0-2.209,1.791-4,4-4h28c2.209,0,4,1.791,4,4v28c0,2.209-1.791,4-4,4H10c-2.209,0-4-1.791-4-4V10z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#37474F\",\"d\":\"M39,17.271c0,0.191-0.148,0.349-0.334,0.349h-1.799l-8.164,18.179c-0.052,0.12-0.17,0.2-0.297,0.202h-0.004\\r\\n\\tc-0.127,0-0.242-0.074-0.298-0.193l-3.874-8.039l-4.18,8.049c-0.06,0.116-0.167,0.181-0.303,0.184\\r\\n\\tc-0.125-0.004-0.239-0.082-0.292-0.199l-8.252-18.182h-1.87C9.149,17.619,9,17.462,9,17.271V16.35C9,16.155,9.149,16,9.333,16h6.657\\r\\n\\tc0.184,0,0.333,0.155,0.333,0.35v0.921c0,0.191-0.149,0.349-0.333,0.349h-1.433l5.696,13.748l2.964-5.793l-3.757-7.953h-0.904\\r\\n\\tc-0.184,0-0.333-0.157-0.333-0.35V16.35c0-0.191,0.149-0.348,0.333-0.348h4.924c0.184,0,0.333,0.156,0.333,0.348v0.922\\r\\n\\tc0,0.192-0.149,0.35-0.333,0.35h-0.867l2.162,4.948l2.572-4.948H25.77c-0.187,0-0.334-0.157-0.334-0.35V16.35\\r\\n\\tc0-0.191,0.147-0.348,0.334-0.348h4.784c0.187,0,0.333,0.156,0.333,0.348v0.922c0,0.192-0.146,0.35-0.333,0.35h-1.05l-3.757,7.141\\r\\n\\tl3.063,6.584l5.905-13.725h-1.872c-0.184,0-0.334-0.157-0.334-0.35V16.35c0-0.191,0.15-0.348,0.334-0.348h5.822\\r\\n\\tc0.186,0,0.334,0.156,0.334,0.348V17.271z\"},\"child\":[]}]})(props);\n};\nexport function FcWorkflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"version\":\"1\",\"viewBox\":\"0 0 48 48\",\"enableBackground\":\"new 0 0 48 48\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"31\",\"fill\":\"#00BCD4\",\"width\":\"10\",\"height\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"fill\":\"#00BCD4\",\"d\":\"M35.3,19.3l-5.6-5.6c-0.4-0.4-0.4-1,0-1.4l5.6-5.6c0.4-0.4,1-0.4,1.4,0l5.6,5.6c0.4,0.4,0.4,1,0,1.4 l-5.6,5.6C36.3,19.7,35.7,19.7,35.3,19.3z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#3F51B5\",\"cx\":\"12\",\"cy\":\"13\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"fill\":\"#448AFF\",\"cx\":\"36\",\"cy\":\"36\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"11\",\"y\":\"24\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12,21 9,25 15,25\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"20\",\"y\":\"12\",\"width\":\"5\",\"height\":\"2\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"28,13 24,10 24,16\"},\"child\":[]}]},{\"tag\":\"g\",\"attr\":{\"fill\":\"#90A4AE\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"35\",\"y\":\"21\",\"width\":\"2\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"36,29 39,25 33,25\"},\"child\":[]}]}]})(props);\n};\n","import React, { useEffect, useState } from \"react\";\nimport moment from \"moment\";\nimport { GiAbstract021 } from \"react-icons/gi\";\nimport { FcMoneyTransfer, FcCurrencyExchange, FcBullish, FcNews } from \"react-icons/fc\";\nimport Loader from \"../Loader\";\nimport { Row, Col } from \"react-bootstrap\";\nimport DataTable from \"react-data-table-component\";\nimport { formatNum } from \"../../utils\";\nmoment.locale(\"utc\");\n\nconst ReportsFilter = ({ revenueFilterData, startDate, endDate, responseCurrency, loading, errorMessage }) => {\n const [filteredData, setFilteredData] = useState([]);\n\n useEffect(() => {\n const revenueArray = [\n {\n id: 1,\n type: \"Gross Gaming Total\",\n earning: `${isNaN(Number(revenueFilterData?.totalGrossGaming)?.toFixed(2)) ? \"00.00\" : formatNum.format(Number(revenueFilterData?.totalGrossGaming))} ${responseCurrency}`,\n },\n {\n id: 2,\n type: \"Payout\",\n earning: `${isNaN(Number(revenueFilterData?.totalPayout)?.toFixed(2)) ? \"00.00\" : formatNum.format(Number(revenueFilterData?.totalPayout))} ${responseCurrency}`,\n },\n {\n id: 3,\n type: \"Gross Gaming Revenue (GGR)\",\n earning: `${isNaN(Number(revenueFilterData?.GGR)?.toFixed(2)) ? \"0.00\" : formatNum.format(Number(revenueFilterData?.GGR))} ${responseCurrency} `,\n },\n {\n id: 4,\n type: \"Taxes\",\n earning: `${isNaN(Number(revenueFilterData?.taxes)?.toFixed(2)) ? \"00.00\" : formatNum.format(Number(revenueFilterData?.taxes))} ${responseCurrency}`,\n },\n {\n id: 5,\n type: \"Net Gaming Revenue\",\n earning: `${isNaN(Number(revenueFilterData?.netGGR)?.toFixed(2)) ? \"00.00\" : formatNum.format(Number(revenueFilterData?.netGGR))} ${responseCurrency}`,\n },\n ];\n setFilteredData(revenueArray);\n }, [revenueFilterData]);\n\n const columns = [\n {\n name: \"#\",\n selector: (row) => row.id,\n grow: \"1px\",\n width: \"50px\",\n },\n {\n name: \"Type\",\n sortable: true,\n selector: (row) => {\n let IconComponent;\n switch (row.type) {\n case \"Gross Gaming Total\":\n IconComponent = FcMoneyTransfer;\n break;\n case \"Payout\":\n IconComponent = FcCurrencyExchange;\n break;\n case \"Gross Gaming Revenue (GGR)\":\n IconComponent = FcBullish;\n break;\n case \"Taxes\":\n IconComponent = FcNews;\n break;\n case \"Net Gaming Revenue\":\n IconComponent = GiAbstract021;\n break;\n default:\n IconComponent = null;\n break;\n }\n return (\n
    \n {IconComponent && (\n
    \n {row.type}\n
    \n )}\n
    \n );\n },\n },\n {\n name: `${startDate} TO ${endDate} Earning`,\n selector: (row) => row.earning,\n },\n ];\n\n return (\n <>\n
    \n \n \n
    \n

    advanced revenue reports

    \n
    \n
    \n \n
    \n\n
    \n
    \n {errorMessage ? (\n

    {errorMessage}

    \n ) : revenueFilterData.length < 0 || loading ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n \n );\n};\n\nexport default ReportsFilter;\n","import { useEffect, useState } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../Loader\";\nimport { formatNum } from \"../../utils\";\nimport InputField from \"../Common/InputField\";\n\nconst GameTypeFilter = ({ gameTypeGGRdata, responseCurrency, loading, errorMessage }) => {\n\tconst [search, setSearch] = useState(\"\");\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Type\",\n\t\t\tselector: (row) => row.name,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"GGR\",\n\t\t\tselector: (row) => `${formatNum.format(row?.ggr)} ${responseCurrency}`,\n\t\t\tsortable: true,\n\t\t\tsortFunction: (a, b) => a.ggr - b.ggr\n\t\t}\n\t];\n\n\tconst customFilter = (data) => {\n\t\treturn data.filter((item) => {\n\t\t\tif (search === \"\") {\n\t\t\t\treturn item;\n\t\t\t} else {\n\t\t\t\treturn item.name.toLowerCase().includes(search.toLowerCase());\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    GGR By Game

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{errorMessage ? (\n\t\t\t\t\t\t\t

    {errorMessage}

    \n\t\t\t\t\t\t) : gameTypeGGRdata?.length < 0 || loading ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Search by type\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default GameTypeFilter;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { toast } from \"react-toastify\";\nimport moment from \"moment\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport CasinoChart from \"../../components/MainDashboard/CasinoChart\";\nimport Revenue from \"../../components/MainDashboard/Revenue\";\nimport ReportsFilter from \"../../components/MainDashboard/ReportsFilter\";\nimport GGRbyGame from \"../../components/MainDashboard/GgrByGame\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport DropDown from \"../../components/Common/DropDown\";\nmoment.locale(\"utc\");\n\nconst Casino = () => {\n const [revenueFilterData, setRevenueFilterData] = useState([]);\n const [gameTypeData, setGameTypeData] = useState([]);\n const [selectedCurrency, setSelectedCurrency] = useState(\"All\");\n const [curData, setCurrencyData] = useState([]);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [advanceRevenueError, setAdvanceRevenueError] = useState(\"\");\n const [advanceRevenueFilterLoading, setAdvanceRevenueFilterLoading] = useState(false);\n const [dropDown, setDropdown] = useState(false);\n const [responseCurrency, setResponseCurrency] = useState(false);\n const [width, setWidth] = useState();\n const [state, setState] = useState({\n start: moment().startOf(\"month\").format(\"YYYY-MM-DD\"),\n end: moment().endOf(\"month\").format(\"YYYY-MM-DD\"),\n });\n // const [date, setDate] = useState({\n // start: moment().startOf(\"month\").format(\"YYYY-MM-DD\"),\n // end: moment().endOf(\"month\").format(\"YYYY-MM-DD\"),\n // });\n const { start, end } = state;\n\n // render currency list\n useEffect(() => {\n axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/currencies/list?token=${\n JSON.parse(localStorage.getItem(\"currentCasino\"))?.casino_token\n }`\n )\n .then((response) => {\n if (response?.data?.status === 200) {\n setErrorMessage('');\n setCurrencyData([{ currency_abrv: \"All\" }, ...response?.data?.data]);\n } else {\n setErrorMessage(response?.data?.message);\n }\n })\n .catch(function (error) {\n if (error.response) {\n setErrorMessage(error.response?.data?.message);\n toast.error(error.response?.data?.message, {\n theme: \"dark\",\n autoClose: 1500,\n });\n } else {\n setErrorMessage(error.message);\n toast.error(error.message, { theme: \"dark\", autoClose: 1500 });\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleCallback = (start, end) => {\n setState({ start, end });\n };\n\n // const startAndEndDate = (start, end) => {\n // setDate({ start, end });\n // };\n\n // advance revenue filter data\n const getAdvanceRevenueData = async () => {\n setAdvanceRevenueFilterLoading(true);\n const casino = JSON.parse(localStorage.getItem(\"currentCasino\"));\n const taxRate = casino?.tax_rate.replace(/%/g, \"\");\n\n try {\n const response = await axios.get(\n `${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/ggr-game-revenue?token=${\n casino.casino_token\n }&casino=${casino.casino_key}¤cy=${\n selectedCurrency.toLowerCase() === \"all\" ? \"\" : selectedCurrency\n }&start=${moment(start).format(\"YYYY-MM-DD\")}T00:00:00Z&end=${moment(end).format(\n \"YYYY-MM-DD\"\n )}T23:59:59Z&tax_rate=${taxRate}`\n );\n\n if (response.data.status === 200) {\n setRevenueFilterData(response.data.response);\n const sortedGames = response.data.response?.gamesGGR.sort((a, b) => a.ggr - b.ggr);\n setGameTypeData(sortedGames);\n setResponseCurrency(response.data?.currency);\n } else {\n setAdvanceRevenueError(response?.data?.message);\n }\n } catch (error) {\n if (error.response) {\n setAdvanceRevenueError(error.response?.data?.message);\n } else {\n setErrorMessage(error.message);\n }\n } finally {\n setAdvanceRevenueFilterLoading(false);\n }\n };\n\n const selectCurrency = (currency) => {\n setSelectedCurrency(currency);\n };\n\n useEffect(() => {\n setWidth(window.innerWidth);\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n useEffect(() => {\n getAdvanceRevenueData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [start, end, selectedCurrency]);\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n {/*
    \n
    \n \n {\n setSelectedCurrency(data?.currency_abrv);\n }}\n />\n
    \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}\n >\n {selectedCurrency ? selectedCurrency : \"\"}\n \n \n \n \n\n
      \n {curData?.map((currency) => (\n {\n selectCurrency(currency.currency_abrv);\n }}\n >\n {currency?.currency_abrv}\n \n ))}\n
    \n
    \n
    \n
    */}\n
    \n
    \n\n
    \n \n
    \n
    \n\n \n
    \n
    \n
    \n {/*
    \n \n \n \n \n
    */}\n
    \n

    revenue by period

    \n {/*
    */}\n
    \n
    \n
    \n
    \n
    \n \n {\n setSelectedCurrency(data?.currency_abrv);\n }}\n />\n {/* \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}>\n {selectedCurrency ? selectedCurrency : \"\"}\n \n \n \n \n\n
      \n {curData?.map((currency) => (\n {\n selectCurrency(currency.currency_abrv);\n }}>\n {currency?.currency_abrv}\n \n ))}\n
    \n
    */}\n
    \n
    \n
    \n \n\n
    \n \n\n \n\n \n
    \n \n \n );\n};\n\nexport default Casino;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\n\nconst AllGamesChart = ({ startDate, endDate, currency }) => {\n\tconst [chartdata, setChartdata] = useState();\n\tconst [monthlist, setMonthlist] = useState([]);\n\tconst [betsWon, setBetsWon] = useState([]);\n\tconst [betsLost, setBetsLost] = useState([]);\n\tconst [netProfit, setNetProfit] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tconst getData = () => {\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst taxRate = casino?.tax_rate.replace(/%/g, \"\");\n\n\t\tsetLoading(true);\n\n\t\taxios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/games/reports/all-games-transactions?token=${casino?.casino_token}&casino=${casino?.casino_key}¤cy=${\n\t\t\t\t\tcurrency === \"All\" ? \"\" : currency\n\t\t\t\t}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&tax_rate=${taxRate || 0}`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetChartdata(response.data?.response);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tsetErrorMessage(\"\");\n\t\tgetData();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [startDate, endDate, currency]);\n\n\tuseEffect(() => {\n\t\tvar monthllistarr = [];\n\t\tvar betwonarr = [];\n\t\tvar betlostarr = [];\n\t\tvar netProfitArr = [];\n\t\tif (chartdata) {\n\t\t\t// eslint-disable-next-line array-callback-return\n\t\t\tchartdata.map((val, i) => {\n\t\t\t\tvar cudate = val.date;\n\t\t\t\tmonthllistarr.push(cudate);\n\t\t\t\tbetwonarr.push(parseFloat(val.totalDebit).toFixed(2));\n\t\t\t\tbetlostarr.push(parseFloat(val.totalCredit).toFixed(2));\n\t\t\t\tnetProfitArr.push(parseFloat(val.netProfit).toFixed(2));\n\t\t\t});\n\n\t\t\tif (!monthllistarr.length && !betwonarr.length && !betlostarr.length && !netProfitArr.length) {\n\t\t\t\tsetMonthlist([]);\n\t\t\t\tsetBetsWon([]);\n\t\t\t\tsetBetsLost([]);\n\t\t\t\tsetNetProfit([]);\n\t\t\t\tsetErrorMessage(\"There are no records to display\");\n\t\t\t} else {\n\t\t\t\tsetErrorMessage(\"\");\n\t\t\t\tsetMonthlist(monthllistarr);\n\t\t\t\tsetBetsWon(betwonarr);\n\t\t\t\tsetBetsLost(betlostarr);\n\t\t\t\tsetNetProfit(netProfitArr);\n\t\t\t}\n\t\t}\n\t}, [chartdata]);\n\n\tconst playerChartoption = {\n\t\toptions: {\n\t\t\tchart: {\n\t\t\t\ttype: \"bar\",\n\t\t\t\theight: 350,\n\t\t\t\ttoolbar: {\n\t\t\t\t\tshow: false\n\t\t\t\t}\n\t\t\t},\n\t\t\tplotOptions: {\n\t\t\t\tbar: {\n\t\t\t\t\tcolors: {\n\t\t\t\t\t\tranges: [\n\t\t\t\t\t\t\t{ from: -100, to: -46, color: \"#F15B46\" },\n\t\t\t\t\t\t\t{ from: -45, to: 0, color: \"#FEB019\" }\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tcolumnWidth: \"80%\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdataLabels: {\n\t\t\t\tenabled: false\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\twidth: [1, 1, 4]\n\t\t\t},\n\t\t\tyaxis: {\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0\n\t\t\t\t},\n\t\t\t\taxisTicks: {\n\t\t\t\t\tshow: true\n\t\t\t\t},\n\t\t\t\taxisBorder: {\n\t\t\t\t\t// offsetX: -12,\n\t\t\t\t\tshow: true,\n\t\t\t\t\tcolor: \"#008FFB\"\n\t\t\t\t},\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: \"Total Won and Lost\",\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tformatter: function (y) {\n\t\t\t\t\t\treturn parseFloat(y).toFixed(2) + \" USD\";\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolors: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttooltip: {\n\t\t\t\t\tenabled: true\n\t\t\t\t}\n\t\t\t},\n\t\t\txaxis: {\n\t\t\t\t// type: 'datetime',\n\t\t\t\tcategories: monthlist,\n\t\t\t\tlabels: {\n\t\t\t\t\trotate: -90,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolors: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttooltip: {\n\t\t\t\tfixed: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tposition: \"topLeft\", // topRight, topLeft, bottomRight, bottomLeft\n\t\t\t\t\toffsetY: 30,\n\t\t\t\t\toffsetX: 60\n\t\t\t\t},\n\t\t\t\ttheme: \"dark\"\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\thorizontalAlign: \"left\",\n\t\t\t\toffsetX: 20,\n\t\t\t\tlabels: {\n\t\t\t\t\tcolors: \"#fff\"\n\t\t\t\t},\n\t\t\t\tmarkers: {\n\t\t\t\t\toffsetX: -3,\n\t\t\t\t\toffsetY: 2\n\t\t\t\t},\n\t\t\t\titemMargin: {\n\t\t\t\t\thorizontal: 10\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrid: {\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0\n\t\t\t\t},\n\n\t\t\t\tyaxis: {\n\t\t\t\t\tlines: {\n\t\t\t\t\t\tshow: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tseries: [\n\t\t\t{\n\t\t\t\tname: \"Bets Won\",\n\t\t\t\tdata: betsWon\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Bets Lost\",\n\t\t\t\tdata: betsLost\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Net Profit\",\n\t\t\t\tdata: netProfit\n\t\t\t}\n\t\t]\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    All Games
    \n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default AllGamesChart;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\n\nconst NumberOfBetsPerDayChart = ({ startDate, endDate, currency }) => {\n const [chartdata, setChartdata] = useState();\n const [monthlist, setMonthlist] = useState([]);\n const [numberOfBets, setNumberOfBets] = useState([]);\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const getData = () => {\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\n setLoading(true);\n\n axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/games/reports/transactions-bets-per-day?token=${\n casino?.casino_token\n }&casino=${casino?.casino_key}¤cy=${\n currency === \"All\" ? \"\" : currency\n }&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z`\n )\n .then((response) => {\n if (response.data.status === 200) {\n setChartdata(response.data?.response);\n } else {\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n setErrorMessage(error.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n setErrorMessage(\"\");\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, currency]);\n\n useEffect(() => {\n var monthllistarr = [];\n var numberOfBetsList = [];\n\n if (chartdata) {\n // eslint-disable-next-line array-callback-return\n chartdata.map((val, i) => {\n var cudate = val.date;\n monthllistarr.push(cudate);\n numberOfBetsList.push(parseFloat(val.numberOfBets));\n });\n\n if (\n !monthllistarr.length &&\n !numberOfBetsList.length /* !betwonarr.length && !betlostarr.length && !netProfitArr.length*/\n ) {\n setMonthlist([]);\n setNumberOfBets([]);\n setErrorMessage(\"There are no records to display\");\n } else {\n setErrorMessage(\"\");\n setMonthlist(monthllistarr);\n setNumberOfBets(numberOfBetsList);\n }\n }\n }, [chartdata]);\n\n const playerChartoption = {\n options: {\n chart: {\n type: \"bar\",\n height: 350,\n toolbar: {\n show: false,\n },\n },\n plotOptions: {\n bar: {\n colors: {\n ranges: [\n { from: -100, to: -46, color: \"#F15B46\" },\n { from: -45, to: 0, color: \"#FEB019\" },\n ],\n },\n columnWidth: \"80%\",\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: [1, 1, 4],\n },\n yaxis: {\n padding: {\n left: 0,\n right: 0,\n },\n axisTicks: {\n show: true,\n },\n axisBorder: {\n // offsetX: -12,\n show: true,\n color: \"#008FFB\",\n },\n title: {\n text: \"Number of Bets\",\n style: {\n color: \"#008FFB\",\n },\n },\n labels: {\n formatter: function (y) {\n return y;\n },\n style: {\n colors: \"#008FFB\",\n },\n },\n tooltip: {\n enabled: true,\n },\n },\n xaxis: {\n // type: 'datetime',\n categories: monthlist,\n labels: {\n rotate: -90,\n style: {\n colors: \"#008FFB\",\n },\n },\n },\n tooltip: {\n fixed: {\n enabled: true,\n position: \"topLeft\", // topRight, topLeft, bottomRight, bottomLeft\n offsetY: 30,\n offsetX: 60,\n },\n theme: \"dark\",\n },\n legend: {\n horizontalAlign: \"left\",\n offsetX: 20,\n labels: {\n colors: \"#fff\",\n },\n markers: {\n offsetX: -3,\n offsetY: 2,\n },\n itemMargin: {\n horizontal: 10,\n },\n },\n grid: {\n padding: {\n left: 0,\n right: 0,\n },\n\n yaxis: {\n lines: {\n show: true,\n },\n },\n },\n },\n series: [\n {\n name: \"Number of Bets\",\n data: numberOfBets,\n },\n ],\n };\n\n return (\n <>\n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n\n {loading ? : \"\"}\n \n );\n};\n\nexport default NumberOfBetsPerDayChart;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\n\nconst GameTypeBetsChart = ({ startDate, endDate, currency, width }) => {\n\tconst [chartdata, setChartdata] = useState();\n\tconst [monthlist, setMonthlist] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [gameTypeBets, setGameTypeBets] = useState([]);\n\tconst [gameTypes, setGameTypes] = useState([]);\n\tconst [pieChartData, setPieChartData] = useState({ series: [], labels: [], original: { series: [], labels: [] }, disabledIndexes: [] });\n\tconst [selectedGameType, setSelectedGameType] = useState(\"All\");\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [gameDropDown, setGameDropdown] = useState(false);\n\n\tconst getData = () => {\n\t\tconst gameType = selectedGameType === \"All\" ? \"\" : selectedGameType;\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\n\t\tsetLoading(true);\n\n\t\taxios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/games/reports/bets-game-type?token=${casino?.casino_token}&casino=${casino?.casino_key}¤cy=${\n\t\t\t\t\tcurrency === \"All\" ? \"\" : currency\n\t\t\t\t}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&gameType=${gameType}`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetChartdata(response.data?.data?.byGameTypes);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tsetErrorMessage(\"\");\n\t\tgetData();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [startDate, endDate, currency, selectedGameType]);\n\n\tuseEffect(() => {\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\n\t\taxios.get(`${process.env.REACT_APP_API_DOMAIN}/games/gametypes/list?token=${casino?.casino_token}&casino=${casino?.casino_key}`).then((response) => {\n\t\t\tif (response.data?.status === 200) {\n\t\t\t\tif (Array.isArray(response.data?.data) && response.data?.data.length !== 0) {\n\t\t\t\t\tsetGameTypes([\"All\", ...response.data?.data]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst gameTypeList = [];\n\t\tconst betsList = [];\n\n\t\tif (chartdata) {\n\t\t\t// eslint-disable-next-line array-callback-return\n\t\t\tchartdata.map((val, i) => {\n\t\t\t\tconst currGameType = val.gameType;\n\t\t\t\tgameTypeList.push(currGameType);\n\t\t\t\tbetsList.push(parseFloat(val.bets.toFixed(2)));\n\t\t\t});\n\n\t\t\tif (!gameTypeList.length && !betsList.length) {\n\t\t\t\tsetErrorMessage(\"There are no records to display\");\n\t\t\t} else {\n\t\t\t\tsetErrorMessage(\"\");\n\t\t\t}\n\t\t\tconst modifiedData = { series: betsList, labels: gameTypeList };\n\n\t\t\tsetPieChartData((p) => ({ ...p, ...modifiedData, original: modifiedData }));\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [chartdata]);\n\n\tconst playerChartoption = {\n\t\tseries: pieChartData.series,\n\t\toptions: {\n\t\t\tchart: {\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttype: \"pie\"\n\t\t\t},\n\t\t\tlabels: pieChartData.labels,\n\t\t\ttheme: {\n\t\t\t\tmonochrome: {\n\t\t\t\t\tenabled: true\n\t\t\t\t}\n\t\t\t},\n\t\t\tplotOptions: {\n\t\t\t\tpie: {\n\t\t\t\t\tdataLabels: {\n\t\t\t\t\t\toffset: -5\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle: {\n\t\t\t\ttext: \"\"\n\t\t\t},\n\t\t\tdataLabels: {\n\t\t\t\tformatter(val, opts) {\n\t\t\t\t\tconst name = opts.w.globals.labels[opts.seriesIndex];\n\t\t\t\t\treturn [name, parseFloat(val).toFixed(1) + \"%\"];\n\t\t\t\t}\n\t\t\t},\n\t\t\t// legend: {\n\t\t\t// show: false,\n\t\t\t// },\n\t\t\ttooltip: {\n\t\t\t\tfixed: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tposition: \"bottom\", // topRight, topLeft, bottomRight, bottomLeft\n\t\t\t\t\toffsetY: 30,\n\t\t\t\t\toffsetX: 60\n\t\t\t\t},\n\t\t\t\ttheme: \"dark\"\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\thorizontalAlign: \"left\",\n\t\t\t\toffsetX: 20,\n\t\t\t\tlabels: {\n\t\t\t\t\tcolors: \"#fff\"\n\t\t\t\t},\n\t\t\t\tmarkers: {\n\t\t\t\t\toffsetX: -3,\n\t\t\t\t\toffsetY: 2\n\t\t\t\t},\n\t\t\t\titemMargin: {\n\t\t\t\t\thorizontal: 10\n\t\t\t\t}\n\t\t\t},\n\t\t\tresponsive: [\n\t\t\t\t{\n\t\t\t\t\tbreakpoint: 575,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tlegend: {\n\t\t\t\t\t\t\tposition: \"bottom\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t};\n\n\tconst toggleData = (index) => {\n\t\tsetPieChartData((prev) => {\n\t\t\tif (!prev.disabledIndexes.includes(index)) {\n\t\t\t\tconst disabledIndexes = [...prev.disabledIndexes, index];\n\t\t\t\tconst newSeries = prev.original.series.filter((series, sIndex) => !disabledIndexes.includes(sIndex));\n\t\t\t\tconst newLabels = prev.original.labels.filter((label, lIndex) => !disabledIndexes.includes(lIndex));\n\t\t\t\treturn { ...prev, series: newSeries, labels: newLabels, disabledIndexes: disabledIndexes };\n\t\t\t} else {\n\t\t\t\tlet updatedDisabledIndexes = [...prev.disabledIndexes];\n\n\t\t\t\tupdatedDisabledIndexes = updatedDisabledIndexes.filter((el) => el !== index);\n\n\t\t\t\tconst newSeries = prev.original.series.filter((series, sIndex) => !updatedDisabledIndexes.includes(sIndex));\n\t\t\t\tconst newLabels = prev.original.labels.filter((label, lIndex) => !updatedDisabledIndexes.includes(lIndex));\n\t\t\t\treturn { ...prev, series: newSeries, labels: newLabels, disabledIndexes: updatedDisabledIndexes };\n\t\t\t}\n\n\t\t\treturn prev;\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/*
    \n
    \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}\n >\n {gameTypes?.active === -1 ? \"Select Game\" : gameTypes?.game}\n \n \n \n \n
      \n {gameTypes?.map((gameType) => (\n
    • setSelectedGameType(gameType)}>\n {gameType}\n
    • \n ))}\n
    \n
    \n
    */}\n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{pieChartData.original.labels?.map((label, index) => {\n\t\t\t\t\t\t\tconst disabledLabel = pieChartData.disabledIndexes.includes(index);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t toggleData(index)}\n\t\t\t\t\t\t\t\t\tclassName={disabledLabel ? \"active_chart_option\" : \"\"}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default GameTypeBetsChart;\n","import { useState } from \"react\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\n\nfunction CurrenciesDropdown({ currencies, currency, setCurrency, otherData = -1, width }) {\n const [dropDown, setDropdown] = useState(false);\n return (\n
    \n \n
    \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}>\n {currency}\n {otherData !== -1 ? ` (${otherData})` : \"\"}\n \n \n \n \n\n
      \n {currencies?.map((currency) => (\n {\n setCurrency(currency.currency_abrv);\n }}>\n {currency?.currency_abrv}\n \n ))}\n
    \n
    \n
    \n );\n}\n\nexport default CurrenciesDropdown;\n","import React, { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport axios from \"axios\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport DropDown from \"../../Common/DropDown\";\n\nconst defaultGamesObj = { games: {}, active: -1, game: \"\", activeRow: -1, activeCol: -1, underSize: true };\nconst chunkSize = 10;\n\nconst CasinoGGR = ({ startDate, endDate, currencies, width }) => {\n const [loading, setLoading] = useState(false);\n const [chartDate, setChartDate] = useState([]);\n const [xAxisList, setXAxisList] = useState([]);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [currency, setCurrency] = useState(\"All\");\n const [activeTrend, setActiveTrend] = useState(-1);\n const [gameDropDown, setGameDropdown] = useState(false);\n const [popularDropDown, setPopularDropdown] = useState(false);\n const [games, setGames] = useState(defaultGamesObj);\n\n const getData = () => {\n setErrorMessage(\"\");\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\n setLoading(true);\n\n let url = `${process.env.REACT_APP_API_DOMAIN}/reports/games/transactions/dashboard/chart-admin?currency=${currency === \"All\" ? \"\" : currency\n }&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&token=${casino?.casino_token}&casino=${casino?.casino_key\n }`;\n\n axios\n .get(url)\n .then((response) => {\n if (response.data.status === 200) {\n let gamedata = response.data?.response?.chartData;\n if (gamedata.length === 0) {\n setErrorMessage(\"There are no records to display\");\n }\n let chunks = [];\n\n if (currency === \"All\") {\n gamedata = gamedata.map((row, index) => {\n return {\n ...row,\n originalData: row.data,\n data: row.usdData,\n };\n });\n }\n\n if (gamedata.length > chunkSize) {\n for (let i = 0; i < gamedata.length; i += chunkSize) {\n chunks.push(gamedata.slice(i, i + chunkSize));\n }\n } else {\n chunks = [gamedata];\n }\n\n setActiveTrend(0);\n setXAxisList(chunks);\n\n setGames((prev) => ({\n ...prev,\n games: Array.isArray(response.data?.response?.gamesList?.games)\n ? response.data?.response?.gamesList?.games.sort()\n : [],\n active: -1,\n }));\n\n setChartDate(response.data?.response?.daysOrMonths);\n\n } else {\n setActiveTrend(-1);\n setGames(defaultGamesObj);\n setChartDate([]);\n setXAxisList([]);\n\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n setGames(defaultGamesObj);\n setActiveTrend(-1);\n setChartDate([]);\n setXAxisList([]);\n\n setErrorMessage(error.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, currency]);\n\n const series = xAxisList.length\n ? activeTrend !== -1\n ? xAxisList.at(activeTrend).map((game) => ({ name: game.name, data: game.data }))\n : games?.active !== -1\n ? !games?.underSize\n ? games?.gameData // [xAxisList[games?.activeRow][games?.activeCol]]\n : [{ name: games?.game, data: xAxisList[games?.active]?.data || [] }]\n : []\n : [];\n\n const dashboardChartOptions = {\n chart: {\n height: 350,\n type: \"line\",\n zoom: {\n enabled: false,\n },\n toolbar: {\n show: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: 3,\n curve: \"smooth\",\n },\n title: {\n align: \"center\",\n style: {\n color: \"#FEB019\",\n },\n },\n xaxis: {\n categories: chartDate ? chartDate : [],\n labels: {\n style: {\n colors: \"#ccc\",\n },\n },\n },\n yaxis: [\n {\n labels: {\n formatter: (value) => {\n const currencyLabel = currency === \"All\" ? \"Converted to USD\" : currency;\n return `${parseFloat(value).toFixed(2)} ${currencyLabel}`;\n },\n style: {\n colors: \"#ccc\",\n },\n },\n },\n ],\n tooltip: {\n theme: \"dark\",\n followCursor: true,\n },\n legend: {\n position: \"top\",\n labels: {\n colors: \"#fff\",\n },\n markers: {\n offsetX: -4,\n offsetY: -1,\n },\n itemMargin: {\n horizontal: 10,\n },\n },\n };\n\n return (\n <>\n
    \n \n {(activeTrend !== -1 || games?.active !== -1 ? 6 : 10) && (\n \n
    All Games GGR
    \n \n )}\n\n {(activeTrend !== -1 || games?.active !== -1) && (\n \n
    \n \n\n {\n setActiveTrend(index);\n setGames((prev) => {\n return {\n ...prev,\n active: -1,\n game: \"\",\n activeRow: -1,\n activeCol: -1,\n };\n });\n }}\n />\n\n {/* \n width <= 991 && setPopularDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setPopularDropdown(true)}\n onMouseLeave={() => width >= 991 && setPopularDropdown(false)}>\n {activeTrend === -1 ? \"Select List\" : `Popular #${activeTrend}`}\n \n \n \n \n\n
      \n {xAxisList?.map((data, index) => (\n {\n setActiveTrend(index);\n setGames((prev) => {\n return {\n ...prev,\n active: -1,\n game: \"\",\n activeRow: -1,\n activeCol: -1,\n };\n });\n }}>\n {`Popular #${index}`}\n \n ))}\n
    \n
    */}\n
    \n \n )}\n\n {(activeTrend !== -1 || games?.active !== -1) && (\n \n
    \n \n\n {\n if (games?.games?.length > chunkSize) {\n let row = Math.floor(index / chunkSize);\n let col = index % chunkSize;\n\n if (index === 0) {\n row = 0;\n col = 0;\n }\n\n // if () {\n\n // }\n const allGamesList = xAxisList.flat(1);\n const currentGameData = allGamesList.filter(\n (game) => data === game.name\n );\n\n setGames((prev) => ({\n ...prev,\n active: index,\n game: data,\n gameData: currentGameData,\n activeRow: row,\n activeCol: col,\n underSize: false,\n }));\n } else {\n setGames((prev) => ({\n ...prev,\n active: index,\n game: data,\n activeRow: -1,\n activeCol: -1,\n underSize: true,\n }));\n }\n setActiveTrend(-1);\n }}\n />\n\n {/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {games?.active === -1 ? \"Select Game\" : games?.game}\n \n \n \n \n\n
      \n {games?.games?.map((data, index) => (\n {\n if (games?.games?.length > chunkSize) {\n let row = Math.floor(index / chunkSize);\n let col = index % chunkSize;\n\n if (index === 0) {\n row = 0;\n col = 0;\n }\n\n // if () {\n\n // }\n const allGamesList = xAxisList.flat(1);\n const currentGameData = allGamesList.filter(\n (game) => data === game.name\n );\n\n setGames((prev) => ({\n ...prev,\n active: index,\n game: data,\n gameData: currentGameData,\n activeRow: row,\n activeCol: col,\n underSize: false,\n }));\n } else {\n setGames((prev) => ({\n ...prev,\n active: index,\n game: data,\n activeRow: -1,\n activeCol: -1,\n underSize: true,\n }));\n }\n setActiveTrend(-1);\n }}>\n {data}\n \n ))}\n
    \n
    */}\n \n \n )}\n\n \n
    \n \n\n {\n setCurrency(data?.currency_abrv);\n }}\n />\n
    \n {/* */}\n \n \n \n\n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n\n {loading ? : \"\"}\n \n );\n};\n\nexport default CasinoGGR;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { toast } from \"react-toastify\";\nimport moment from \"moment\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport AllGamesChart from \"../../components/Charts/CasinoGameReports/AllGamesChart\";\nimport NumberOfBetsPerDayChart from \"../../components/Charts/CasinoGameReports/NumberOfBetsPerDayChart\";\nimport GameTypeBetsChart from \"../../components/Charts/CasinoGameReports/GameTypeBetsChart\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport CasinoGGR from \"../../components/Charts/CasinoGameReports/CasinoGGR.js\";\nimport DropDown from \"../../components/Common/DropDown\";\nmoment.locale(\"utc\");\n\nconst CasinoGameReports = () => {\n const [selectedCurrency, setSelectedCurrency] = useState(\"USD\");\n const [currencies, setCurrencies] = useState([]);\n const [width, setWidth] = useState();\n const [dropDown, setDropdown] = useState(false);\n const [state, setState] = useState({\n start: moment().startOf(\"month\").toDate(),\n end: moment().endOf(\"month\").toDate(),\n });\n const { start, end } = state;\n const handleCallback = (start, end) => {\n setState({ start, end });\n };\n\n // render currency list\n useEffect(() => {\n axios\n .get(`${process.env.REACT_APP_API_DOMAIN}/currencies/list?token=${JSON.parse(localStorage.getItem(\"currentCasino\"))?.casino_token}`)\n .then((response) => {\n if (response?.data?.status === 200) {\n setCurrencies([{ currency_abrv: \"All\" }, ...response?.data?.data]);\n }\n })\n .catch(function (error) {\n if (error.response) {\n toast.error(error.response?.data?.message, {\n theme: \"dark\",\n autoClose: 1500,\n });\n } else {\n toast.error(error.message, { theme: \"dark\", autoClose: 1500 });\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const selectCurrency = (currency) => {\n setSelectedCurrency(currency);\n };\n\n useEffect(() => {\n setWidth(window.innerWidth);\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {\n setSelectedCurrency(data?.currency_abrv);\n }}\n />\n {/*
    \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}\n >\n {selectedCurrency ? selectedCurrency : \"\"}\n \n \n \n \n\n
      \n {currencies?.map((currency) => (\n {\n selectCurrency(currency.currency_abrv);\n }}\n >\n {currency?.currency_abrv}\n \n ))}\n
    \n
    */}\n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    Transactions per Day
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    Bets by Game Type
    \n \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default CasinoGameReports;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../../../components/Loader\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { LuUser2 } from \"react-icons/lu\";\nimport InputField from \"../../../components/Common/InputField\";\n\nconst CasinoTable = () => {\n\tconst [state, setState] = useState({\n\t\tstart: moment().startOf(\"month\").toDate(),\n\t\tend: moment().endOf(\"month\").toDate()\n\t});\n\n\tconst [searchBoxValue, setSearchBoxValue] = useState(\"\");\n\tconst [data, setData] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [limit, setLimit] = useState(10);\n\n\tconst [refreshToggle, setRefreshToggle] = useState(false);\n\tconst [currentPage, setCurrentPage] = useState(1);\n\n\tconst { start, end } = state;\n\tconst handleCallback = (start, end) => {\n\t\tsetState({ start, end });\n\t};\n\n\t//* Set Table Dark Theme /\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tfontSize: \"1rem\",\n\t\t\t\tfontFamily: \"inherit\",\n\t\t\t\ttextAlign: \"right\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\t/* Set Table Column */\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Player\",\n\t\t\tselector: (row) => row.remote_id || `${row.fname} ${row.lname}`,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Created At\",\n\t\t\tselector: (row) => moment(row.created_at).format(\"YYYY-MM-DD HH:mm:ss\") || \"\",\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"RoundId\",\n\t\t\tselector: (row) => row.round_id,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Game Name\",\n\t\t\tselector: (row) => (row.name ? row.name : row.game_id),\n\t\t\tsortable: true\n\t\t}\n\t];\n\n\tconst onSubmitCartData = (e) => {\n\t\te.preventDefault();\n\t\tsetRefreshToggle((prev) => !prev);\n\t};\n\n\t/* Data Fetch Function */\n\tconst fetchRounds = async (page, limitValue = limit) => {\n\t\tsetLoading(true);\n\t\tsetErrorMessage(\"\");\n\n\t\tconst currentCasino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tawait axios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/reports/transactions/game-rounds?token=${currentCasino?.casino_token}&report=transactions&casino=${\n\t\t\t\t\tcurrentCasino?.casino_key\n\t\t\t\t}&page=${page}&limit=${limitValue}&start=${moment(start).format(\"YYYY-MM-DD\")}T00:00:00Z&end=${moment(end).format(\"YYYY-MM-DD\")}T23:59:59Z&searchValue=${searchBoxValue}`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tif (response.data?.response?.rounds?.length === 0) {\n\t\t\t\t\t\tsetErrorMessage(\"There are no record found\");\n\t\t\t\t\t}\n\t\t\t\t\tsetData(response.data?.response?.rounds);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (error.response) {\n\t\t\t\t\tsetErrorMessage(error.response?.data?.message);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\t// const handlePerRowsChange = async (limitValue, page) => {\n\t// setLimit(limitValue);\n\t// setLimit(limitValue);\n\t// fetchRounds(page, limitValue);\n\t// };\n\n\tuseEffect(() => {\n\t\tfetchRounds(1, limit); // fetch page 1 of users\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [refreshToggle]);\n\n\tconst RoundInfoComponent = ({ data }) => {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{data ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\tBet: {data.bet ? JSON.stringify(data.bet, null, 2) : \"\"}\n\t\t\t\t\t\t{\"\\n\"}\n\t\t\t\t\t\tGame End: {data.game_end ? JSON.stringify(data.game_end, null, 2) : \"\"}\n\t\t\t\t\t\t{\"\\n\"}\n\t\t\t\t\t\tBonus Rounds: {data.bonus_rounds ? JSON.stringify(data.bonus_rounds, null, 2) : \"\"}\n\t\t\t\t\t\t{\"\\n\"}\n\t\t\t\t\t\tGame Round Over: {data.game_round_over ? JSON.stringify(data.game_round_over, null, 2) : \"\"}\n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t

    Loading...

    \n\t\t\t\t)}\n\t\t\t
    \n\t\t);\n\t};\n\n\t// const CustomPagination = ({ pagination, rowsPerPage, ...props }) => {\n\t// console.log('pagination', pagination)\n\t// return(
    \n\t// \n\t//
    )\n\t// };\n\n\tconst onNextPage = () => {\n\t\tsetCurrentPage(currentPage + 1);\n\t\tfetchRounds(currentPage + 1, limit);\n\t};\n\n\tconst onPreviousPage = () => {\n\t\tif (currentPage > 1) {\n\t\t\tsetCurrentPage(currentPage - 1);\n\t\t\tfetchRounds(currentPage + 1, limit);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter Player or RoundId\"\n\t\t\t\t\t\t\t\t\t\tname=\"search_box_value\"\n\t\t\t\t\t\t\t\t\t\tonChange={(event) => setSearchBoxValue(event.target.value)}\n\t\t\t\t\t\t\t\t\t\tvalue={searchBoxValue || searchBoxValue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    Rounds History
    \n\t\t\t\t\t\t{errorMessage ? (\n\t\t\t\t\t\t\t

    {errorMessage}

    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{data.length > 0 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{/* {!searchBoxValue && ( */}\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{currentPage > 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tPrevious\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tNext\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{/* )} */}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{loading ? : \"\"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\n\t);\n};\n\nexport default CasinoTable;\n","import PlayerTable from \"./PlayerTable\";\n\nconst CasinoGameRounds = () => {\n return (\n <>\n \n \n );\n};\n\nexport default CasinoGameRounds;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport Loader from \"../../../components/Loader\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport { IoGameControllerOutline } from \"react-icons/io5\";\nimport InputField from \"../../../components/Common/InputField\";\n\nconst PlayerChart = () => {\n const [state, setState] = useState({\n start: moment().startOf(\"month\").toDate(),\n end: moment().endOf(\"month\").toDate(),\n });\n const { start, end } = state;\n const handleCallback = (start, end) => {\n setState({ start, end });\n };\n // const label = start.format(\"MMMM D, YYYY\") + \" - \" + end.format(\"MMMM D, YYYY\");\n\n const [chartdata, setChartdata] = useState();\n const [monthlist, setMonthlist] = useState([]);\n const [betsWon, setBetsWon] = useState([]);\n const [betsLost, setBetsLost] = useState([]);\n const [betsplaced, setBetsplaced] = useState([]);\n const [loading, setLoading] = useState(false);\n const [gameId, setGameId] = useState();\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n // play report chart display\n\n const chartData = async (startDate, endDate, game_Id) => {\n const currentCasino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n setLoading(true);\n await axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/reports/transactions/chart?token=${\n currentCasino?.casino_token\n }&casino=${currentCasino?.casino_key}&start=${moment(start).format(\n \"YYYY-MM-DD\"\n )}T00:00:00Z&end=${moment(end).format(\"YYYY-MM-DD\")}T23:00:00Z&game_id=${game_Id || \"\"}`\n )\n .then((response) => {\n if (response.data.status === 200) {\n setChartdata(response.data.response);\n } else {\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n if (error.response.status === 403) {\n setErrorMessage(error.response.statusText);\n }\n setErrorMessage(error.response?.data?.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n useEffect(() => {\n const startDateApi = moment().startOf(\"month\").format(\"YYYY-MM-DD\");\n const endDateApi = moment().endOf(\"month\").format(\"YYYY-MM-DD\");\n chartData(startDateApi, endDateApi);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onSubmitCartData = (e) => {\n e.preventDefault();\n setErrorMessage(\"\");\n setLoading(true);\n const startDateApi = moment().startOf(\"month\").format(\"YYYY-MM-DD\");\n const endDateApi = moment().endOf(\"month\").format(\"YYYY-MM-DD\");\n chartData(startDateApi, endDateApi, gameId);\n };\n\n useEffect(() => {\n var monthllistarr = [];\n var betwonarr = [];\n var betlostarr = [];\n var brtplacedarr = [];\n if (chartdata) {\n // eslint-disable-next-line array-callback-return\n chartdata.map((val, i) => {\n var cudate = val.date;\n monthllistarr.push(cudate);\n betwonarr.push(\n val.totalDebit.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n );\n betlostarr.push(\n val.totalCredit.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n );\n brtplacedarr.push(\n val.totalBet.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n );\n });\n\n if (!monthllistarr.length && !betwonarr.length && !betlostarr.length && !brtplacedarr.length) {\n setMonthlist([]);\n setBetsWon([]);\n setBetsLost([]);\n setBetsplaced([]);\n setErrorMessage(\"There are no records to display\");\n } else {\n setErrorMessage(\"\");\n setMonthlist(monthllistarr);\n setBetsWon(betwonarr);\n setBetsLost(betlostarr);\n setBetsplaced(brtplacedarr);\n }\n // setLoading(false);\n }\n }, [chartdata]);\n\n const playerChartoption = {\n options: {\n chart: {\n height: 350,\n toolbar: {\n show: false,\n },\n },\n\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: [1, 1, 4],\n },\n xaxis: {\n categories: monthlist,\n labels: {\n style: {\n colors: \"#008FFB\",\n },\n },\n },\n yaxis: [\n {\n padding: {\n left: 0,\n right: 0,\n },\n axisTicks: {\n show: true,\n },\n axisBorder: {\n // offsetX: -12,\n show: true,\n color: \"#008FFB\",\n },\n labels: {\n formatter: function (value) {\n return (\n value.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }) + \" USD\"\n );\n },\n style: {\n colors: \"#008FFB\",\n },\n },\n title: {\n text: \"Total Won and Lost\",\n style: {\n color: \"#008FFB\",\n },\n },\n tooltip: {\n enabled: true,\n },\n },\n {\n seriesName: \"Bets Lost\",\n opposite: true,\n labels: {\n formatter: function (value) {\n return (\n value.toLocaleString(undefined, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }) + \" USD\"\n );\n },\n show: false,\n },\n tooltip: {\n enabled: true,\n },\n },\n {\n seriesName: \"Total Bets Placed\",\n opposite: true,\n axisTicks: {\n show: true,\n },\n axisBorder: {\n show: true,\n color: \"#FEB019\",\n },\n labels: {\n style: {\n colors: \"#FEB019\",\n },\n },\n title: {\n text: \"Total Bets Placed\",\n style: {\n color: \"#FEB019\",\n },\n },\n tooltip: {\n enabled: true,\n },\n },\n ],\n tooltip: {\n fixed: {\n enabled: true,\n position: \"topLeft\", // topRight, topLeft, bottomRight, bottomLeft\n offsetY: 30,\n offsetX: 60,\n },\n theme: \"dark\",\n },\n legend: {\n horizontalAlign: \"left\",\n offsetX: 20,\n labels: {\n colors: \"#fff\",\n },\n markers: {\n offsetX: -3,\n offsetY: 2,\n },\n itemMargin: {\n horizontal: 10,\n },\n },\n // tooltip: {\n // theme: \"dark\",\n // followCursor: true,\n // },\n grid: {\n padding: {\n left: 0,\n right: 0,\n },\n\n yaxis: {\n lines: {\n show: true,\n },\n },\n },\n },\n series: [\n {\n name: \"Bets Won\",\n type: \"column\",\n data: betsWon,\n },\n {\n name: \"Bets Lost\",\n type: \"column\",\n data: betsLost,\n },\n {\n name: \"Total Bets Placed\",\n type: \"line\",\n data: betsplaced,\n },\n ],\n };\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n\n \n \n \n
    \n
    \n
    \n }\n placeholder=\"Enter GameId\"\n name=\"game_Id\"\n onChange={(event) => setGameId(event.target.value)}\n value={gameId || gameId}\n />\n
    \n
    \n \n
    \n
    \n
    \n
    Players
    \n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n {loading ? : \"\"}\n
    \n
    \n );\n};\n\nexport default PlayerChart;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../../../components/Loader\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { toast } from \"react-toastify\";\nimport DropDown from \"../../../components/Common/DropDown\";\nimport InputField from \"../../../components/Common/InputField\";\nimport { Col } from \"react-bootstrap\";\n\nconst CasinoTable = () => {\n\tconst [state, setState] = useState({\n\t\tstart: moment().startOf(\"month\").toDate(),\n\t\tend: moment().endOf(\"month\").toDate()\n\t});\n\tconst { start, end } = state;\n\tconst handleCallback = (start, end) => {\n\t\tsetState({ start, end });\n\t};\n\tconst [data, setData] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [totalRows, setTotalRows] = useState(0);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tconst [limit, setlimit] = useState(10);\n\tconst [sortingData, setSortingData] = useState({ field: \"GGR\", order: \"desc\" });\n\tconst [refreshToggle, setRefreshToggle] = useState(false);\n\tconst [selectedCurrency, setSelectedCurrency] = useState(\"USD\");\n\tconst [currencies, setCurrencies] = useState([]);\n\tconst [currentCurrency, setCurrentCurrency] = useState();\n\tconst [dropDown, setDropdown] = useState(false);\n\tconst [width, setWidth] = useState();\n\tconst [search, setSearch] = useState(\"\");\n\n\tuseEffect(() => {\n\t\taxios\n\t\t\t.get(`${process.env.REACT_APP_API_DOMAIN}/currencies/list?token=${JSON.parse(localStorage.getItem(\"currentCasino\"))?.casino_token}`)\n\t\t\t.then((response) => {\n\t\t\t\tif (response?.data?.status === 200) {\n\t\t\t\t\tsetCurrencies(response?.data?.data);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tif (error.response) {\n\t\t\t\t\ttoast.error(error.response?.data?.message, {\n\t\t\t\t\t\ttheme: \"dark\",\n\t\t\t\t\t\tautoClose: 1500\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttoast.error(error.message, { theme: \"dark\", autoClose: 1500 });\n\t\t\t\t}\n\t\t\t});\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\t//* Set Table Dark Theme /\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\t/* Set Table Column */\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Player\",\n\t\t\tselector: (row) => row.remoteId || `${row.fname} ${row.lname}`,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Username\",\n\t\t\tselector: (row) => row.username,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Registered\",\n\t\t\tselector: (row) => moment(row.createdAt).format(\"YYYY-MM-DD\"),\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Bet history\",\n\t\t\tselector: (row) => row.transactionsCount,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"GGR\",\n\t\t\tselector: (row) => `${(row?.returnValue).toFixed(2)} ${currentCurrency}`,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Game GGR\",\n\t\t\tselector: (row) => `${(row?.gameGGR).toFixed(2)} ${currentCurrency}`,\n\t\t\tsortable: true\n\t\t}\n\t];\n\n\tconst handleSort = (column, sortDirection) => {\n\t\tconst order = sortDirection === \"asc\" ? \"desc\" : \"asc\";\n\t\tlet field = \"\";\n\t\tconsole.log(column, \"column\");\n\n\t\tconst keyFields = {\n\t\t\tPlayer: \"remote_id\",\n\t\t\tRegistered: \"created_at\",\n\t\t\tBethistory: \"transactionsCount\",\n\t\t\tGGR: \"returnValue\",\n\t\t\tGameGGR: \"gameGGR\"\n\t\t};\n\n\t\tconst columnKey = column.name.replace(\" \", \"\");\n\t\tif (columnKey in keyFields) {\n\t\t\tfield = keyFields[columnKey];\n\n\t\t\tconst updatedSortOrder = {\n\t\t\t\tfield: field,\n\t\t\t\torder: order\n\t\t\t};\n\t\t\tsetSortingData(updatedSortOrder);\n\t\t\tfetchUsers(1, updatedSortOrder);\n\t\t}\n\t};\n\n\tconst onSubmitCartData = (e) => {\n\t\te.preventDefault();\n\t\tsetErrorMessage(\"\");\n\n\t\tsetRefreshToggle((prev) => !prev);\n\t};\n\n\tuseEffect(() => {\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tsetRefreshToggle((prev) => !prev);\n\t\t}, 500);\n\t\treturn () => clearTimeout(timeoutId);\n\t}, [search]);\n\n\t/* Data Fetch Function */\n\tconst fetchUsers = async (page, newSortOrder) => {\n\t\tsetLoading(true);\n\n\t\tconst currentCasino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tawait axios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/reports/player/limited?token=${currentCasino?.casino_token}&casino=${currentCasino?.casino_key}&page=${page}&limit=${limit}&sortBy=${newSortOrder?.field}&orderBy=${\n\t\t\t\t\tnewSortOrder?.order\n\t\t\t\t}&start=${moment(start).format(\"YYYY-MM-DD\")}T00:00:00Z&end=${moment(end).format(\"YYYY-MM-DD\")}T23:59:59Z¤cy=${selectedCurrency}&searchRemoteId=${search}`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetCurrentCurrency(response?.data?.response?.currency);\n\t\t\t\t\tsetData(response.data?.response?.players);\n\t\t\t\t\tsetTotalRows(response.data?.response?.totalCount?.total);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (error.response) {\n\t\t\t\t\tsetErrorMessage(error.response?.data?.message);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tconst handlePerRowsChange = async (limit, page) => {\n\t\tsetLoading(true);\n\t\tsetlimit(limit);\n\t\tconst currentCasino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst startDate = moment(start).format(\"YYYY-MM-DD\");\n\t\tconst endDate = moment(end).format(\"YYYY-MM-DD\");\n\n\t\tawait axios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/reports/player/limited?token=${currentCasino?.casino_token}&casino=${currentCasino?.casino_key}&page=${page}&limit=${limit}&sortBy=${sortingData?.field}&orderBy=${sortingData?.order}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetData(response.data?.response?.players);\n\t\t\t\t\tsetTotalRows(response.data?.response?.totalCount?.total);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (error.response.data.error.status === 403) {\n\t\t\t\t\tsetErrorMessage(error.response.data.error.message);\n\t\t\t\t} else if (error?.message === \"Request failed with status code 403\") {\n\t\t\t\t\tsetErrorMessage(\"Unauthorized Toekn\");\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tconst handlePageChange = (page) => {\n\t\tfetchUsers(page, sortingData);\n\t};\n\n\tuseEffect(() => {\n\t\tfetchUsers(1, sortingData); // fetch page 1 of users\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [refreshToggle]);\n\n\tconst selectCurrency = (currency) => {\n\t\tsetSelectedCurrency(currency);\n\t\tsetDropdown(false);\n\t};\n\n\tuseEffect(() => {\n\t\tsetWidth(window.innerWidth);\n\t\tconst handleResize = () => {\n\t\t\tsetWidth(window.innerWidth);\n\t\t};\n\n\t\twindow.addEventListener(\"resize\", handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\n\t\t};\n\t}, []);\n\n\tconst FavoriteGame = ({ data }) => {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    Favorite Game
    \n\t\t\t\t
      \n\t\t\t\t\t{Object.keys(data?.favoriteGames)\n\t\t\t\t\t\t?.slice(0, 5)\n\t\t\t\t\t\t?.map((i, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t#{index + 1} {i}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{/* \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}>\n {selectedCurrency ? selectedCurrency : \"\"}\n \n \n \n \n\n
      \n {currencies?.map((currency) => (\n {\n selectCurrency(currency.currency_abrv);\n }}>\n {currency?.currency_abrv}\n \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tSubmit\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
    Players History
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\t\t\t\tplaceholder=\"Search by player remote ID\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{errorMessage ? (\n\t\t\t\t\t\t\t

    {errorMessage}

    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{data.length > 0 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{loading ? : \"\"}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CasinoTable;\n","import PlayerChart from \"./PlayerChart\";\nimport PlayerTable from \"./PlayerTable\";\n\nconst PlayerReports = () => {\n return (\n <>\n \n \n \n );\n};\n\nexport default PlayerReports;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { IoCloudDownloadOutline } from \"react-icons/io5\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../../components/Loader\";\n\nconst CasinoSetting = () => {\n\tconst [data, setData] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [totalRows, setTotalRows] = useState(0);\n\tconst [page, setPage] = useState(1);\n\tconst currentCasino = JSON.parse(localStorage.getItem(\"currentCasino\"));\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [limit, setLimit] = useState(10);\n\n\t/** Set dark theme in table */\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\t/*** Set Column in table */\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Game Name\",\n\t\t\tselector: (row) => row.name,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Game Provider\",\n\t\t\tselector: (row) => row.gameType,\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"RTP\",\n\t\t\tselector: (row) => {\n\t\t\t\treturn row.rtp ? row.rtp + \" % \" : \"\";\n\t\t\t},\n\t\t\tsortable: false\n\t\t},\n\t\t{\n\t\t\tname: \"Bonuses\",\n\t\t\tselector: (row) => {\n\t\t\t\treturn row.gameType ? 0 : \"\";\n\t\t\t},\n\t\t\tsortable: true\n\t\t},\n\t\t{\n\t\t\tname: \"Status\",\n\t\t\tselector: (row) => {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{row.gameType ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tchangeStatus(row.id, row.disabledByCasino ? false : true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t// defaultChecked={!row.disabledByCasino}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t},\n\t\t\tsortable: false,\n\t\t\twidth: 50\n\t\t},\n\t\t{\n\t\t\tname: \"Downloads\",\n\t\t\tselector: (row) => {\n\t\t\t\treturn row.gameType ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\t\t\t},\n\t\t\tsortable: false\n\t\t}\n\t];\n\n\t/** Fetch Casino Details */\n\tconst getAvailablegame = async (page) => {\n\t\tsetLoading(true);\n\t\tsetPage(page);\n\t\tawait axios\n\t\t\t.get(`${process.env.REACT_APP_GAME_SECURE}/games/admin?action=available_games&token=${currentCasino?.casino_token}&casino=${currentCasino?.casino_key}&limit=${limit}&page=${page}`)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tconsole.log(response.data.response?.games, \"testing\");\n\t\t\t\t\tsetData(response.data.response?.games);\n\t\t\t\t\tsetTotalRows(response.data.response?.totalGames);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tif (error.response.data.error.status === 403) {\n\t\t\t\t\tsetErrorMessage(error.response.data.error.message);\n\t\t\t\t} else if (error?.message === \"Request failed with status code 403\") {\n\t\t\t\t\tsetErrorMessage(\"Unauthorized Toekn\");\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\t/** enable & disable game */\n\tconst changeStatus = async (gameId, gameStatus) => {\n\t\tsetLoading(true);\n\t\tawait axios\n\t\t\t.get(`${process.env.REACT_APP_GAME_SECURE}/games/admin?action=${!gameStatus ? \"enable_game\" : \"disable_game\"}&token=${currentCasino?.casino_token}&game_id=${gameId}&casino=${currentCasino?.casino_key}`)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tgetAvailablegame(page);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tif (error.response.data.error.status === 403) {\n\t\t\t\t\tsetErrorMessage(error.response.data.error.message);\n\t\t\t\t} else if (error?.message === \"Request failed with status code 403\") {\n\t\t\t\t\tsetErrorMessage(\"Unauthorized Token\");\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\t/** Change Page event */\n\tconst handlePageChange = (page) => {\n\t\tgetAvailablegame(page);\n\t};\n\n\t/** Custom Pagination HTML */\n\t// const BootyPagination = ({ onChangePage, currentPage }) => {\n\t// const handleBackButtonClick = () => {\n\t// onChangePage(currentPage - 1);\n\t// };\n\n\t// const handleNextButtonClick = () => {\n\t// onChangePage(currentPage + 1);\n\t// };\n\n\t// const handlePageNumber = (e) => {\n\t// onChangePage(Number(e.target.value));\n\t// };\n\n\t// const nextDisabled = currentPage === totalPages;\n\t// const previosDisabled = currentPage === 1;\n\n\t// return (\n\t//
    \n\t// \n\t//
    \n\t// );\n\t// };\n\n\t/** Call Default function */\n\tuseEffect(() => {\n\t\tgetAvailablegame(1);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tconst handlePerRowsChange = async (newPerPage, page) => {\n\t\tsetLimit(newPerPage);\n\t\tsetLoading(true);\n\t\tsetPage(page);\n\t\tawait axios\n\t\t\t.get(`${process.env.REACT_APP_GAME_SECURE}/games/admin?action=available_games&token=${currentCasino?.casino_token}&casino=${currentCasino?.casino_key}&limit=${newPerPage}&page=${page}`)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetData(response.data.response?.games);\n\t\t\t\t\tsetTotalRows(response.data.response?.totalGames);\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(response?.data?.response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (error) {\n\t\t\t\tif (error.response.data.error.status === 403) {\n\t\t\t\t\tsetErrorMessage(error.response.data.error.message);\n\t\t\t\t} else if (error?.message === \"Request failed with status code 403\") {\n\t\t\t\t\tsetErrorMessage(\"Unauthorized Token\");\n\t\t\t\t} else {\n\t\t\t\t\tsetErrorMessage(error?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{errorMessage ? (\n\t\t\t\t\t

    {errorMessage}

    \n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{data.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{loading ? : \"\"}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default CasinoSetting;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport DropDown from \"../../Common/DropDown\";\n// import hoursToMilliseconds from \"date-fns/fp/hoursToMilliseconds/index\";\nconst ExcelJS = require(\"exceljs\");\n\nconst defaultGame = { id: 0, game: \"All\" };\n\nconst GamesBetsPerHourChart = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n const [currency, setCurrency] = useState(\"All\");\n const [chartdata, setChartdata] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [chartHeight, setChartHeight] = useState(\"500px\");\n const [allGames, setAllGames] = useState([]);\n const [selectedGame, setSelectedGame] = useState(defaultGame);\n const [betsRange, setBetsRange] = useState({ min: 0, max: 0, currency: \"USD\" });\n const [dataToExport, setDataToExport] = useState([]);\n const [exportLoading, setExportLoading] = useState(false);\n const [gameDropDown, setGameDropdown] = useState(false);\n\n useEffect(() => {\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n axios\n .get(`${process.env.REACT_APP_API_DOMAIN}/games/list?token=${casino?.casino_token}`)\n .then((response) => {\n setAllGames([defaultGame, ...response.data?.data]);\n });\n }, []);\n\n const getData = () => {\n setErrorMessage(\"\");\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n // const taxRate = casino?.tax_rate.replace(/%/g, \"\");\n const game = !selectedGame ? \"\" : selectedGame?.id === 0 ? \"\" : selectedGame?.id;\n\n setLoading(true);\n\n axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/games/reports/game-bets-metrics?token=${casino?.casino_token\n }¤cy=${currency === \"All\" ? \"\" : currency\n }&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&game=${game}&action=game`\n )\n .then((response) => {\n if (response.data.status === 200) {\n // const chartList = response.data?.data?.byHours;\n\n let chartList = response.data?.data?.byHours;\n if (chartList.length) {\n chartList[0].data[0].currency = response.data.data.currency;\n }\n\n const dataInExcelFormat = chartList.map((day, dIndex) => {\n return day.data.map((hour, hIndex) => {\n const nextHours = +hour?.x.slice(0, 2) + 2;\n\n return {\n day: hIndex === 0 ? day?.name : \"\",\n hours: `${hour.x} to ${nextHours?.toString().padStart(2, \"0\") + \":00\"}`,\n betsPerHour: `${hour?.y.toFixed(2)}`,\n numberOfBetsPerHour: hour?.numberOfBetsPerHour,\n numberOfBetsPerDay: hIndex === 0 ? day?.numberOfBetsPerDay : \"\",\n };\n });\n });\n\n if (dataInExcelFormat?.length === 0) {\n setErrorMessage(\"There are no records to display\");\n }\n\n setBetsRange({\n min: response.data?.data?.min,\n max: response.data?.data?.max,\n currency: currency,\n });\n setChartHeight(response.data?.data?.byHours?.length * 30 + 50);\n\n setChartdata(chartList);\n setDataToExport(dataInExcelFormat.flat(1));\n } else {\n setDataToExport([]);\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n setDataToExport([]);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedGame, currency, refreshToggle]);\n\n const exportExcelHandler = async () => {\n setExportLoading(true);\n const workbook = new ExcelJS.Workbook();\n const sheet = workbook.addWorksheet(\"Report\");\n\n sheet.getRow(3).values = [\"Date\", \"No. of Bets (Day)\", \"Hours\", \"Bets (Hour)\", \"No. of Bets (Hour)\"];\n\n sheet.columns = [\n {\n header: \"Day\",\n key: \"day\",\n width: 15,\n },\n {\n header: \"No. of Bets (Day)\",\n key: \"numberOfBetsPerDay\",\n width: 16,\n },\n {\n header: \"Hours\",\n key: \"hours\",\n width: 15,\n },\n {\n header: \"Bets (Hour)\",\n key: \"betsPerHour\",\n width: 12,\n },\n {\n header: \"No. of Bets (Hour)\",\n key: \"numberOfBetsPerHour\",\n width: 18,\n },\n ];\n\n const firstRow = sheet.getRow(3);\n firstRow.eachCell((cell) => {\n sheet.getCell(cell.address).fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: \"00AAAA\" },\n };\n });\n\n sheet.getRow(3).font = {\n bold: true,\n };\n\n sheet.getRow(1).font = {\n bold: true,\n };\n\n sheet.mergeCells(\"A1\", \"E1\");\n sheet.getCell(\n \"A1\"\n ).value = `${selectedGame} Game Bets Transactions in Hours with Number of Bets and Bets Amount`;\n sheet.getRow(1).alignment = { vertical: \"middle\", horizontal: \"center\" };\n\n dataToExport.forEach((data) => {\n sheet.addRow({\n day: data.day,\n numberOfBetsPerDay: data.numberOfBetsPerDay,\n hours: data.hours,\n betsPerHour: data.betsPerHour,\n numberOfBetsPerHour: data.numberOfBetsPerHour,\n });\n });\n\n await workbook.xlsx.writeBuffer().then((data) => {\n const blob = new Blob([data], {\n type: \"application/vnd.openxmlformats-officedocument.spreadsheet.sheet\",\n });\n\n const url = window.URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = \"download.xlsx\";\n anchor.click();\n window.URL.revokeObjectURL(url);\n });\n\n setExportLoading(false);\n };\n\n const playerChartoption = {\n series: chartdata,\n options: {\n chart: {\n foreColor: \"#ccc\",\n toolbar: {\n show: false,\n },\n },\n stroke: {\n width: 1,\n colors: [\"rgba(149, 149, 149, 0.5)\"],\n },\n dataLabels: {\n enabled: false,\n },\n yaxis: [\n {\n opposite: false,\n min: (min) => {\n return betsRange.min;\n },\n max: (max) => {\n return betsRange.max;\n },\n },\n ],\n tooltip: {\n theme: \"dark\",\n custom: function ({ series, seriesIndex, dataPointIndex, w }) {\n const data = w.globals.initialSeries[seriesIndex].data[dataPointIndex];\n const firstData = w.globals.initialSeries[0].data[0];\n const nextHours = +data.x.slice(0, 2) + 2;\n\n if (chartdata.length !== 0) {\n return `
    \n\t\t\t\t\t\t\t

    Date: ${chartdata[seriesIndex].name}

    \n\t\t\t\t\t\t\t

    Time: ${data.x}-${nextHours.toString().padStart(2, \"0\") + \":00\"}

    \n\t\t\t\t\t\t\t

    Number of Bets: ${data.numberOfBetsPerHour}

    \n\t\t\t\t\t\t\t

    Total Bets: ${data.y?.toFixed(2)} ${firstData?.currency}

    \n\t\t\t\t\t\t
    `;\n }\n return;\n },\n },\n grid: {\n borderColor: \"#535A6C\",\n xaxis: {\n lines: {\n show: true,\n },\n },\n row: {\n colors: [\"#8651d6\"],\n opacity: 0.2,\n },\n column: {\n colors: [\"#8651d6\"],\n opacity: 0.1,\n },\n },\n theme: {\n mode: \"dark\",\n palette: \"palette10\",\n monochrome: {\n enabled: true,\n color: \"#8651d6\",\n shadeTo: \"dark\",\n shadeIntensity: 0.01,\n },\n },\n },\n };\n\n return (\n <>\n
    \n \n \n
    Game Bets (in Hours)
    \n \n \n
    \n \n Export to Excel\n \n
    \n \n \n
    \n \n\n {\n setCurrency(data?.currency_abrv);\n }}\n />\n
    \n {/* */}\n \n \n <>\n
    \n \n {\n setSelectedGame(data);\n }}\n />\n {/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {selectedGame?.game}\n \n \n \n \n\n
      \n {allGames?.map((currency) => (\n {\n setSelectedGame(currency);\n }}>\n {currency?.game}\n \n ))}\n
    \n
    */}\n
    \n \n \n \n \n\n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n {loading ? : \"\"}\n \n );\n};\n\nexport default GamesBetsPerHourChart;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport DropDown from \"../../Common/DropDown\";\nconst ExcelJS = require(\"exceljs\");\n\nconst defaultGameType = \"All\";\n\nconst GameTypeBetsPerHourChart = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n const [chartdata, setChartdata] = useState([]);\n\n\n\n\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [chartHeight, setChartHeight] = useState(\"500px\");\n const [allGameTypes, setAllGameTypes] = useState([]);\n const [selectedGameType, setSelectedGameType] = useState(defaultGameType);\n const [currency, setCurrency] = useState(\"All\");\n const [betsRange, setBetsRange] = useState({ min: 0, max: 0, currency: \"USD\" });\n const [dataToExport, setDataToExport] = useState([]);\n const [exportLoading, setExportLoading] = useState(false);\n const [gameDropDown, setGameDropdown] = useState(false);\n\n useEffect(() => {\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n axios\n .get(`${process.env.REACT_APP_API_DOMAIN}/games/gametypes/list?token=${casino?.casino_token}`)\n .then((response) => {\n setAllGameTypes([defaultGameType, ...response.data?.data]);\n });\n }, []);\n\n const getData = async () => {\n setErrorMessage(\"\");\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n // const taxRate = casino?.tax_rate.replace(/%/g, \"\");\n const gameType = !selectedGameType || selectedGameType === \"All\" ? \"\" : selectedGameType;\n\n setDataToExport([]);\n setLoading(true);\n\n await axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/games/reports/game-bets-metrics?token=${casino?.casino_token\n }¤cy=${currency === \"All\" ? \"\" : currency\n }&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&gameType=${gameType}&action=gameType`\n )\n .then((response) => {\n if (response.data.status === 200) {\n // let dayBetsRange = [];\n let chartList = response.data?.data?.byHours;\n if (chartList.length) {\n chartList[0].currency = response.data.data.currency;\n chartList[0].data[0].currency = response.data.data.currency;\n }\n\n const dataInExcelFormat = chartList.map((day, dIndex) => {\n return day.data.map((hour, hIndex) => {\n const nextHours = +hour?.x.slice(0, 2) + 2;\n\n return {\n day: hIndex === 0 ? day?.name : \"\",\n hours: `${hour.x} to ${nextHours?.toString().padStart(2, \"0\") + \":00\"}`,\n betsPerHour: `${hour?.y.toFixed(2)}`,\n numberOfBetsPerHour: hour?.numberOfBetsPerHour,\n numberOfBetsPerDay: hIndex === 0 ? day?.numberOfBetsPerDay : \"\",\n };\n });\n });\n\n if (dataInExcelFormat?.length === 0) {\n setErrorMessage(\"There are no records to display\");\n }\n\n setBetsRange({\n min: response.data?.data?.min,\n max: response.data?.data?.max,\n currency: currency === \"All\" ? \"\" : currency,\n });\n setChartHeight(response.data?.data?.byHours?.length * 30 + 50);\n\n setChartdata(chartList);\n setDataToExport(dataInExcelFormat.flat(1));\n } else {\n setDataToExport([]);\n setChartdata([]);\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n setChartdata([]);\n setDataToExport([]);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedGameType, currency, refreshToggle]);\n\n const exportExcelHandler = async () => {\n setExportLoading(true);\n const workbook = new ExcelJS.Workbook();\n const sheet = workbook.addWorksheet(\"Report\");\n\n sheet.getRow(3).values = [\"Date\", \"No. of Bets (Day)\", \"Hours\", \"Bets (Hour)\", \"No. of Bets (Hour)\"];\n\n sheet.columns = [\n {\n header: \"Day\",\n key: \"day\",\n width: 15,\n },\n {\n header: \"No. of Bets (Day)\",\n key: \"numberOfBetsPerDay\",\n width: 16,\n },\n {\n header: \"Hours\",\n key: \"hours\",\n width: 15,\n },\n {\n header: \"Bets (Hour)\",\n key: \"betsPerHour\",\n width: 12,\n },\n {\n header: \"No. of Bets (Hour)\",\n key: \"numberOfBetsPerHour\",\n width: 18,\n },\n ];\n\n const firstRow = sheet.getRow(3);\n firstRow.eachCell((cell) => {\n sheet.getCell(cell.address).fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: \"00AAAA\" },\n };\n });\n\n sheet.getRow(3).font = {\n bold: true,\n };\n\n sheet.getRow(1).font = {\n bold: true,\n };\n\n sheet.mergeCells(\"A1\", \"E1\");\n sheet.getCell(\n \"A1\"\n ).value = `${selectedGameType} Game Type Bets Transactions in Hours with Number of Bets and Bets Amount`;\n sheet.getRow(1).alignment = { vertical: \"middle\", horizontal: \"center\" };\n\n dataToExport.forEach((data) => {\n sheet.addRow({\n day: data.day,\n numberOfBetsPerDay: data.numberOfBetsPerDay,\n hours: data.hours,\n betsPerHour: data.betsPerHour,\n numberOfBetsPerHour: data.numberOfBetsPerHour,\n });\n });\n\n await workbook.xlsx.writeBuffer().then((data) => {\n const blob = new Blob([data], {\n type: \"application/vnd.openxmlformats-officedocument.spreadsheet.sheet\",\n });\n\n const url = window.URL.createObjectURL(blob);\n const anchor = document.createElement(\"a\");\n anchor.href = url;\n anchor.download = \"download.xlsx\";\n anchor.click();\n window.URL.revokeObjectURL(url);\n });\n\n setExportLoading(false);\n };\n\n const playerChartoption = {\n series: chartdata,\n options: {\n chart: {\n foreColor: \"#ccc\",\n toolbar: {\n show: false,\n },\n },\n stroke: {\n width: 1,\n colors: [\"rgba(149, 149, 149, 0.5)\"],\n },\n dataLabels: {\n enabled: false,\n },\n yaxis: [\n {\n opposite: false,\n min: (min) => {\n return betsRange.min;\n },\n max: (max) => {\n return betsRange.max;\n },\n },\n ],\n tooltip: {\n theme: \"dark\",\n custom: function ({ series, seriesIndex, dataPointIndex, w }) {\n const data = w.globals.initialSeries[seriesIndex].data[dataPointIndex];\n const dayData = w.globals.initialSeries[seriesIndex];\n const firstData = w.globals.initialSeries[0].data[0];\n const nextHours = +data.x.slice(0, 2) + 2;\n\n return `
    \n

    Date: ${dayData.name}

    \n\t\t\t\t\t\t

    Time: ${data.x}-${nextHours.toString().padStart(2, \"0\") + \":00\"}

    \n\t\t\t\t\t\t

    Number of Bets: ${data.numberOfBetsPerHour}

    \n\t\t\t\t\t\t

    Total Bets: ${data.y?.toFixed(2)} ${firstData?.currency}

    \n\t\t\t\t\t
    `;\n },\n },\n grid: {\n borderColor: \"#535A6C\",\n xaxis: {\n lines: {\n show: true,\n },\n },\n row: {\n colors: [\"#8651d6\"],\n opacity: 0.2,\n },\n column: {\n colors: [\"#8651d6\"],\n opacity: 0.1,\n },\n },\n theme: {\n mode: \"dark\",\n palette: \"palette10\",\n monochrome: {\n enabled: true,\n color: \"#8651d6\",\n shadeTo: \"dark\",\n shadeIntensity: 0.01,\n },\n },\n },\n };\n\n return (\n <>\n
    \n \n \n
    Game Type Bets (in Hours)
    \n \n \n
    \n \n Export to Excel\n \n
    \n \n \n {/* */}\n \n\n {\n setCurrency(data?.currency_abrv);\n }}\n />\n \n \n
    \n \n {\n setSelectedGameType(data);\n }}\n />\n {/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {selectedGameType}\n \n \n \n \n\n
      \n {allGameTypes?.map((gameType) => (\n {\n setSelectedGameType(gameType);\n }}>\n {gameType}\n \n ))}\n
    \n
    */}\n
    \n \n \n \n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n {loading ? : \"\"}\n \n );\n};\n\nexport default GameTypeBetsPerHourChart;\n","import { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport axios from \"axios\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport DropDown from \"../../Common/DropDown\";\n\nconst defaultGame = { id: 0, game: \"All\" };\nconst defaultBrand = { brand: \"All\" };\nconst filterByList = [\"Days\", \"Weeks\", \"Months\"];\n\nconst GamesBetsTransactionsChart = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n\tconst [chartData, setChartData] = useState([]);\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [allGames, setAllGames] = useState([]);\n\tconst [selectedGame, setSelectedGame] = useState(defaultGame);\n\tconst [filterBy, setFilterBy] = useState(filterByList[0]);\n\tconst [currency, setCurrency] = useState(\"All\");\n\tconst [numberOfBets, setNumberOfBets] = useState(-1);\n\tconst [filterDropDown, setFilterDropdown] = useState(false);\n\tconst [gameDropDown, setGameDropdown] = useState(false);\n\tconst [brandOptions, setBrandOptions] = useState([]);\n\tconst [selectedBrand, setSelectedBrand] = useState(defaultBrand);\n\n\tuseEffect(() => {\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\t\tsetBrandOptions([defaultBrand, ...allCasinos?.casino_brands]);\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\taxios.get(`${process.env.REACT_APP_API_DOMAIN}/games/list?token=${casino?.casino_token}`).then((response) => {\n\t\t\tsetAllGames([defaultGame, ...response.data?.data]);\n\t\t});\n\t}, []);\n\n\tconst getData = () => {\n\t\tsetErrorMessage(\"\");\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst game = !selectedGame ? \"\" : selectedGame?.id === 0 ? \"\" : selectedGame?.id;\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\t\tconst brands = Object.groupBy(allCasinos?.casino_information, (casino) => casino.brand);\n\t\tsetLoading(true);\n\t\tconst url = `${process.env.REACT_APP_API_DOMAIN}/games/reports/game-bets-transactions?token=${casino?.casino_token}&casino=${casino?.casino_key}¤cy=${\n\t\t\tcurrency === \"All\" ? \"\" : currency\n\t\t}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&game=${game}&action=game&filterBy=${filterBy}`;\n\n\t\tconst requestConfig = {\n\t\t\tmethod: selectedBrand?.brand?.toLowerCase() === \"all\" ? \"get\" : \"post\",\n\t\t\turl,\n\t\t\t...(selectedBrand?.brand?.toLowerCase() !== \"all\" && { data: { brands: { [selectedBrand?.brand]: brands?.[selectedBrand?.brand] } } })\n\t\t};\n\n\t\taxios(requestConfig)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tlet reportByDays = response.data?.data.reportByDays;\n\t\t\t\t\tif (reportByDays?.length === 0) {\n\t\t\t\t\t\tsetErrorMessage(\"There are no records to display\");\n\t\t\t\t\t}\n\t\t\t\t\tif (reportByDays.length) {\n\t\t\t\t\t\treportByDays[0].currency = response.data.data.currency;\n\t\t\t\t\t}\n\t\t\t\t\tsetChartData(reportByDays);\n\t\t\t\t\tsetNumberOfBets(response?.data?.data?.numberOfBets);\n\t\t\t\t} else {\n\t\t\t\t\tsetChartData([]);\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t\tsetNumberOfBets(-1);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetChartData([]);\n\t\t\t\tsetNumberOfBets(-1);\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tgetData();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [selectedGame, filterBy, currency, refreshToggle, selectedBrand]);\n\n\tconst playerChartoption = {\n\t\toptions: {\n\t\t\tchart: {\n\t\t\t\ttype: \"bar\",\n\t\t\t\theight: 350,\n\t\t\t\ttoolbar: {\n\t\t\t\t\tshow: false\n\t\t\t\t}\n\t\t\t},\n\t\t\tplotOptions: {\n\t\t\t\tbar: {\n\t\t\t\t\tcolors: {\n\t\t\t\t\t\tranges: [\n\t\t\t\t\t\t\t{ from: -100, to: -46, color: \"#F15B46\" },\n\t\t\t\t\t\t\t{ from: -45, to: 0, color: \"#FEB019\" }\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tcolumnWidth: \"80%\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tdataLabels: {\n\t\t\t\tenabled: false\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\twidth: [1, 1, 4]\n\t\t\t},\n\t\t\tyaxis: {\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0\n\t\t\t\t},\n\t\t\t\taxisTicks: {\n\t\t\t\t\tshow: true\n\t\t\t\t},\n\t\t\t\taxisBorder: {\n\t\t\t\t\t// offsetX: -12,\n\t\t\t\t\tshow: true,\n\t\t\t\t\tcolor: \"#008FFB\"\n\t\t\t\t},\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: \"Bets Amount\",\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tformatter: function (y) {\n\t\t\t\t\t\treturn y;\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolors: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttooltip: {\n\t\t\t\t\tenabled: false\n\t\t\t\t}\n\t\t\t},\n\t\t\txaxis: {\n\t\t\t\t// type: 'datetime',\n\t\t\t\tlabels: {\n\t\t\t\t\trotate: -90,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolors: \"#008FFB\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttooltip: {\n\t\t\t\ttheme: \"dark\",\n\t\t\t\tcustom: function ({ series, seriesIndex, dataPointIndex, w }) {\n\t\t\t\t\tconst data = w.globals.initialSeries[seriesIndex].data[dataPointIndex];\n\t\t\t\t\tconst firstData = w.globals.initialSeries[seriesIndex].data[0];\n\n\t\t\t\t\treturn `
    \n\t\t\t\t\t\t

    ${data.x}

    \n\t\t\t\t\t\t

    Number of Debits: ${data.y}

    \n\t\t\t\t\t\t

    Debits: ${data.debit?.toFixed(2)} ${firstData?.currency}

    \n\t\t\t\t\t\t

    Credits: ${data.credit?.toFixed(2)} ${firstData?.currency}

    \n\t\t\t\t\t\t

    Total Bets: ${data.allAmount?.toFixed(2)} ${firstData?.currency}

    \n\t\t\t\t\t
    `;\n\t\t\t\t}\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\thorizontalAlign: \"left\",\n\t\t\t\toffsetX: 20,\n\t\t\t\tlabels: {\n\t\t\t\t\tcolors: \"#fff\"\n\t\t\t\t},\n\t\t\t\tmarkers: {\n\t\t\t\t\toffsetX: -3,\n\t\t\t\t\toffsetY: 2\n\t\t\t\t},\n\t\t\t\titemMargin: {\n\t\t\t\t\thorizontal: 10\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrid: {\n\t\t\t\tpadding: {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0\n\t\t\t\t},\n\n\t\t\t\tyaxis: {\n\t\t\t\t\tlines: {\n\t\t\t\t\t\tshow: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tseries: [\n\t\t\t{\n\t\t\t\tname: \"Bets Amount\",\n\t\t\t\tdata: chartData\n\t\t\t}\n\t\t]\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    Transactions
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSelectedBrand(data);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{/* \n width <= 991 && setFilterDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setFilterDropdown(true)}\n onMouseLeave={() => width >= 991 && setFilterDropdown(false)}>\n {filterBy}\n \n \n \n \n\n
      \n {filterByList?.map((filter) => (\n
    • setFilterBy(filter)}>\n {filter}\n
    • \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetFilterBy(data);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{/* \n width <= 991 && setFilterDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setFilterDropdown(true)}\n onMouseLeave={() => width >= 991 && setFilterDropdown(false)}>\n {filterBy}\n \n \n \n \n\n
      \n {filterByList?.map((filter) => (\n
    • setFilterBy(filter)}>\n {filter}\n
    • \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSelectedGame(data);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {selectedGame?.game}\n \n \n \n \n\n
      \n {allGames?.map((currency) => (\n {\n setSelectedGame(currency);\n }}>\n {currency?.game}\n \n ))}\n
    \n
    */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default GamesBetsTransactionsChart;\n","import React, { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport axios from \"axios\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport DropDown from \"../../Common/DropDown\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport MultiSelectDropDown from \"../../Common/MultiSelectDropDown\";\n\nconst AllCasinoGGR = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst [chartDate, setChartDate] = useState([]);\n\tconst [xAxisList, setXAxisList] = useState([]);\n\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [currency, setCurrency] = useState(\"All\");\n\tconst [selectCasino, setSelectCasino] = useState([]);\n\tconst [series, setSeries] = useState([]);\n\n\tconst getData = () => {\n\t\tsetErrorMessage(\"\");\n\t\tsetLoading(true);\n\t\taxios\n\t\t\t.get(`${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/chart-admin?currency=${currency === \"All\" ? \"\" : currency}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z`)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetChartDate(response.data?.response?.daysOrMonths);\n\n\t\t\t\t\tlet chartData = response.data?.response?.chartData;\n\t\t\t\t\tif (chartData.length === 0) {\n\t\t\t\t\t\tsetErrorMessage(\"There are no records to display\");\n\t\t\t\t\t}\n\t\t\t\t\tif (chartData.length) {\n\t\t\t\t\t\tchartData[0].currency = response.data?.response?.currency;\n\t\t\t\t\t}\n\t\t\t\t\tif (currency === \"All\") {\n\t\t\t\t\t\tchartData = chartData.map((row, index) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\t\toriginalData: row.data,\n\t\t\t\t\t\t\t\tdata: row.usdData\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tsetXAxisList(chartData);\n\t\t\t\t} else {\n\t\t\t\t\tsetChartDate([]);\n\t\t\t\t\tsetXAxisList([]);\n\n\t\t\t\t\tsetErrorMessage(response?.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetChartDate([]);\n\t\t\t\tsetXAxisList([]);\n\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tgetData();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [refreshToggle, currency]);\n\n\tconst dashboardChartOptions = {\n\t\tchart: {\n\t\t\theight: 350,\n\t\t\ttype: \"line\",\n\t\t\tzoom: {\n\t\t\t\tenabled: false\n\t\t\t},\n\t\t\ttoolbar: {\n\t\t\t\tshow: false\n\t\t\t}\n\t\t},\n\t\tdataLabels: {\n\t\t\tenabled: false\n\t\t},\n\t\tstroke: {\n\t\t\twidth: 3,\n\t\t\tcurve: \"smooth\"\n\t\t},\n\t\ttitle: {\n\t\t\talign: \"center\",\n\t\t\tstyle: {\n\t\t\t\tcolor: \"#FEB019\"\n\t\t\t}\n\t\t},\n\t\txaxis: {\n\t\t\tcategories: chartDate ? chartDate : [],\n\t\t\tlabels: {\n\t\t\t\tstyle: {\n\t\t\t\t\tcolors: \"#ccc\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tyaxis: [\n\t\t\t{\n\t\t\t\tlabels: {\n\t\t\t\t\tformatter: (value) => {\n\t\t\t\t\t\tconst currencyLabel = currency === \"All\" ? \"Converted to USD\" : xAxisList[0]?.currency;\n\t\t\t\t\t\treturn `${parseFloat(value).toFixed(2)} ${!currencyLabel ? \"\" : currencyLabel}`;\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolors: \"#ccc\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\ttooltip: {\n\t\t\ttheme: \"dark\",\n\t\t\tfollowCursor: true\n\t\t},\n\t\tlegend: {\n\t\t\tposition: \"top\",\n\t\t\tlabels: {\n\t\t\t\tcolors: \"#fff\"\n\t\t\t},\n\t\t\tmarkers: {\n\t\t\t\toffsetX: -4,\n\t\t\t\toffsetY: -1\n\t\t\t},\n\t\t\titemMargin: {\n\t\t\t\thorizontal: 10\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectCasino(xAxisList);\n\t}, [xAxisList]);\n\n\t// Multiselect All option\n\tuseEffect(() => {\n\t\tif (selectCasino.length > 0) {\n\t\t\tsetSeries(selectCasino);\n\t\t\tsetErrorMessage(\"\");\n\t\t} else {\n\t\t\tsetErrorMessage(\"There are no records to display\");\n\t\t}\n\t}, [selectCasino]);\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    All Casinos GGR
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t\t\t\tsetSelectCasino(data);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default AllCasinoGGR;\n","import React, { useEffect, useState } from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport CurrenciesDropdown from \"../Common/CurrenciesDropdown\";\nimport axios from \"axios\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../Loader\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport DropDown from \"../Common/DropDown\";\nimport InputField from \"../Common/InputField\";\n\nconst AllCasinoGGRTable = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n\tconst [currency, setCurrency] = useState(\"All\");\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [data, setData] = useState([]);\n\tconst [search, setSearch] = useState(\"\");\n\tconst [sort, setSort] = useState({ field: \"\", direction: \"\" });\n\n\tconst getData = (sortOrder) => {\n\t\tsetErrorMessage(\"\");\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\n\t\tsetLoading(true);\n\n\t\taxios\n\t\t\t.get(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/chart-admin?currency=${currency === \"All\" ? \"\" : currency}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&sortBy=${sort.field}&orderBy=${\n\t\t\t\t\tsort.direction\n\t\t\t\t}`\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetData(response.data?.response?.data);\n\t\t\t\t} else {\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tgetData();\n\t}, [refreshToggle, currency, sort]);\n\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tfontSize: \"1rem\",\n\t\t\t\tfontFamily: \"inherit\",\n\t\t\t\ttextAlign: \"right\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Casino\",\n\t\t\tselector: (row) => row?.casino,\n\t\t\tsortable: true,\n\t\t\tsortField: \"casino\"\n\t\t},\n\t\t{\n\t\t\tname: \"GGR\",\n\t\t\tselector: (row) => `${row?.GGR} ${row?.currency}`,\n\t\t\tsortable: true,\n\t\t\tsortField: \"GGR\"\n\t\t}\n\t];\n\n\tconst handleSort = (column, sortDirection) => {\n\t\tsetSort({ field: column.sortField, direction: sortDirection });\n\t\t// getData({\n\t\t// \tfield: column.sortField,\n\t\t// \torder: sortDirection\n\t\t// });\n\n\t\t// const order = sortDirection === \"asc\" ? \"desc\" : \"asc\";\n\t\t// let field = \"\";\n\n\t\t// const keyFields = {\n\t\t// \tCasino: \"casino\",\n\t\t// \tGGR: \"GGR\"\n\t\t// };\n\n\t\t// const columnKey = column.name.replace(\" \", \"\");\n\t\t// if (columnKey in keyFields) {\n\t\t// \tfield = keyFields[columnKey];\n\n\t\t// \tconst updatedSortOrder = {\n\t\t// \t\tfield: field,\n\t\t// \t\torder: order\n\t\t// \t};\n\t\t// \tgetData(updatedSortOrder);\n\t\t// }\n\t};\n\n\tconst customFilter = (data) => {\n\t\treturn data.filter((item) => {\n\t\t\tif (search === \"\") {\n\t\t\t\treturn item;\n\t\t\t} else {\n\t\t\t\treturn item.casino.toLowerCase().includes(search.toLowerCase());\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    All Casinos GGR
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\t\t\tplaceholder=\"Search by casino\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default AllCasinoGGRTable;\n","import React, { useEffect, useState } from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport axios from \"axios\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../Loader\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport DropDown from \"../Common/DropDown\";\nimport InputField from \"../Common/InputField\";\n\nconst AllBrandsGGRTable = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n\tconst [currency, setCurrency] = useState(\"All\");\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [data, setData] = useState([]);\n\tconst [sort, setSort] = useState({ field: \"\", direction: \"\" });\n\tconst [search, setSearch] = useState(\"\");\n\n\tconst getData = async () => {\n\t\tsetErrorMessage(\"\");\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\t\tconst brands = Object.groupBy(allCasinos?.casino_information, (casino) => casino.brand);\n\n\t\tsetLoading(true);\n\t\tawait axios\n\t\t\t.post(\n\t\t\t\t`${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/brands-ggr?currency=${currency === \"All\" ? \"\" : currency}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&token=${\n\t\t\t\t\tcasino?.casino_token\n\t\t\t\t}&casino=${casino?.casino_key}&sortBy=${sort.field}&orderBy=${sort.direction}`,\n\t\t\t\t{ brands }\n\t\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetData(response?.data?.response?.data);\n\t\t\t\t} else {\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tgetData();\n\t}, [refreshToggle, currency, sort]);\n\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tfontSize: \"1rem\",\n\t\t\t\tfontFamily: \"inherit\",\n\t\t\t\ttextAlign: \"right\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Brand\",\n\t\t\tselector: (row) => row?.name,\n\t\t\tsortable: true,\n\t\t\tsortField: \"name\"\n\t\t},\n\t\t{\n\t\t\tname: \"GGR\",\n\t\t\tselector: (row) => `${row?.GGR?.toFixed(2)} ${row?.currency}`,\n\t\t\tsortable: true,\n\t\t\tsortField: \"GGR\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fee UG (In %)\",\n\t\t\tselector: (row) => row?.royaltiesKey,\n\t\t\tsortable: true,\n\t\t\tsortField: \"royaltiesKey\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fee UG\",\n\t\t\tselector: (row) => row?.royalties?.toFixed(2),\n\t\t\tsortable: true,\n\t\t\tsortField: \"royalties\"\n\t\t}\n\t];\n\n\tconst handleSort = (column, sortDirection) => {\n\t\tsetSort({ field: column.sortField, direction: sortDirection });\n\t};\n\n\tconst customFilter = (data) => {\n\t\treturn data.filter((item) => {\n\t\t\tif (search === \"\") {\n\t\t\t\treturn item;\n\t\t\t} else {\n\t\t\t\treturn item.name.toLowerCase().includes(search.toLowerCase());\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    All Brands GGR
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\t\t\tplaceholder=\"Search by brand\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default AllBrandsGGRTable;\n","import React, { useEffect, useState } from \"react\";\nimport Chart from \"react-apexcharts\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport axios from \"axios\";\nimport CurrenciesDropdown from \"../../Common/CurrenciesDropdown\";\nimport DropDown from \"../../Common/DropDown\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport MultiSelectDropDown from \"../../Common/MultiSelectDropDown\";\n\nconst AllBrandsGGR = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n const [loading, setLoading] = useState(false);\n const [chartDate, setChartDate] = useState([]);\n const [xAxisList, setXAxisList] = useState([]);\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n const allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n const brands = Object.groupBy(allCasinos?.casino_information, (casino) => casino.brand);\n const [selectBrands, setSelectBrands] = useState([]);\n const [series, setSeries] = useState([]);\n\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [currency, setCurrency] = useState(\"All\");\n\n const getData = () => {\n setErrorMessage(\"\");\n\n\n setLoading(true);\n\n axios.post(\n `${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/brands-ggr?currency=${currency === \"All\" ? \"\" : currency}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&token=${casino?.casino_token\n }&casino=${casino?.casino_key}`,\n { brands }\n )\n .then((response) => {\n if (response.data.status === 200) {\n setChartDate(response.data?.response?.daysOrMonths);\n\n let chartData = response.data?.response?.chartData.map((row, index) => {\n return {\n ...row,\n debits: parseFloat(row.debits),\n credits: parseFloat(row.credits),\n debitsUsd: parseFloat(row.debitsUsd),\n creditsUsd: parseFloat(row.creditsUsd),\n debitsUsdGGR: parseFloat(row.debitsUsdGGR),\n GGR: parseFloat(row.GGR),\n royalties: parseFloat(row.royalties),\n originalData: row,\n };\n });\n\n if (chartData.length === 0) {\n setErrorMessage(\"There are no records to display\");\n }\n\n if (currency === \"All\") {\n chartData = chartData.map((row, index) => {\n return {\n ...row,\n data: row.usdData,\n };\n });\n }\n\n setXAxisList(chartData);\n\n } else {\n setChartDate([]);\n setXAxisList([]);\n\n setErrorMessage(response?.data?.message);\n }\n })\n .catch((error) => {\n setChartDate([]);\n setXAxisList([]);\n\n setErrorMessage(error.message);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [refreshToggle, currency]);\n\n const dashboardChartOptions = {\n chart: {\n height: 350,\n type: \"line\",\n zoom: {\n enabled: false,\n },\n toolbar: {\n show: false,\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: 3,\n curve: \"smooth\",\n },\n title: {\n align: \"center\",\n style: {\n color: \"#FEB019\",\n },\n },\n xaxis: {\n categories: chartDate ? chartDate : [],\n labels: {\n style: {\n colors: \"#ccc\",\n },\n },\n },\n yaxis: [\n {\n labels: {\n formatter: (value) => {\n const currencyLabel =\n currency === \"All\" ? \"Converted to USD\" : xAxisList[0]?.currency;\n return `${parseFloat(value).toFixed(2)} ${!currencyLabel ? \"\" : currencyLabel}`;\n },\n style: {\n colors: \"#ccc\",\n },\n },\n },\n ],\n tooltip: {\n theme: \"dark\",\n followCursor: true,\n },\n legend: {\n position: \"top\",\n labels: {\n colors: \"#fff\",\n },\n markers: {\n offsetX: -4,\n offsetY: -1,\n },\n itemMargin: {\n horizontal: 10,\n },\n },\n };\n\n useEffect(() => {\n setSelectBrands(xAxisList)\n }, [xAxisList])\n\n useEffect(() => {\n if (selectBrands.length > 0) {\n setSeries(selectBrands)\n setErrorMessage(\"\");\n }\n else{\n setErrorMessage(\"There are no records to display\");\n }\n }, [selectBrands])\n\n return (\n <>\n
    \n \n \n
    All Brands GGR
    \n \n \n
    \n \n\n {\n console.log(data)\n setSelectBrands(data);\n }}\n />\n
    \n \n \n \n \n {/* */}\n
    \n \n\n {\n setCurrency(data?.currency_abrv);\n }}\n />\n
    \n \n
    \n
    \n\n {errorMessage ? (\n

    {errorMessage}

    \n ) : (\n \n )}\n\n {loading ? : \"\"}\n \n );\n};\n\nexport default AllBrandsGGR;\n","import React, { useEffect, useState } from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport axios from \"axios\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\nimport Loader from \"../Loader\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport DropDown from \"../Common/DropDown\";\nimport InputField from \"../Common/InputField\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport moment from \"moment\";\nimport { formatNum } from \"../../utils\";\n\nconst months = moment.monthsShort();\nconst AllBrandsGGRPerMonthTable = ({ startDate, endDate, currencies, refreshToggle, width }) => {\n\tconst [currency, setCurrency] = useState(\"All\");\n\tconst [loading, setLoading] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\tconst [data, setData] = useState([]);\n\tconst [sort, setSort] = useState({ field: \"\", direction: \"\" });\n\tconst [search, setSearch] = useState(\"\");\n const [selectedYear, setSelectedYear] = useState(moment().year())\n const [selectedMonth, setSelectedMonth] = useState(0)\n const [yearOptions, setYearOptions] = useState()\n\n const monthOptions = [\n \"All\",\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n useEffect(() => {\n let arr = [];\n for (let i = 2021; i <= new Date().getFullYear(); i++) {\n arr.push(i);\n }\n setYearOptions(arr);\n }, []);\n\n\tconst getData = async () => {\n\t\tsetErrorMessage(\"\");\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\t\tconst brands = Object.groupBy(allCasinos?.casino_information, (casino) => casino.brand);\n\n\t\tsetLoading(true);\n\n\t\tconst params = new URLSearchParams({\n\t\t\tcurrency: currency === \"All\" ? \"\" : currency,\n\t\t\tstart: startDate + \"T00:00:00Z\",\n\t\t\tend: endDate + \"T23:59:59Z\",\n\t\t\ttoken: casino?.casino_token,\n\t\t\tcasino: casino?.casino_key,\n\t\t\tsortBy: sort.field,\n\t\t\torderBy: sort.direction,\n\t\t\tmonth: selectedMonth == 0 ? \"\" : moment(selectedMonth, 'MM').format('MMM'),\n\t\t\tyear: selectedYear\n\t\t});\n\n\t\tawait axios\n\t\t\t.post(`${process.env.REACT_APP_API_DOMAIN}/reports/transactions/dashboard/brands-ggr-by-each-month?${params.toString()}`, {\n\t\t\t\tbrands\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data.status === 200) {\n\t\t\t\t\tsetData(response?.data?.response?.data);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetErrorMessage(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tgetData();\n\t}, [refreshToggle, currency, sort, selectedMonth, selectedYear]);\n\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tfontSize: \"1rem\",\n\t\t\t\tfontFamily: \"inherit\",\n\t\t\t\ttextAlign: \"right\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\tconst monthColumns = months.map((month, index) => {\n\t\treturn {\n\t\t\tname: month,\n\t\t\tselector: (row) => row?.monthsData[index]?.tableGGR ? formatNum.format(row?.monthsData[index]?.tableGGR) : 0,\n\t\t\tsortable: false,\n\t\t\twidth: \"7%\"\n\t\t};\n\t});\n\n\tconst columns = [\n\t\t{\n\t\t\tname: \"Brand\",\n\t\t\tselector: (row) => row?.name,\n\t\t\tsortable: true,\n\t\t\tsortField: \"name\",\n\t\t\twidth: '10%'\n\t\t},\n\t\t...monthColumns,\n\t\t{\n\t\t\tname: \"GGR\",\n\t\t\tselector: (row) => `${row?.GGR?.toFixed(2)} ${row?.currency}`,\n\t\t\tsortable: true,\n\t\t\tsortField: \"GGR\",\n\t\t\twidth: \"10%\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fee UG (%)\",\n\t\t\tselector: (row) => row?.royaltiesKey,\n\t\t\tsortable: true,\n\t\t\tsortField: \"royaltiesKey\",\n\t\t\twidth: \"10%\"\n\t\t},\n\t\t{\n\t\t\tname: \"Fee UG\",\n\t\t\tselector: (row) => row?.royalties?.toFixed(2),\n\t\t\tsortable: true,\n\t\t\tsortField: \"royalties\"\n\t\t}\n\t];\n\n\tconst handleSort = (column, sortDirection) => {\n\t\tsetSort({ field: column.sortField, direction: sortDirection });\n\t};\n\n\tconst customFilter = (data) => {\n\t\treturn data?.tableData?.filter((item) => {\n\t\t\tif (search === \"\") {\n\t\t\t\treturn item;\n\t\t\t} else {\n\t\t\t\treturn item.name.toLowerCase().includes(search.toLowerCase());\n\t\t\t}\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    All Brands GGR each Month
    \n\t\t\t\t\t\n \n
    \n \n {\n setSelectedMonth(index);\n }}\n />\n
    \n \n \n
    \n \n {\n setSelectedYear(data);\n }}\n />\n
    \n \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCurrency(data?.currency_abrv);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{errorMessage ? (\n\t\t\t\t

    {errorMessage}

    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t setSearch(e.target.value)}\n\t\t\t\t\t\t\tplaceholder=\"Search by brand\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading ? : \"\"}\n\t\t\n\t);\n};\n\nexport default AllBrandsGGRPerMonthTable;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { toast } from \"react-toastify\";\nimport moment from \"moment\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport GamesBetsPerHourChart from \"../../components/Charts/Finance/GamesBetsPerHour\";\nimport GameTypeBetsPerHourChart from \"../../components/Charts/Finance/GameTypeBetsPerHour\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport GamesBetsTransactionsChart from \"../../components/Charts/Finance/GamesBetsTransactionsChart\";\n// import AllGameTypeGGR from \"../../components/Charts/Finance/AllGameTypeGGR\";\nimport AllCasinoGGR from \"../../components/Charts/Finance/AllCasinoGGR\";\nimport AllCasinoGGRTable from \"../../components/Finance/AllCasinoGGRTable\";\nimport AllBrandsGGRTable from \"../../components/Finance/AllBrandsGGRTable\";\nimport AllBrandsGGR from \"../../components/Charts/Finance/AllBrandsGGR\";\nimport AllBrandsGGRPerMonthTable from \"../../components/Finance/AllBrandsGGRPerMonthTable\";\n\nmoment.locale(\"utc\");\n\nconst Finance = () => {\n const [currencies, setCurrencies] = useState([]);\n const [refreshToggle, setRefreshToggle] = useState(false);\n const [width, setWidth] = useState();\n const [state, setState] = useState({\n start: moment().startOf(\"month\").toDate(),\n end: moment().endOf(\"month\").toDate(),\n });\n const { start, end } = state;\n\n const handleCallback = (start, end) => {\n setState({ start, end });\n if (start && end !== null) {\n setRefreshToggle((prev) => !prev);\n }\n };\n\n // render currency list\n useEffect(() => {\n axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/currencies/list?token=${\n JSON.parse(localStorage.getItem(\"currentCasino\"))?.casino_token\n }`\n )\n .then((response) => {\n if (response?.data?.status === 200) {\n setCurrencies([{ currency_abrv: \"All\" }, ...response?.data?.data]);\n }\n })\n .catch(function (error) {\n if (error.response) {\n toast.error(error.response?.data?.message, {\n theme: \"dark\",\n autoClose: 1500,\n });\n } else {\n toast.error(error.message, { theme: \"dark\", autoClose: 1500 });\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setWidth(window.innerWidth);\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n \n );\n};\n\nexport default Finance;\n","import axios from \"axios\";\nimport { useState } from \"react\";\nimport Loader from \"../../Loader\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { AiOutlineExport } from \"react-icons/ai\";\n\nconst ExcelJS = require(\"exceljs\");\n\nconst DetailedGameReports = ({ selectedGame, startDate, endDate, currency, accessType }) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\n\tconst downloadExcel = async (data) => {\n\t\tif (data.length === 0) {\n\t\t\tsetError(\"There are no records to download\");\n\t\t\treturn;\n\t\t}\n\t\tconst workbook = new ExcelJS.Workbook();\n\t\tconst sheet = workbook.addWorksheet(\"Detailed Game Bets Report\");\n\n\t\tsheet.getRow(3).values = [\n\t\t\t// \"Transaction ID\",\n\t\t\t// \"Player ID\",\n\t\t\t\"Game ID\",\n\t\t\t// \"Action Type\",\n\t\t\t\"Debit\",\n\t\t\t\"Credit\",\n\t\t\t\"Date\",\n\t\t\t\"Time\"\n\t\t];\n\n\t\tsheet.columns = [\n\t\t\t// {\n\t\t\t// header: \"Transaction ID\",\n\t\t\t// key: \"id\",\n\t\t\t// width: 15,\n\t\t\t// },\n\t\t\t// {\n\t\t\t// header: \"Player ID\",\n\t\t\t// key: \"player_id\",\n\t\t\t// width: 10,\n\t\t\t// },\n\t\t\t{\n\t\t\t\theader: \"game_id\",\n\t\t\t\tkey: \"game_id\",\n\t\t\t\twidth: 10\n\t\t\t},\n\t\t\t// {\n\t\t\t// header: \"Action Type\",\n\t\t\t// key: \"action_type\",\n\t\t\t// width: 12,\n\t\t\t// },\n\t\t\t{\n\t\t\t\theader: \"Debit\",\n\t\t\t\tkey: \"debit\",\n\t\t\t\twidth: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Credit\",\n\t\t\t\tkey: \"credit\",\n\t\t\t\twidth: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Date\",\n\t\t\t\tkey: \"date\",\n\t\t\t\twidth: 12\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Time\",\n\t\t\t\tkey: \"time\",\n\t\t\t\twidth: 12\n\t\t\t}\n\t\t];\n\n\t\tconst firstRow = sheet.getRow(3);\n\t\tfirstRow.eachCell((cell) => {\n\t\t\tsheet.getCell(cell.address).fill = {\n\t\t\t\ttype: \"pattern\",\n\t\t\t\tpattern: \"solid\",\n\t\t\t\tfgColor: { argb: \"00AAAA\" }\n\t\t\t};\n\t\t});\n\n\t\tsheet.getRow(3).font = {\n\t\t\tbold: true\n\t\t};\n\n\t\tsheet.getRow(1).font = {\n\t\t\tbold: true\n\t\t};\n\n\t\tconst transactionsRange = startDate === endDate ? `of ${startDate}` : `between ${startDate} - ${endDate}`;\n\n\t\tsheet.mergeCells(\"A1\", \"H1\");\n\t\tsheet.getCell(\"A1\").value = `Game Bets Transactions ${transactionsRange}`;\n\t\tsheet.getRow(1).alignment = { vertical: \"middle\", horizontal: \"center\" };\n\n\t\tdata.map((data, index) => {\n\t\t\tconst dateTime = new Date(data.created_at).toLocaleString(undefined, {\n\t\t\t\tyear: \"numeric\",\n\t\t\t\tmonth: \"2-digit\",\n\t\t\t\tday: \"2-digit\",\n\t\t\t\thour: \"2-digit\",\n\t\t\t\thour12: false,\n\t\t\t\tminute: \"2-digit\",\n\t\t\t\tsecond: \"2-digit\"\n\t\t\t});\n\t\t\tsheet.addRow({\n\t\t\t\t...data,\n\t\t\t\tdate: dateTime.slice(0, 10),\n\t\t\t\ttime: dateTime.slice(-8)\n\t\t\t});\n\t\t});\n\n\t\tawait workbook.xlsx.writeBuffer().then((data) => {\n\t\t\tconst blob = new Blob([data], {\n\t\t\t\ttype: \"application/vnd.openxmlformats-officedocument.spreadsheet.sheet\"\n\t\t\t});\n\n\t\t\tconst url = window.URL.createObjectURL(blob);\n\t\t\tconst anchor = document.createElement(\"a\");\n\t\t\tanchor.href = url;\n\t\t\tanchor.download = \"download.xlsx\";\n\t\t\tanchor.click();\n\t\t\twindow.URL.revokeObjectURL(url);\n\t\t});\n\t};\n\n\t/**\n\t * Export handler\n\t */\n\tconst exportDetailedGameReportsHandler = async () => {\n\t\tsetLoading(true);\n\t\tsetError(\"\");\n\n\t\tconst casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst game = !selectedGame ? \"\" : selectedGame?.id === 0 ? \"\" : selectedGame?.id;\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\n\t\tconst apiUrl = `${process.env.REACT_APP_API_DOMAIN}/games/reports/each-game-transactions?token=${casino?.casino_token}&casino=${casino?.casino_key}¤cy=${currency}&start=${startDate}T00:00:00Z&end=${endDate}T23:59:59Z&game=${game}&action=game&accessType=${accessType}`;\n\n\t\tawait axios\n\t\t\t.post(apiUrl, {\n\t\t\t\tcasinos: allCasinos?.casino_information || []\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data?.status === 200) {\n\t\t\t\t\tdownloadExcel(response.data?.data);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(response.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetError(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
    Detailed Game Report
    \n\t\t\t\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tDownload Excel \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t{loading ? : error ?

    {error}

    : \"\"}\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default DetailedGameReports;\n","import axios from \"axios\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport DetailedGameReports from \"./DetailedGameReports\";\nimport DropDown from \"../../Common/DropDown\";\n\nconst defaultGame = { id: 0, game: \"All\" };\n\nconst FinancialGameReports = ({ startDate, endDate, currency, refreshToggle, width, accessType }) => {\n const [allGames, setAllGames] = useState([]);\n const [selectedGame, setSelectedGame] = useState(defaultGame);\n const [gameDropDown, setGameDropdown] = useState(false);\n\n /**\n * Games List\n */\n useEffect(() => {\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n axios\n .get(`${process.env.REACT_APP_API_DOMAIN}/games/list?token=${casino?.casino_token}`)\n .then((response) => {\n setAllGames([defaultGame, ...response.data?.data]);\n });\n }, []);\n\n return (\n <>\n \n \n
    \n
    Game Reports
    \n
    \n \n \n <>\n
    \n \n {\n setSelectedGame(data);\n }}\n />\n {/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {selectedGame?.game}\n \n \n \n \n\n
      \n {allGames?.map((currency) => (\n {\n setSelectedGame(currency);\n }}>\n {currency?.game}\n \n ))}\n
    \n
    */}\n \n \n \n
    \n\n \n \n
    \n \n
    \n \n
    \n \n );\n};\n\nexport default FinancialGameReports;\n","import axios from \"axios\";\nimport React, { useState } from \"react\";\nimport Loader from \"../../Loader\";\nimport { FiSettings } from \"react-icons/fi\";\nimport { AiOutlineExport } from \"react-icons/ai\";\nimport { Col, Row } from \"react-bootstrap\";\nimport DataTable, { createTheme } from \"react-data-table-component\";\n\nconst ExcelJS = require(\"exceljs\");\n\nconst monthsList = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\nconst sortByKey = (a, b) => {\n\tif (a.casino < b.casino) {\n\t\treturn -1;\n\t}\n\tif (a.casino > b.casino) {\n\t\treturn 1;\n\t}\n\treturn 0;\n};\n\nconst MonthlySummaries = ({ selectedGameType, startDate, endDate, currency }) => {\n\tconst [loading, setLoading] = useState(false);\n\tconst [error, setError] = useState(\"\");\n\tconst [summaryData, setSummaryData] = useState([]);\n\n\tconst downloadExcel = async (data) => {\n\t\tconst workbook = new ExcelJS.Workbook();\n\t\tconst sheet = workbook.addWorksheet(\"Monthly Game Summaries\");\n\t\tconst header = [\"Brand\", \"Currency\", \"Bets\", \"Wins\", \"RTP\", \"GGR\", \"Number of Txns\", \"Currency Converter\", \"GGR\", \"Royalties (%)\", \"Royalties\", \"Bonus Deduction (%)\", \"Bonus Deduction\", \"Net Royalties\"];\n\t\t// const headerKeys = [\"casino\", \"loses\", \"wins\", \"GGR\"];\n\n\t\tsheet.columns = [\n\t\t\t{\n\t\t\t\theader: \"Brand\",\n\t\t\t\tkey: \"casino\",\n\t\t\t\twidth: 30\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Currency\",\n\t\t\t\tkey: \"currency\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Bets\",\n\t\t\t\tkey: \"loses\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Wins\",\n\t\t\t\tkey: \"wins\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"RTP\",\n\t\t\t\tkey: \"RTP\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"GGR\",\n\t\t\t\tkey: \"GGR\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Number of Txns\",\n\t\t\t\tkey: \"totalTxns\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Currency Converter\",\n\t\t\t\tkey: \"conversionRate\",\n\t\t\t\twidth: 20\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"GGR\",\n\t\t\t\tkey: \"GGRWithCurrency\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Royalties (%)\",\n\t\t\t\tkey: \"royaltiesKey\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Royalties\",\n\t\t\t\tkey: \"royalties\",\n\t\t\t\twidth: 15\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Bonus Deduction (%)\",\n\t\t\t\tkey: \"bonusDeductionKey\",\n\t\t\t\twidth: 20\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Bonus Deduction\",\n\t\t\t\tkey: \"bonusDeduction\",\n\t\t\t\twidth: 20\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: \"Net Royalties\",\n\t\t\t\tkey: \"netRoyalties\",\n\t\t\t\twidth: 15\n\t\t\t}\n\t\t];\n\n\t\tconst colors = {\n\t\t\tdark: {\n\t\t\t\ttype: \"pattern\",\n\t\t\t\tpattern: \"solid\",\n\t\t\t\tfgColor: { argb: \"1F3864\" }\n\t\t\t},\n\t\t\tlight: {\n\t\t\t\ttype: \"pattern\",\n\t\t\t\tpattern: \"solid\",\n\t\t\t\tfgColor: { argb: \"ADB9CA\" }\n\t\t\t},\n\t\t\tfullDark: {\n\t\t\t\ttype: \"pattern\",\n\t\t\t\tpattern: \"solid\",\n\t\t\t\tfgColor: { argb: \"002060\" }\n\t\t\t},\n\t\t\tgrey: {\n\t\t\t\ttype: \"pattern\",\n\t\t\t\tpattern: \"solid\",\n\t\t\t\tfgColor: { argb: \"c8c8c8\" }\n\t\t\t}\n\t\t};\n\n\t\tconst borders = {\n\t\t\ttop: { style: \"thin\" },\n\t\t\tleft: { style: \"thin\" },\n\t\t\tbottom: { style: \"thin\" },\n\t\t\tright: { style: \"thin\" }\n\t\t};\n\n\t\tsheet.getRow(1).font = {\n\t\t\tbold: true\n\t\t};\n\n\t\tconst start = new Date(startDate);\n\t\tconst end = new Date(endDate);\n\t\tconst startDateFormatted = `${start.getDate().toString().padStart(2, 0)} ${monthsList[start.getMonth()]}-${start.getFullYear()}`;\n\t\tconst endDateFormatted = `${end.getDate().toString().padStart(2, 0)} ${monthsList[end.getMonth()]}-${end.getFullYear()}`;\n\n\t\tconst transactionsRange = startDate === endDate ? `of ${startDateFormatted}` : `between ${startDateFormatted} - ${endDateFormatted}`;\n\n\t\tsheet.mergeCells(\"A1\", \"N1\");\n\t\tsheet.getCell(\"A1\").value = `Game Bets Transactions ${transactionsRange}`;\n\t\tsheet.getCell(\"A1\").fill = colors.light;\n\t\tsheet.getRow(1).alignment = { vertical: \"middle\", horizontal: \"center\" };\n\n\t\tsheet.addRow();\n\n\t\tdata.forEach((mainData, mainIndex) => {\n\t\t\t// Normal data write in sheet\n\t\t\tmainData.data.forEach((data, index) => {\n\t\t\t\t// Month and Game Type Header\n\t\t\t\tsheet.addRow([data.month, data.game_type]).eachCell((cell) => {\n\t\t\t\t\tsheet.getCell(cell.address).fill = colors.dark;\n\t\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"FFFFFF\" }, bold: true };\n\t\t\t\t\tif (cell._column._number === 1) {\n\t\t\t\t\t\tsheet.getCell(cell.address).alignment = { horizontal: \"right\" };\n\t\t\t\t\t\tsheet.getCell(cell.address).border = {\n\t\t\t\t\t\t\ttop: { style: \"thin\" },\n\t\t\t\t\t\t\tleft: { style: \"thin\" },\n\t\t\t\t\t\t\tbottom: { style: \"thin\" }\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsheet.getCell(cell.address).border = {\n\t\t\t\t\t\t\tright: { style: \"thin\" },\n\t\t\t\t\t\t\ttop: { style: \"thin\" },\n\t\t\t\t\t\t\tbottom: { style: \"thin\" }\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Brand row header\n\t\t\t\tsheet.addRow(header).eachCell((cell) => {\n\t\t\t\t\tif ([\"royalties\", \"GGRWithCurrency\"].includes(cell._column._key)) {\n\t\t\t\t\t\tsheet.getCell(cell.address).value = cell._column._header + \" \" + mainData.invoiceCurrency;\n\t\t\t\t\t}\n\t\t\t\t\tsheet.getCell(cell.address).fill = colors.dark;\n\t\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"FFFFFF\" }, bold: true };\n\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t});\n\n\t\t\t\t// Main data body rows\n\t\t\t\tsheet.lastRow.alignment = { horizontal: \"center\" };\n\n\t\t\t\tdata.currencies.forEach((cData, cIndex) => {\n\t\t\t\t\tif (!cData.currencyExist) return;\n\n\t\t\t\t\tcData.casino = data.casino;\n\t\t\t\t\tcData.royaltiesKey = data.royaltiesKey;\n\t\t\t\t\tcData.bonusDeductionKey = data.bonusDeductionKey;\n\n\t\t\t\t\tif (cData.currencyType === \"crypto\") {\n\t\t\t\t\t\tcData.currency = cData.currency + \" (₿)\";\n\t\t\t\t\t}\n\n\t\t\t\t\tsheet.addRow(cData).eachCell((cell) => {\n\t\t\t\t\t\tif ([3, 4, 5, 9, 10, 11, 13, 14].includes(cell._column._number)) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).fill = colors.light;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ([\"loses\", \"wins\", \"GGR\"].includes(cell._column._key)) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `###0.00;[Red]-###0.00`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ([\"GGRWithCurrency\", \"royalties\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// For unrealized currency data\n\t\t\t\tif (data.currencyNotExistStatus) {\n\t\t\t\t\tdata.currencyNotExistData.forEach((cData) => {\n\t\t\t\t\t\tsheet.addRow([`Unrealized currency - ${cData.currency}`, cData.currency, cData.loses, cData.wins, cData.GGR, cData.totalTxns, \"\", \"\", \"\", \"\", \"\", \"\", \"\"]).eachCell((cell) => {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"C00000\" } };\n\t\t\t\t\t\t\tif ([2, 3, 4, 5].includes(cell._column._number)) {\n\t\t\t\t\t\t\t\tsheet.getCell(cell.address).fill = colors.grey;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ([\"loses\", \"wins\", \"GGR\"].includes(cell._column._key)) {\n\t\t\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `###0.00;[Red]-###0.00`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tdata.currencyNotExistData.forEach((cData) => {\n\t\t\t\t\t\tsheet.addRow([`Convert ${cData.currency} to ${mainData.invoiceCurrency}`, \"\", \"\", \"\", \"\", \"\", \"\", \"\", data.royaltiesKey, \"\", data.bonusDeductionKey, \"\", \"\"]).eachCell((cell) => {\n\t\t\t\t\t\t\tif ([3, 4, 5, 9, 10, 11, 13, 14].includes(cell._column._number)) {\n\t\t\t\t\t\t\t\tsheet.getCell(cell.address).fill = colors.light;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Total Footer\n\t\t\t\tsheet.addRow([\"TOTAL\", mainData.invoiceCurrency, \"\", \"\", \"\", \"\", data.totalTxns, \"\", data.GGRWithCurrency, \"\", data.royalties, \"\", data.bonusDeduction, data.netRoyalties]).eachCell((cell) => {\n\t\t\t\t\tif ([\"loses\", \"wins\", \"GGR\"].includes(cell._column._key)) {\n\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `###0.00;[Red]-###0.00`;\n\t\t\t\t\t}\n\t\t\t\t\tif ([\"GGRWithCurrency\", \"royalties\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t\t}\n\t\t\t\t\tif (cell._column._number === 1) {\n\t\t\t\t\t\tsheet.getCell(cell.address).alignment = { horizontal: \"center\" };\n\t\t\t\t\t}\n\t\t\t\t\tsheet.getCell(cell.address).font = { bold: true };\n\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t});\n\n\t\t\t\t// For unrealized update totals footer\n\t\t\t\tif (data.currencyNotExistStatus) {\n\t\t\t\t\tsheet.addRow([\"UPDATED TOTAL\", mainData.invoiceCurrency, \"\", \"\", \"\", \"\", \"\", \"\", 0, \"\", 0, \"\", 0, 0]).eachCell((cell) => {\n\t\t\t\t\t\tif ([\"loses\", \"wins\", \"GGR\"].includes(cell._column._key)) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `###0.00;[Red]-###0.00`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ([\"royalties\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (cell._column._number === 1) {\n\t\t\t\t\t\t\tsheet.getCell(cell.address).alignment = { horizontal: \"center\" };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsheet.getCell(cell.address).font = { bold: true };\n\t\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// To add new empty row\n\t\t\t\tsheet.addRow();\n\t\t\t});\n\n\t\t\t// For not exists currencies\n\t\t\tif (mainData.currencyNotExistStatus) {\n\t\t\t\tconst notExistsCurrencies = mainData.currencyNotExistData.map((currency) => currency.currency);\n\n\t\t\t\tsheet.addRow([`Note: Currencies '${notExistsCurrencies.join(\"', '\")}' rates not exists in the database and not calculated in the RNS GRAND TOTAL please convert it manually.`]).eachCell((cell) => {\n\t\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"C00000\" }, bold: true };\n\t\t\t\t\tsheet.getCell(cell.address).fill = colors.grey;\n\t\t\t\t});\n\t\t\t\tsheet.mergeCells(sheet.rowCount, 1, sheet.rowCount, sheet.columnCount);\n\t\t\t}\n\n\t\t\t// Grand Total write in sheet\n\t\t\tsheet.addRow([\"RNG GRAND TOTAL\", mainData.invoiceCurrency, \"\", \"\", \"\", \"\", \"\", \"\", mainData.GGRWithCurrency, \"\", mainData.royalties, \"\", mainData.bonusDeduction, mainData.netRoyalties]).eachCell((cell) => {\n\t\t\t\tif (cell._column._number === 1) {\n\t\t\t\t\tsheet.getCell(cell.address).alignment = { horizontal: \"center\" };\n\t\t\t\t}\n\t\t\t\tif ([\"royalties\", \"GGRWithCurrency\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t}\n\t\t\t\tsheet.getCell(cell.address).fill = colors.fullDark;\n\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"FFFFFF\" }, bold: true };\n\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\tif ([\"royalties\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// For not exists currencies\n\t\t\tif (mainData.currencyNotExistStatus) {\n\t\t\t\tsheet.addRow([\"UPDATED - RNG GRAND TOTAL\", mainData.invoiceCurrency, \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"]).eachCell((cell) => {\n\t\t\t\t\tif (cell._column._number === 1) {\n\t\t\t\t\t\tsheet.getCell(cell.address).alignment = { horizontal: \"center\" };\n\t\t\t\t\t}\n\t\t\t\t\tif ([\"loses\", \"wins\", \"GGR\", \"royalties\", \"GGRWithCurrency\", \"bonusDeduction\", \"netRoyalties\"].includes(cell._column._key)) {\n\t\t\t\t\t\tsheet.getCell(cell.address).numFmt = `${mainData.currencySymbol}###0.00;[Red]-${mainData.currencySymbol}###0.00`;\n\t\t\t\t\t}\n\t\t\t\t\tsheet.getCell(cell.address).fill = colors.fullDark;\n\t\t\t\t\tsheet.getCell(cell.address).font = { color: { argb: \"FFFFFF\" }, bold: true };\n\t\t\t\t\tsheet.getCell(cell.address).border = borders;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsheet.addRow();\n\t\t});\n\n\t\tawait workbook.xlsx.writeBuffer().then((data) => {\n\t\t\tconst blob = new Blob([data], {\n\t\t\t\ttype: \"application/vnd.openxmlformats-officedocument.spreadsheet.sheet\"\n\t\t\t});\n\n\t\t\tconst url = window.URL.createObjectURL(blob);\n\t\t\tconst anchor = document.createElement(\"a\");\n\t\t\tanchor.href = url;\n\t\t\tanchor.download = \"monthly-game-summary.xlsx\";\n\t\t\tanchor.click();\n\t\t\twindow.URL.revokeObjectURL(url);\n\t\t});\n\t};\n\n\t/**\n\t * Export handler\n\t */\n\tconst exportDetailedGameReportsHandler = () => {\n\t\tsetLoading(true);\n\t\tsetError(\"\");\n\n\t\t// const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n\t\tconst gameType = !selectedGameType || selectedGameType === \"All\" ? \"\" : selectedGameType;\n\n\t\tconst allCasinos = JSON.parse(localStorage.getItem(\"userInformation\"));\n\n\t\tconst devPoint = \"dev-\";\n\n\t\taxios\n\t\t\t.post(`${process.env.REACT_APP_API_DOMAIN}/games/reports/${devPoint}monthly-game-summaries`, {\n\t\t\t\tcasinos: allCasinos?.casino_information || [],\n\t\t\t\tcurrency: currency,\n\t\t\t\tstart: `${startDate}T00:00:00Z`,\n\t\t\t\tend: `${endDate}T23:59:59Z`,\n\t\t\t\tgameType: gameType\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tif (response.data?.status === 200) {\n\t\t\t\t\tif (response.data?.data?.length === 0) {\n\t\t\t\t\t\tsetError(\"There are no records found\");\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse.data?.data.map((data) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...data,\n\t\t\t\t\t\t\tdata: data.data?.sort(sortByKey)\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\n\t\t\t\t\tsetSummaryData(response.data?.data);\n\t\t\t\t} else {\n\t\t\t\t\tsetError(response.data?.message);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tsetError(error.message);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tsetLoading(false);\n\t\t\t});\n\t};\n\n\tcreateTheme(\n\t\t\"solarized\",\n\t\t{\n\t\t\ttext: {\n\t\t\t\tprimary: \"#ffffff\",\n\t\t\t\tsecondary: \"#8651d6\"\n\t\t\t},\n\t\t\tbackground: {\n\t\t\t\tdefault: \"rgb(22 22 22 / 20%)\"\n\t\t\t},\n\t\t\tcontext: {\n\t\t\t\tbackground: \"#cb4b16\",\n\t\t\t\ttext: \"#FFFFFF\"\n\t\t\t},\n\t\t\tdivider: {\n\t\t\t\tdefault: \"rgba(225,225,225,0.08)\"\n\t\t\t}\n\t\t},\n\t\t\"dark\"\n\t);\n\n\tconst renderAmountWithCurrency = (amount, currency) => {\n\t\tconst res = Number(amount)?.toLocaleString(\"en-US\", {\n\t\t\tstyle: \"currency\",\n\t\t\tcurrency: currency,\n\t\t\tminimumFractionDigits: 2\n\t\t});\n\t\treturn res;\n\t};\n\n\tconst newColumns = [\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"RNG GRAND TOTAL\",\n\t\t\twidth: \"210px\",\n\t\t\twrap: true\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => row?.invoiceCurrency,\n\t\t\twidth: \"90px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"105px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"105px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"90px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"120px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"130px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"150px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => renderAmountWithCurrency(row?.GGRWithCurrency, row?.invoiceCurrency),\n\t\t\twidth: \"110px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"110px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) =>
    {renderAmountWithCurrency(row?.royalties, row?.invoiceCurrency)}
    ,\n\t\t\twidth: \"120px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) => \"\",\n\t\t\twidth: \"120px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) =>
    {renderAmountWithCurrency(row?.bonusDeduction, row?.invoiceCurrency)}
    ,\n\t\t\twidth: \"125px\"\n\t\t},\n\t\t{\n\t\t\tname: \"\",\n\t\t\tselector: (row) =>
    {renderAmountWithCurrency(row?.netRoyalties, row?.invoiceCurrency)}
    ,\n\t\t\twidth: \"115px\"\n\t\t}\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    Monthly Summaries
    \n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t downloadExcel(summaryData)}\n\t\t\t\t\t\t\tdisabled={loading || summaryData?.length === 0}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDownload Excel \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tGenerate \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\n\t\t\t\t\t{loading ? : error ?

    {error}

    : \"\"}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{summaryData?.map((data, index) => {\n\t\t\t\t\t\t\tconst result = data?.data?.reduce((acc, obj) => {\n\t\t\t\t\t\t\t\tconst key = obj?.casino;\n\t\t\t\t\t\t\t\t(acc[key] = acc[key] || []).push(obj);\n\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t}, {});\n\n\t\t\t\t\t\t\tconst arrayOfArrays = Object.values(result);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\tInvoice Currency: {data.invoiceCurrency} ({data.currencySymbol})\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t{arrayOfArrays?.map((arr, index) => {\n\t\t\t\t\t\t\t\t\t\tconst result = arr?.reduce((acc, obj) => {\n\t\t\t\t\t\t\t\t\t\t\tconst key = obj?.month;\n\t\t\t\t\t\t\t\t\t\t\t(acc[key] = acc[key] || []).push(obj);\n\t\t\t\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t\t\t\t}, {});\n\n\t\t\t\t\t\t\t\t\t\tconst innerArrays = Object.values(result);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{innerArrays?.map((iArr, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{iArr?.map((i, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{i?.casino} · {i?.month}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{i?.conversionTo},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttotalTxns: {i?.totalTxns},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconversionRate: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrencyExist: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troyaltiesKey: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\troyalties: i?.royalties,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbonusDeductionKey: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbonusDeduction: i?.bonusDeduction,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnetRoyalties: i?.netRoyalties,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGGRWithCurrency: i?.GGRWithCurrency\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumns={[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Brand\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn row?.isTotal ? Total : i?.casino;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"210px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twrap: true\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Currency\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) => row?.currency,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"90px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Bets\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.loses?.toFixed(2)}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"105px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Wins\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.wins?.toFixed(2) || \"\"}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"105px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"RTP\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.RTP?.toFixed(2) || \"\"}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"90px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"GGR\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!row?.isTotal ?
    {Number(row?.GGR)?.toFixed(2)}
    : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Number of Txns\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.totalTxns}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"130px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Currency Converter\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.conversionRate}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"150px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: `GGR ${data?.invoiceCurrency}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!row?.isTotal ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.GGRWithCurrency, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.GGRWithCurrency, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"110px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Royalties (%)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.royaltiesKey}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"110px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: `Royalties ${data?.invoiceCurrency}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!row?.isTotal ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.royalties, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.royalties, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Bonus DED. (%)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>
    {row?.bonusDeductionKey}
    ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Bonus Deduction\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow?.isTotal ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.bonusDeduction, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.bonusDeduction, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"125px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: \"Net Royalties\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselector: (row) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trow?.isTotal ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.netRoyalties, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{renderAmountWithCurrency(row?.netRoyalties, data?.invoiceCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"115px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default MonthlySummaries;\n","import axios from \"axios\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport { Col, Row } from \"react-bootstrap\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport MonthlyGameTypeSummaries from \"./MonthlyGameTypeSummaries\";\nimport DropDown from \"../../Common/DropDown\";\n\nconst defaultGameType = \"All\";\n\nconst FinancialGameTypeReports = ({ startDate, endDate, currency, refreshToggle, width }) => {\n const [allGameTypes, setAllGameTypes] = useState([]);\n const [selectedGameType, setSelectedGameType] = useState(defaultGameType);\n const [gameDropDown, setGameDropdown] = useState(false);\n\n /**\n * Games Type List\n */\n useEffect(() => {\n const casino = JSON.parse(localStorage?.getItem(\"currentCasino\"));\n axios\n .get(`${process.env.REACT_APP_API_DOMAIN}/games/gametypes/list?token=${casino?.casino_token}`)\n .then((response) => {\n setAllGameTypes([defaultGameType, ...response.data?.data]);\n });\n }, []);\n\n return (\n <>\n \n \n
    \n
    Monthly Game Summaries with Brands
    \n
    \n \n \n <>\n
    \n \n {\n setSelectedGameType(data);\n }}\n />\n {/* \n width <= 991 && setGameDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setGameDropdown(true)}\n onMouseLeave={() => width >= 991 && setGameDropdown(false)}>\n {selectedGameType}\n \n \n \n \n\n
      \n {allGameTypes?.map((gameType) => (\n {\n setSelectedGameType(gameType);\n }}>\n {gameType}\n \n ))}\n
    \n
    */}\n \n \n \n
    \n\n \n \n
    \n \n
    \n \n
    \n \n );\n};\n\nexport default FinancialGameTypeReports;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { toast } from \"react-toastify\";\nimport moment from \"moment\";\nimport { BsCalendar2Date } from \"react-icons/bs\";\nimport { MdOutlineKeyboardArrowDown } from \"react-icons/md\";\nimport { GiCreditsCurrency } from \"react-icons/gi\";\nimport DateRangePicker from \"react-bootstrap-daterangepicker\";\nimport FinancialGameReports from \"../../components/FiancialReports/GameReports\";\nimport FinancialGameTypeReports from \"../../components/FiancialReports/GameTypeReports\";\nimport DropDown from \"../../components/Common/DropDown\";\n\nmoment.locale(\"utc\");\n\nconst FinancialReports = () => {\n const [selectedCurrency, setSelectedCurrency] = useState(\"All\");\n const [currencies, setCurrencies] = useState([]);\n const [refreshToggle, setRefreshToggle] = useState(false);\n const [width, setWidth] = useState();\n const [dropDown, setDropdown] = useState(false);\n const [state, setState] = useState({\n start: moment().startOf(\"month\").toDate(),\n end: moment().endOf(\"month\").toDate(),\n });\n const { start, end } = state;\n\n const handleCallback = (start, end) => {\n setState({ start, end });\n if (start && end !== null) {\n setRefreshToggle((prev) => !prev);\n }\n };\n\n // render currency list\n useEffect(() => {\n axios\n .get(\n `${process.env.REACT_APP_API_DOMAIN}/currencies/list?token=${\n JSON.parse(localStorage.getItem(\"currentCasino\"))?.casino_token\n }`\n )\n .then((response) => {\n if (response?.data?.status === 200) {\n setCurrencies([{ currency_abrv: \"All\" }, ...response?.data?.data]);\n }\n })\n .catch(function (error) {\n if (error.response) {\n toast.error(error.response?.data?.message, {\n theme: \"dark\",\n autoClose: 1500,\n });\n } else {\n toast.error(error.message, { theme: \"dark\", autoClose: 1500 });\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const selectCurrency = (currency) => {\n setSelectedCurrency(currency);\n };\n\n useEffect(() => {\n setWidth(window.innerWidth);\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n\n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {\n setSelectedCurrency(data?.currency_abrv);\n }}\n />\n {/* \n width <= 991 && setDropdown((prev) => !prev)}\n onMouseEnter={() => width >= 991 && setDropdown(true)}\n onMouseLeave={() => width >= 991 && setDropdown(false)}>\n {selectedCurrency ? selectedCurrency : \"\"}\n \n \n \n \n\n
      \n {currencies?.map((currency) => (\n {\n selectCurrency(currency.currency_abrv);\n }}>\n {currency?.currency_abrv}\n \n ))}\n
    \n
    */}\n
    \n
    \n
    \n
    \n \n\n
    \n \n
    \n\n
    \n \n
    \n \n );\n};\n\nexport default FinancialReports;\n","export const G = 'G';\nexport const Svg = 'SVG';\nexport const View = 'VIEW';\nexport const Text = 'TEXT';\nexport const Link = 'LINK';\nexport const Page = 'PAGE';\nexport const Note = 'NOTE';\nexport const Path = 'PATH';\nexport const Rect = 'RECT';\nexport const Line = 'LINE';\nexport const Stop = 'STOP';\nexport const Defs = 'DEFS';\nexport const Image = 'IMAGE';\nexport const Tspan = 'TSPAN';\nexport const Canvas = 'CANVAS';\nexport const Circle = 'CIRCLE';\nexport const Ellipse = 'ELLIPSE';\nexport const Polygon = 'POLYGON';\nexport const Document = 'DOCUMENT';\nexport const Polyline = 'POLYLINE';\nexport const ClipPath = 'CLIP_PATH';\nexport const TextInstance = 'TEXT_INSTANCE';\nexport const LinearGradient = 'LINEAR_GRADIENT';\nexport const RadialGradient = 'RADIAL_GRADIENT';\n","// Node back-compat.\nconst ENCODING_MAPPING = {\n utf16le: 'utf-16le',\n ucs2: 'utf-16le',\n utf16be: 'utf-16be'\n}\n\nexport class DecodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.pos = 0;\n this.length = this.buffer.length;\n }\n\n readString(length, encoding = 'ascii') {\n encoding = ENCODING_MAPPING[encoding] || encoding;\n\n let buf = this.readBuffer(length);\n try {\n let decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n } catch (err) {\n return buf;\n }\n }\n\n readBuffer(length) {\n return this.buffer.slice(this.pos, (this.pos += length));\n }\n\n readUInt24BE() {\n return (this.readUInt16BE() << 8) + this.readUInt8();\n }\n\n readUInt24LE() {\n return this.readUInt16LE() + (this.readUInt8() << 16);\n }\n\n readInt24BE() {\n return (this.readInt16BE() << 8) + this.readUInt8();\n }\n\n readInt24LE() {\n return this.readUInt16LE() + (this.readInt8() << 16);\n }\n}\n\nDecodeStream.TYPES = {\n UInt8: 1,\n UInt16: 2,\n UInt24: 3,\n UInt32: 4,\n Int8: 1,\n Int16: 2,\n Int24: 3,\n Int32: 4,\n Float: 4,\n Double: 8\n};\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'get') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n DecodeStream.prototype['read' + type + (bytes === 1 ? '' : 'BE')] = function () {\n const ret = this.view[key](this.pos, false);\n this.pos += bytes;\n return ret;\n };\n\n if (bytes !== 1) {\n DecodeStream.prototype['read' + type + 'LE'] = function () {\n const ret = this.view[key](this.pos, true);\n this.pos += bytes;\n return ret;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\n\nconst textEncoder = new TextEncoder();\nconst isBigEndian = new Uint8Array(new Uint16Array([0x1234]).buffer)[0] == 0x12;\n\nexport class EncodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n this.pos = 0;\n }\n\n writeBuffer(buffer) {\n this.buffer.set(buffer, this.pos);\n this.pos += buffer.length;\n }\n\n writeString(string, encoding = 'ascii') {\n let buf;\n switch (encoding) {\n case 'utf16le':\n case 'utf16-le':\n case 'ucs2': // node treats this the same as utf16.\n buf = stringToUtf16(string, isBigEndian);\n break;\n\n case 'utf16be':\n case 'utf16-be':\n buf = stringToUtf16(string, !isBigEndian);\n break;\n\n case 'utf8':\n buf = textEncoder.encode(string);\n break;\n\n case 'ascii':\n buf = stringToAscii(string);\n break;\n\n default:\n throw new Error(`Unsupported encoding: ${encoding}`);\n }\n\n this.writeBuffer(buf);\n }\n\n writeUInt24BE(val) {\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = val & 0xff;\n }\n\n writeUInt24LE(val) {\n this.buffer[this.pos++] = val & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n }\n\n writeInt24BE(val) {\n if (val >= 0) {\n this.writeUInt24BE(val);\n } else {\n this.writeUInt24BE(val + 0xffffff + 1);\n }\n }\n\n writeInt24LE(val) {\n if (val >= 0) {\n this.writeUInt24LE(val);\n } else {\n this.writeUInt24LE(val + 0xffffff + 1);\n }\n }\n\n fill(val, length) {\n if (length < this.buffer.length) {\n this.buffer.fill(val, this.pos, this.pos + length);\n this.pos += length;\n } else {\n const buf = new Uint8Array(length);\n buf.fill(val);\n this.writeBuffer(buf);\n }\n }\n}\n\nfunction stringToUtf16(string, swap) {\n let buf = new Uint16Array(string.length);\n for (let i = 0; i < string.length; i++) {\n let code = string.charCodeAt(i);\n if (swap) {\n code = (code >> 8) | ((code & 0xff) << 8);\n }\n buf[i] = code;\n }\n return new Uint8Array(buf.buffer);\n}\n\nfunction stringToAscii(string) {\n let buf = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n // Match node.js behavior - encoding allows 8-bit rather than 7-bit.\n buf[i] = string.charCodeAt(i);\n }\n return buf;\n}\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'set') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n EncodeStream.prototype['write' + type + (bytes === 1 ? '' : 'BE')] = function (value) {\n this.view[key](this.pos, value, false);\n this.pos += bytes;\n };\n\n if (bytes !== 1) {\n EncodeStream.prototype['write' + type + 'LE'] = function (value) {\n this.view[key](this.pos, value, true);\n this.pos += bytes;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {EncodeStream} from './EncodeStream.js';\n\nexport class Base {\n fromBuffer(buffer) {\n let stream = new DecodeStream(buffer);\n return this.decode(stream);\n }\n\n toBuffer(value) {\n let size = this.size(value);\n let buffer = new Uint8Array(size);\n let stream = new EncodeStream(buffer);\n this.encode(stream, value);\n return buffer;\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {Base} from './Base.js';\n\nclass NumberT extends Base {\n constructor(type, endian = 'BE') {\n super();\n this.type = type;\n this.endian = endian;\n this.fn = this.type;\n if (this.type[this.type.length - 1] !== '8') {\n this.fn += this.endian;\n }\n }\n\n size() {\n return DecodeStream.TYPES[this.type];\n }\n\n decode(stream) {\n return stream[`read${this.fn}`]();\n }\n\n encode(stream, val) {\n return stream[`write${this.fn}`](val);\n }\n}\n\nexport {NumberT as Number};\n\nexport const uint8 = new NumberT('UInt8');\nexport const uint16be = new NumberT('UInt16', 'BE');\nexport const uint16 = uint16be;\nexport const uint16le = new NumberT('UInt16', 'LE');\nexport const uint24be = new NumberT('UInt24', 'BE');\nexport const uint24 = uint24be;\nexport const uint24le = new NumberT('UInt24', 'LE');\nexport const uint32be = new NumberT('UInt32', 'BE');\nexport const uint32 = uint32be;\nexport const uint32le = new NumberT('UInt32', 'LE');\nexport const int8 = new NumberT('Int8');\nexport const int16be = new NumberT('Int16', 'BE');\nexport const int16 = int16be;\nexport const int16le = new NumberT('Int16', 'LE');\nexport const int24be = new NumberT('Int24', 'BE');\nexport const int24 = int24be;\nexport const int24le = new NumberT('Int24', 'LE');\nexport const int32be = new NumberT('Int32', 'BE');\nexport const int32 = int32be;\nexport const int32le = new NumberT('Int32', 'LE');\nexport const floatbe = new NumberT('Float', 'BE');\nexport const float = floatbe;\nexport const floatle = new NumberT('Float', 'LE');\nexport const doublebe = new NumberT('Double', 'BE');\nexport const double = doublebe;\nexport const doublele = new NumberT('Double', 'LE');\n\nexport class Fixed extends NumberT {\n constructor(size, endian, fracBits = size >> 1) {\n super(`Int${size}`, endian);\n this._point = 1 << fracBits;\n }\n\n decode(stream) {\n return super.decode(stream) / this._point;\n }\n\n encode(stream, val) {\n return super.encode(stream, (val * this._point) | 0);\n }\n}\n\nexport const fixed16be = new Fixed(16, 'BE');\nexport const fixed16 = fixed16be;\nexport const fixed16le = new Fixed(16, 'LE');\nexport const fixed32be = new Fixed(32, 'BE');\nexport const fixed32 = fixed32be;\nexport const fixed32le = new Fixed(32, 'LE');\n","import {Number as NumberT} from './Number.js';\n\nexport function resolveLength(length, stream, parent) {\n let res;\n if (typeof length === 'number') {\n res = length;\n\n } else if (typeof length === 'function') {\n res = length.call(parent, parent);\n\n } else if (parent && (typeof length === 'string')) {\n res = parent[length];\n\n } else if (stream && length instanceof NumberT) {\n res = length.decode(stream);\n }\n\n if (isNaN(res)) {\n throw new Error('Not a fixed size');\n }\n\n return res;\n};\n\nexport class PropertyDescriptor {\n constructor(opts = {}) {\n this.enumerable = true;\n this.configurable = true;\n\n for (let key in opts) {\n const val = opts[key];\n this[key] = val;\n }\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass ArrayT extends Base {\n constructor(type, length, lengthType = 'count') {\n super();\n this.type = type;\n this.length = length;\n this.lengthType = lengthType;\n }\n\n decode(stream, parent) {\n let length;\n const { pos } = stream;\n\n const res = [];\n let ctx = parent;\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n }\n\n if (this.length instanceof NumberT) {\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n ctx = res;\n }\n\n if ((length == null) || (this.lengthType === 'bytes')) {\n const target = (length != null) ?\n stream.pos + length\n : (parent != null ? parent._length : undefined) ?\n parent._startOffset + parent._length\n :\n stream.length;\n\n while (stream.pos < target) {\n res.push(this.type.decode(stream, ctx));\n }\n\n } else {\n for (let i = 0, end = length; i < end; i++) {\n res.push(this.type.decode(stream, ctx));\n }\n }\n\n return res;\n }\n\n size(array, ctx, includePointers = true) {\n if (!array) {\n return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n }\n\n let size = 0;\n if (this.length instanceof NumberT) {\n size += this.length.size();\n ctx = {parent: ctx, pointerSize: 0};\n }\n\n for (let item of array) {\n size += this.type.size(item, ctx);\n }\n\n if (ctx && includePointers && this.length instanceof NumberT) {\n size += ctx.pointerSize;\n }\n \n return size;\n }\n\n encode(stream, array, parent) {\n let ctx = parent;\n if (this.length instanceof NumberT) {\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent\n };\n\n ctx.pointerOffset = stream.pos + this.size(array, ctx, false);\n this.length.encode(stream, array.length);\n }\n\n for (let item of array) {\n this.type.encode(stream, item, ctx);\n }\n\n if (this.length instanceof NumberT) {\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n }\n}\n\nexport {ArrayT as Array};\n","import {Array as ArrayT} from './Array.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class LazyArray extends ArrayT {\n decode(stream, parent) {\n const { pos } = stream;\n const length = utils.resolveLength(this.length, stream, parent);\n\n if (this.length instanceof NumberT) {\n parent = {\n parent,\n _startOffset: pos,\n _currentOffset: 0,\n _length: length\n };\n }\n\n const res = new LazyArrayValue(this.type, length, stream, parent);\n\n stream.pos += length * this.type.size(null, parent);\n return res;\n }\n\n size(val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.size(val, ctx);\n }\n\n encode(stream, val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.encode(stream, val, ctx);\n }\n}\n\nclass LazyArrayValue {\n constructor(type, length, stream, ctx) {\n this.type = type;\n this.length = length;\n this.stream = stream;\n this.ctx = ctx;\n this.base = this.stream.pos;\n this.items = [];\n }\n\n get(index) {\n if ((index < 0) || (index >= this.length)) {\n return undefined;\n }\n\n if (this.items[index] == null) {\n const { pos } = this.stream;\n this.stream.pos = this.base + (this.type.size(null, this.ctx) * index);\n this.items[index] = this.type.decode(this.stream, this.ctx);\n this.stream.pos = pos;\n }\n\n return this.items[index];\n }\n\n toArray() {\n const result = [];\n for (let i = 0, end = this.length; i < end; i++) {\n result.push(this.get(i));\n }\n return result;\n }\n}\n","import {Base} from './Base.js';\n\nexport class Bitfield extends Base {\n constructor(type, flags = []) {\n super();\n this.type = type;\n this.flags = flags;\n }\n\n decode(stream) {\n const val = this.type.decode(stream);\n\n const res = {};\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n res[flag] = !!(val & (1 << i));\n }\n }\n\n return res;\n }\n\n size() {\n return this.type.size();\n }\n\n encode(stream, keys) {\n let val = 0;\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n if (keys[flag]) { val |= (1 << i); }\n }\n }\n\n return this.type.encode(stream, val);\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class BufferT extends Base {\n constructor(length) {\n super();\n this.length = length;\n }\n \n decode(stream, parent) {\n const length = utils.resolveLength(this.length, stream, parent);\n return stream.readBuffer(length);\n }\n\n size(val, parent) {\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let len = val.length;\n if (this.length instanceof NumberT) {\n len += this.length.size();\n }\n\n return len;\n }\n\n encode(stream, buf, parent) {\n if (this.length instanceof NumberT) {\n this.length.encode(stream, buf.length);\n }\n\n return stream.writeBuffer(buf);\n }\n}\n\nexport {BufferT as Buffer};\n","import {Base} from './Base.js';\n\nexport class Optional extends Base {\n constructor(type, condition = true) {\n super();\n this.type = type;\n this.condition = condition;\n }\n\n decode(stream, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.decode(stream, parent);\n }\n }\n\n size(val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.size(val, parent);\n } else {\n return 0;\n }\n }\n\n encode(stream, val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.encode(stream, val, parent);\n }\n }\n}\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Reserved extends Base {\n constructor(type, count = 1) {\n super();\n this.type = type;\n this.count = count;\n }\n decode(stream, parent) {\n stream.pos += this.size(null, parent);\n return undefined;\n }\n\n size(data, parent) {\n const count = utils.resolveLength(this.count, null, parent);\n return this.type.size() * count;\n }\n\n encode(stream, val, parent) {\n return stream.fill(0, this.size(val, parent));\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass StringT extends Base {\n constructor(length, encoding = 'ascii') {\n super();\n this.length = length;\n this.encoding = encoding;\n }\n\n decode(stream, parent) {\n let length, pos;\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent, parent) || 'ascii';\n }\n let width = encodingWidth(encoding);\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n } else {\n let buffer;\n ({buffer, length, pos} = stream);\n\n while ((pos < length - width + 1) &&\n (buffer[pos] !== 0x00 ||\n (width === 2 && buffer[pos+1] !== 0x00)\n )) {\n pos += width;\n }\n\n length = pos - stream.pos;\n }\n\n\n const string = stream.readString(length, encoding);\n\n if ((this.length == null) && (stream.pos < stream.length)) {\n stream.pos+=width;\n }\n\n return string;\n }\n\n size(val, parent) {\n // Use the defined value if no value was given\n if (val === undefined || val === null) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (encoding === 'utf16be') {\n encoding = 'utf16le';\n }\n\n let size = byteLength(val, encoding);\n if (this.length instanceof NumberT) {\n size += this.length.size();\n }\n\n if ((this.length == null)) {\n size += encodingWidth(encoding);\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (this.length instanceof NumberT) {\n this.length.encode(stream, byteLength(val, encoding));\n }\n\n stream.writeString(val, encoding);\n\n if ((this.length == null)) {\n return encodingWidth(encoding) == 2 ?\n stream.writeUInt16LE(0x0000) :\n stream.writeUInt8(0x00);\n }\n }\n}\n\nfunction encodingWidth(encoding) {\n switch(encoding) {\n case 'ascii':\n case 'utf8': // utf8 is a byte-based encoding for zero-term string\n return 1;\n case 'utf16le':\n case 'utf16-le':\n case 'utf-16be':\n case 'utf-16le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return 2;\n default:\n //TODO: assume all other encodings are 1-byters\n //throw new Error('Unknown encoding ' + encoding);\n return 1;\n }\n}\n\nfunction byteLength(string, encoding) {\n switch (encoding) {\n case 'ascii':\n return string.length;\n case 'utf8':\n let len = 0;\n for (let i = 0; i < string.length; i++) {\n let c = string.charCodeAt(i);\n\n if (c >= 0xd800 && c <= 0xdbff && i < string.length - 1) {\n let c2 = string.charCodeAt(++i);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = ((c & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n } else {\n // unmatched surrogate.\n i--;\n }\n }\n\n if ((c & 0xffffff80) === 0) {\n len++;\n } else if ((c & 0xfffff800) === 0) {\n len += 2;\n } else if ((c & 0xffff0000) === 0) {\n len += 3;\n } else if ((c & 0xffe00000) === 0) {\n len += 4;\n }\n }\n return len;\n case 'utf16le':\n case 'utf16-le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return string.length * 2;\n default:\n throw new Error('Unknown encoding ' + encoding);\n }\n}\n\nexport {StringT as String};\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Struct extends Base {\n constructor(fields = {}) {\n super();\n this.fields = fields;\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n this._parseFields(stream, res, this.fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n _setup(stream, parent, length) {\n const res = {};\n\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: stream.pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n return res;\n }\n\n _parseFields(stream, res, fields) {\n for (let key in fields) {\n var val;\n const type = fields[key];\n if (typeof type === 'function') {\n val = type.call(res, res);\n } else {\n val = type.decode(stream, res);\n }\n\n if (val !== undefined) {\n if (val instanceof utils.PropertyDescriptor) {\n Object.defineProperty(res, key, val);\n } else {\n res[key] = val;\n }\n }\n\n res._currentOffset = stream.pos - res._startOffset;\n }\n\n }\n\n size(val, parent, includePointers = true) {\n if (val == null) { val = {}; }\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n let size = 0;\n for (let key in this.fields) {\n const type = this.fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n for (let key in this.fields) {\n type = this.fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import {Struct} from './Struct.js';\n\nconst getPath = (object, pathArray) => {\n return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object);\n};\n\nexport class VersionedStruct extends Struct {\n constructor(type, versions = {}) {\n super();\n this.type = type;\n this.versions = versions;\n if (typeof type === 'string') {\n this.versionPath = type.split('.');\n }\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n\n if (typeof this.type === 'string') {\n res.version = getPath(parent, this.versionPath);\n } else {\n res.version = this.type.decode(stream);\n }\n\n if (this.versions.header) {\n this._parseFields(stream, res, this.versions.header);\n }\n\n const fields = this.versions[res.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${res.version}`);\n }\n\n if (fields instanceof VersionedStruct) {\n return fields.decode(stream, parent);\n }\n\n this._parseFields(stream, res, fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n size(val, parent, includePointers = true) {\n let key, type;\n if (!val) {\n throw new Error('Not a fixed size');\n }\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n let size = 0;\n if (typeof this.type !== 'string') {\n size += this.type.size(val.version, ctx);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${val.version}`);\n }\n\n for (key in fields) {\n type = fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let key, type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n if (typeof this.type !== 'string') {\n this.type.encode(stream, val.version);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n for (key in fields) {\n type = fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import * as utils from './utils.js';\nimport {Base} from './Base.js';\n\nexport class Pointer extends Base {\n constructor(offsetType, type, options = {}) {\n super();\n this.offsetType = offsetType;\n this.type = type;\n this.options = options;\n if (this.type === 'void') { this.type = null; }\n if (this.options.type == null) { this.options.type = 'local'; }\n if (this.options.allowNull == null) { this.options.allowNull = true; }\n if (this.options.nullValue == null) { this.options.nullValue = 0; }\n if (this.options.lazy == null) { this.options.lazy = false; }\n if (this.options.relativeTo) {\n if (typeof this.options.relativeTo !== 'function') {\n throw new Error('relativeTo option must be a function');\n }\n this.relativeToGetter = options.relativeTo;\n }\n }\n\n decode(stream, ctx) {\n const offset = this.offsetType.decode(stream, ctx);\n\n // handle NULL pointers\n if ((offset === this.options.nullValue) && this.options.allowNull) {\n return null;\n }\n\n let relative;\n switch (this.options.type) {\n case 'local': relative = ctx._startOffset; break;\n case 'immediate': relative = stream.pos - this.offsetType.size(); break;\n case 'parent': relative = ctx.parent._startOffset; break;\n default:\n var c = ctx;\n while (c.parent) {\n c = c.parent;\n }\n\n relative = c._startOffset || 0;\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(ctx);\n }\n\n const ptr = offset + relative;\n\n if (this.type != null) {\n let val = null;\n const decodeValue = () => {\n if (val != null) { return val; }\n\n const { pos } = stream;\n stream.pos = ptr;\n val = this.type.decode(stream, ctx);\n stream.pos = pos;\n return val;\n };\n\n // If this is a lazy pointer, define a getter to decode only when needed.\n // This obviously only works when the pointer is contained by a Struct.\n if (this.options.lazy) {\n return new utils.PropertyDescriptor({\n get: decodeValue});\n }\n\n return decodeValue();\n } else {\n return ptr;\n }\n }\n\n size(val, ctx) {\n const parent = ctx;\n switch (this.options.type) {\n case 'local': case 'immediate':\n break;\n case 'parent':\n ctx = ctx.parent;\n break;\n default: // global\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n if (val && ctx) {\n // Must be written as two separate lines rather than += in case `type.size` mutates ctx.pointerSize.\n let size = type.size(val, parent);\n ctx.pointerSize += size;\n }\n\n return this.offsetType.size();\n }\n\n encode(stream, val, ctx) {\n let relative;\n const parent = ctx;\n if ((val == null)) {\n this.offsetType.encode(stream, this.options.nullValue);\n return;\n }\n\n switch (this.options.type) {\n case 'local':\n relative = ctx.startOffset;\n break;\n case 'immediate':\n relative = stream.pos + this.offsetType.size(val, parent);\n break;\n case 'parent':\n ctx = ctx.parent;\n relative = ctx.startOffset;\n break;\n default: // global\n relative = 0;\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(parent.val);\n }\n\n this.offsetType.encode(stream, ctx.pointerOffset - relative);\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n ctx.pointers.push({\n type,\n val,\n parent\n });\n\n return ctx.pointerOffset += type.size(val, parent);\n }\n}\n\n// A pointer whose type is determined at decode time\nexport class VoidPointer {\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexport { _define_property as _ };\n","{\"categories\":[\"Cc\",\"Zs\",\"Po\",\"Sc\",\"Ps\",\"Pe\",\"Sm\",\"Pd\",\"Nd\",\"Lu\",\"Sk\",\"Pc\",\"Ll\",\"So\",\"Lo\",\"Pi\",\"Cf\",\"No\",\"Pf\",\"Lt\",\"Lm\",\"Mn\",\"Me\",\"Mc\",\"Nl\",\"Zl\",\"Zp\",\"Cs\",\"Co\"],\"combiningClasses\":[\"Not_Reordered\",\"Above\",\"Above_Right\",\"Below\",\"Attached_Above_Right\",\"Attached_Below\",\"Overlay\",\"Iota_Subscript\",\"Double_Below\",\"Double_Above\",\"Below_Right\",\"Above_Left\",\"CCC10\",\"CCC11\",\"CCC12\",\"CCC13\",\"CCC14\",\"CCC15\",\"CCC16\",\"CCC17\",\"CCC18\",\"CCC19\",\"CCC20\",\"CCC21\",\"CCC22\",\"CCC23\",\"CCC24\",\"CCC25\",\"CCC30\",\"CCC31\",\"CCC32\",\"CCC27\",\"CCC28\",\"CCC29\",\"CCC33\",\"CCC34\",\"CCC35\",\"CCC36\",\"Nukta\",\"Virama\",\"CCC84\",\"CCC91\",\"CCC103\",\"CCC107\",\"CCC118\",\"CCC122\",\"CCC129\",\"CCC130\",\"CCC132\",\"Attached_Above\",\"Below_Left\",\"Left\",\"Kana_Voicing\",\"CCC26\",\"Right\"],\"scripts\":[\"Common\",\"Latin\",\"Bopomofo\",\"Inherited\",\"Greek\",\"Coptic\",\"Cyrillic\",\"Armenian\",\"Hebrew\",\"Arabic\",\"Syriac\",\"Thaana\",\"Nko\",\"Samaritan\",\"Mandaic\",\"Devanagari\",\"Bengali\",\"Gurmukhi\",\"Gujarati\",\"Oriya\",\"Tamil\",\"Telugu\",\"Kannada\",\"Malayalam\",\"Sinhala\",\"Thai\",\"Lao\",\"Tibetan\",\"Myanmar\",\"Georgian\",\"Hangul\",\"Ethiopic\",\"Cherokee\",\"Canadian_Aboriginal\",\"Ogham\",\"Runic\",\"Tagalog\",\"Hanunoo\",\"Buhid\",\"Tagbanwa\",\"Khmer\",\"Mongolian\",\"Limbu\",\"Tai_Le\",\"New_Tai_Lue\",\"Buginese\",\"Tai_Tham\",\"Balinese\",\"Sundanese\",\"Batak\",\"Lepcha\",\"Ol_Chiki\",\"Braille\",\"Glagolitic\",\"Tifinagh\",\"Han\",\"Hiragana\",\"Katakana\",\"Yi\",\"Lisu\",\"Vai\",\"Bamum\",\"Syloti_Nagri\",\"Phags_Pa\",\"Saurashtra\",\"Kayah_Li\",\"Rejang\",\"Javanese\",\"Cham\",\"Tai_Viet\",\"Meetei_Mayek\",\"null\",\"Linear_B\",\"Lycian\",\"Carian\",\"Old_Italic\",\"Gothic\",\"Old_Permic\",\"Ugaritic\",\"Old_Persian\",\"Deseret\",\"Shavian\",\"Osmanya\",\"Osage\",\"Elbasan\",\"Caucasian_Albanian\",\"Linear_A\",\"Cypriot\",\"Imperial_Aramaic\",\"Palmyrene\",\"Nabataean\",\"Hatran\",\"Phoenician\",\"Lydian\",\"Meroitic_Hieroglyphs\",\"Meroitic_Cursive\",\"Kharoshthi\",\"Old_South_Arabian\",\"Old_North_Arabian\",\"Manichaean\",\"Avestan\",\"Inscriptional_Parthian\",\"Inscriptional_Pahlavi\",\"Psalter_Pahlavi\",\"Old_Turkic\",\"Old_Hungarian\",\"Hanifi_Rohingya\",\"Old_Sogdian\",\"Sogdian\",\"Elymaic\",\"Brahmi\",\"Kaithi\",\"Sora_Sompeng\",\"Chakma\",\"Mahajani\",\"Sharada\",\"Khojki\",\"Multani\",\"Khudawadi\",\"Grantha\",\"Newa\",\"Tirhuta\",\"Siddham\",\"Modi\",\"Takri\",\"Ahom\",\"Dogra\",\"Warang_Citi\",\"Nandinagari\",\"Zanabazar_Square\",\"Soyombo\",\"Pau_Cin_Hau\",\"Bhaiksuki\",\"Marchen\",\"Masaram_Gondi\",\"Gunjala_Gondi\",\"Makasar\",\"Cuneiform\",\"Egyptian_Hieroglyphs\",\"Anatolian_Hieroglyphs\",\"Mro\",\"Bassa_Vah\",\"Pahawh_Hmong\",\"Medefaidrin\",\"Miao\",\"Tangut\",\"Nushu\",\"Duployan\",\"SignWriting\",\"Nyiakeng_Puachue_Hmong\",\"Wancho\",\"Mende_Kikakui\",\"Adlam\"],\"eaw\":[\"N\",\"Na\",\"A\",\"W\",\"H\",\"F\"]}","import base64 from 'base64-js';\nimport UnicodeTrie from 'unicode-trie';\nimport data from './data.json';\n\nconst trie = new UnicodeTrie(base64.toByteArray(require('fs').readFileSync(__dirname + '/data.trie', 'base64')));\n\nconst log2 = Math.log2 || (n => Math.log(n) / Math.LN2);\nconst bits = (n) => ((log2(n) + 1) | 0);\n\n// compute the number of bits stored for each field\nconst CATEGORY_BITS = bits(data.categories.length - 1);\nconst COMBINING_BITS = bits(data.combiningClasses.length - 1);\nconst SCRIPT_BITS = bits(data.scripts.length - 1);\nconst EAW_BITS = bits(data.eaw.length - 1);\nconst NUMBER_BITS = 10;\n\n// compute shift and mask values for each field\nconst CATEGORY_SHIFT = COMBINING_BITS + SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\nconst COMBINING_SHIFT = SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\nconst SCRIPT_SHIFT = EAW_BITS + NUMBER_BITS;\nconst EAW_SHIFT = NUMBER_BITS;\nconst CATEGORY_MASK = (1 << CATEGORY_BITS) - 1;\nconst COMBINING_MASK = (1 << COMBINING_BITS) - 1;\nconst SCRIPT_MASK = (1 << SCRIPT_BITS) - 1;\nconst EAW_MASK = (1 << EAW_BITS) - 1;\nconst NUMBER_MASK = (1 << NUMBER_BITS) - 1;\n\nexport function getCategory(codePoint) {\n const val = trie.get(codePoint);\n return data.categories[(val >> CATEGORY_SHIFT) & CATEGORY_MASK];\n}\n\nexport function getCombiningClass(codePoint) {\n const val = trie.get(codePoint);\n return data.combiningClasses[(val >> COMBINING_SHIFT) & COMBINING_MASK];\n}\n\nexport function getScript(codePoint) {\n const val = trie.get(codePoint);\n return data.scripts[(val >> SCRIPT_SHIFT) & SCRIPT_MASK];\n}\n\nexport function getEastAsianWidth(codePoint) {\n const val = trie.get(codePoint);\n return data.eaw[(val >> EAW_SHIFT) & EAW_MASK];\n}\n\nexport function getNumericValue(codePoint) {\n let val = trie.get(codePoint);\n let num = val & NUMBER_MASK;\n\n if (num === 0) {\n return null;\n } else if (num <= 50) {\n return num - 1;\n } else if (num < 0x1e0) {\n const numerator = (num >> 4) - 12;\n const denominator = (num & 0xf) + 1;\n return numerator / denominator;\n } else if (num < 0x300) {\n val = (num >> 5) - 14;\n let exp = (num & 0x1f) + 2;\n\n while (exp > 0) {\n val *= 10;\n exp--;\n }\n return val;\n } else {\n val = (num >> 2) - 0xbf;\n let exp = (num & 3) + 1;\n while (exp > 0) {\n val *= 60;\n exp--;\n }\n return val;\n }\n}\n\nexport function isAlphabetic(codePoint) {\n const category = getCategory(codePoint);\n return (\n category === 'Lu' ||\n category === 'Ll' ||\n category === 'Lt' ||\n category === 'Lm' ||\n category === 'Lo' ||\n category === 'Nl'\n )\n}\n\nexport function isDigit(codePoint) {\n return getCategory(codePoint) === 'Nd'\n}\n\nexport function isPunctuation(codePoint) {\n const category = getCategory(codePoint);\n return (\n category === 'Pc' ||\n category === 'Pd' ||\n category === 'Pe' ||\n category === 'Pf' ||\n category === 'Pi' ||\n category === 'Po' ||\n category === 'Ps'\n );\n}\n\nexport function isLowerCase(codePoint) {\n return getCategory(codePoint) === 'Ll';\n}\n\nexport function isUpperCase(codePoint) {\n return getCategory(codePoint) === 'Lu'\n}\n\nexport function isTitleCase(codePoint) {\n return getCategory(codePoint) === 'Lt'\n}\n\nexport function isWhiteSpace(codePoint) {\n const category = getCategory(codePoint);\n return (\n category === 'Zs' ||\n category === 'Zl' ||\n category === 'Zp'\n );\n}\n\nexport function isBaseForm(codePoint) {\n const category = getCategory(codePoint);\n return (\n category === 'Nd' ||\n category === 'No' ||\n category === 'Nl' ||\n category === 'Lu' ||\n category === 'Ll' ||\n category === 'Lt' ||\n category === 'Lm' ||\n category === 'Lo' ||\n category === 'Me' ||\n category === 'Mc'\n )\n}\n\nexport function isMark(codePoint) {\n const category = getCategory(codePoint);\n return (\n category === 'Mn' ||\n category === 'Me' ||\n category === 'Mc'\n );\n}\n\n// Backwards compatibility.\nexport default {\n getCategory,\n getCombiningClass,\n getScript,\n getEastAsianWidth,\n getNumericValue,\n isAlphabetic,\n isDigit,\n isPunctuation,\n isLowerCase,\n isUpperCase,\n isTitleCase,\n isWhiteSpace,\n isBaseForm,\n isMark\n};\n","import {DecodeStream} from 'restructure';\n\nexport let logErrors = false;\n\nlet formats = [];\nexport function registerFormat(format) {\n formats.push(format);\n};\n\nexport function create(buffer, postscriptName) {\n for (let i = 0; i < formats.length; i++) {\n let format = formats[i];\n if (format.probe(buffer)) {\n let font = new format(new DecodeStream(buffer));\n if (postscriptName) {\n return font.getFont(postscriptName);\n }\n\n return font;\n }\n }\n\n throw new Error('Unknown font format');\n};\n\nexport let defaultLanguage = 'en';\nexport function setDefaultLanguage(lang = 'en') {\n defaultLanguage = lang;\n};\n","/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */\nexport function cache(target, key, descriptor) {\n if (descriptor.get) {\n let get = descriptor.get;\n descriptor.get = function() {\n let value = get.call(this);\n Object.defineProperty(this, key, { value });\n return value;\n };\n } else if (typeof descriptor.value === 'function') {\n let fn = descriptor.value;\n\n return {\n get() {\n let cache = new Map;\n function memoized(...args) {\n let key = args.length > 0 ? args[0] : 'value';\n if (cache.has(key)) {\n return cache.get(key);\n }\n\n let result = fn.apply(this, args);\n cache.set(key, result);\n return result;\n };\n\n Object.defineProperty(this, key, {value: memoized});\n return memoized;\n }\n };\n }\n}\n","import * as r from 'restructure';\n\nlet SubHeader = new r.Struct({\n firstCode: r.uint16,\n entryCount: r.uint16,\n idDelta: r.int16,\n idRangeOffset: r.uint16\n});\n\nlet CmapGroup = new r.Struct({\n startCharCode: r.uint32,\n endCharCode: r.uint32,\n glyphID: r.uint32\n});\n\nlet UnicodeValueRange = new r.Struct({\n startUnicodeValue: r.uint24,\n additionalCount: r.uint8\n});\n\nlet UVSMapping = new r.Struct({\n unicodeValue: r.uint24,\n glyphID: r.uint16\n});\n\nlet DefaultUVS = new r.Array(UnicodeValueRange, r.uint32);\nlet NonDefaultUVS = new r.Array(UVSMapping, r.uint32);\n\nlet VarSelectorRecord = new r.Struct({\n varSelector: r.uint24,\n defaultUVS: new r.Pointer(r.uint32, DefaultUVS, {type: 'parent'}),\n nonDefaultUVS: new r.Pointer(r.uint32, NonDefaultUVS, {type: 'parent'})\n});\n\nlet CmapSubtable = new r.VersionedStruct(r.uint16, {\n 0: { // Byte encoding\n length: r.uint16, // Total table length in bytes (set to 262 for format 0)\n language: r.uint16, // Language code for this encoding subtable, or zero if language-independent\n codeMap: new r.LazyArray(r.uint8, 256)\n },\n\n 2: { // High-byte mapping (CJK)\n length: r.uint16,\n language: r.uint16,\n subHeaderKeys: new r.Array(r.uint16, 256),\n subHeaderCount: t => Math.max.apply(Math, t.subHeaderKeys),\n subHeaders: new r.LazyArray(SubHeader, 'subHeaderCount'),\n glyphIndexArray: new r.LazyArray(r.uint16, 'subHeaderCount')\n },\n\n 4: { // Segment mapping to delta values\n length: r.uint16, // Total table length in bytes\n language: r.uint16, // Language code\n segCountX2: r.uint16,\n segCount: t => t.segCountX2 >> 1,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n endCode: new r.LazyArray(r.uint16, 'segCount'),\n reservedPad: new r.Reserved(r.uint16), // This value should be zero\n startCode: new r.LazyArray(r.uint16, 'segCount'),\n idDelta: new r.LazyArray(r.int16, 'segCount'),\n idRangeOffset: new r.LazyArray(r.uint16, 'segCount'),\n glyphIndexArray: new r.LazyArray(r.uint16, t => (t.length - t._currentOffset) / 2)\n },\n\n 6: { // Trimmed table\n length: r.uint16,\n language: r.uint16,\n firstCode: r.uint16,\n entryCount: r.uint16,\n glyphIndices: new r.LazyArray(r.uint16, 'entryCount')\n },\n\n 8: { // mixed 16-bit and 32-bit coverage\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint16,\n is32: new r.LazyArray(r.uint8, 8192),\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n\n 10: { // Trimmed Array\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n firstCode: r.uint32,\n entryCount: r.uint32,\n glyphIndices: new r.LazyArray(r.uint16, 'numChars')\n },\n\n 12: { // Segmented coverage\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n\n 13: { // Many-to-one range mappings (same as 12 except for group.startGlyphID)\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n\n 14: { // Unicode Variation Sequences\n length: r.uint32,\n numRecords: r.uint32,\n varSelectors: new r.LazyArray(VarSelectorRecord, 'numRecords')\n }\n});\n\nlet CmapEntry = new r.Struct({\n platformID: r.uint16, // Platform identifier\n encodingID: r.uint16, // Platform-specific encoding identifier\n table: new r.Pointer(r.uint32, CmapSubtable, {type: 'parent', lazy: true})\n});\n\n// character to glyph mapping\nexport default new r.Struct({\n version: r.uint16,\n numSubtables: r.uint16,\n tables: new r.Array(CmapEntry, 'numSubtables')\n});\n","import * as r from 'restructure';\n\n// font header\nexport default new r.Struct({\n version: r.int32, // 0x00010000 (version 1.0)\n revision: r.int32, // set by font manufacturer\n checkSumAdjustment: r.uint32,\n magicNumber: r.uint32, // set to 0x5F0F3CF5\n flags: r.uint16,\n unitsPerEm: r.uint16, // range from 64 to 16384\n created: new r.Array(r.int32, 2),\n modified: new r.Array(r.int32, 2),\n xMin: r.int16, // for all glyph bounding boxes\n yMin: r.int16, // for all glyph bounding boxes\n xMax: r.int16, // for all glyph bounding boxes\n yMax: r.int16, // for all glyph bounding boxes\n macStyle: new r.Bitfield(r.uint16, [\n 'bold', 'italic', 'underline', 'outline',\n 'shadow', 'condensed', 'extended'\n ]),\n lowestRecPPEM: r.uint16, // smallest readable size in pixels\n fontDirectionHint: r.int16,\n indexToLocFormat: r.int16, // 0 for short offsets, 1 for long\n glyphDataFormat: r.int16 // 0 for current format\n});\n","import * as r from 'restructure';\n\n// horizontal header\nexport default new r.Struct({\n version: r.int32,\n ascent: r.int16, // Distance from baseline of highest ascender\n descent: r.int16, // Distance from baseline of lowest descender\n lineGap: r.int16, // Typographic line gap\n advanceWidthMax: r.uint16, // Maximum advance width value in 'hmtx' table\n minLeftSideBearing: r.int16, // Maximum advance width value in 'hmtx' table\n minRightSideBearing: r.int16, // Minimum right sidebearing value\n xMaxExtent: r.int16,\n caretSlopeRise: r.int16, // Used to calculate the slope of the cursor (rise/run); 1 for vertical\n caretSlopeRun: r.int16, // 0 for vertical\n caretOffset: r.int16, // Set to 0 for non-slanted fonts\n reserved: new r.Reserved(r.int16, 4),\n metricDataFormat: r.int16, // 0 for current format\n numberOfMetrics: r.uint16 // Number of advance widths in 'hmtx' table\n});\n","import * as r from 'restructure';\n\nlet HmtxEntry = new r.Struct({\n advance: r.uint16,\n bearing: r.int16\n});\n\nexport default new r.Struct({\n metrics: new r.LazyArray(HmtxEntry, t => t.parent.hhea.numberOfMetrics),\n bearings: new r.LazyArray(r.int16, t => t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics)\n});\n","import * as r from 'restructure';\n\n// maxiumum profile\nexport default new r.Struct({\n version: r.int32,\n numGlyphs: r.uint16, // The number of glyphs in the font\n maxPoints: r.uint16, // Maximum points in a non-composite glyph\n maxContours: r.uint16, // Maximum contours in a non-composite glyph\n maxComponentPoints: r.uint16, // Maximum points in a composite glyph\n maxComponentContours: r.uint16, // Maximum contours in a composite glyph\n maxZones: r.uint16, // 1 if instructions do not use the twilight zone, 2 otherwise\n maxTwilightPoints: r.uint16, // Maximum points used in Z0\n maxStorage: r.uint16, // Number of Storage Area locations\n maxFunctionDefs: r.uint16, // Number of FDEFs\n maxInstructionDefs: r.uint16, // Number of IDEFs\n maxStackElements: r.uint16, // Maximum stack depth\n maxSizeOfInstructions: r.uint16, // Maximum byte count for glyph instructions\n maxComponentElements: r.uint16, // Maximum number of components referenced at “top level” for any composite glyph\n maxComponentDepth: r.uint16 // Maximum levels of recursion; 1 for simple components\n});\n","/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */\nexport function getEncoding(platformID, encodingID, languageID = 0) {\n if (platformID === 1 && MAC_LANGUAGE_ENCODINGS[languageID]) {\n return MAC_LANGUAGE_ENCODINGS[languageID];\n }\n \n return ENCODINGS[platformID][encodingID];\n}\n\nconst SINGLE_BYTE_ENCODINGS = new Set(['x-mac-roman', 'x-mac-cyrillic', 'iso-8859-6', 'iso-8859-8']);\nconst MAC_ENCODINGS = {\n 'x-mac-croatian': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ',\n 'x-mac-gaelic': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ',\n 'x-mac-greek': 'Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ\\u00AD',\n 'x-mac-icelandic': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-inuit': 'ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł',\n 'x-mac-ce': 'ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ',\n 'x-mac-romanian': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-turkish': 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ'\n};\n\nconst encodingCache = new Map();\n\nexport function getEncodingMapping(encoding) {\n let cached = encodingCache.get(encoding);\n if (cached) {\n return cached;\n }\n\n // These encodings aren't supported by TextDecoder.\n let mapping = MAC_ENCODINGS[encoding];\n if (mapping) {\n let res = new Map();\n for (let i = 0; i < mapping.length; i++) {\n res.set(mapping.charCodeAt(i), 0x80 + i);\n }\n\n encodingCache.set(encoding, res);\n return res;\n }\n\n // Only single byte encodings can be mapped 1:1.\n if (SINGLE_BYTE_ENCODINGS.has(encoding)) {\n // TextEncoder only supports utf8, whereas TextDecoder supports legacy encodings.\n // Use this to create a mapping of code points.\n let decoder = new TextDecoder(encoding);\n let mapping = new Uint8Array(0x80);\n for (let i = 0; i < 0x80; i++) {\n mapping[i] = 0x80 + i;\n }\n\n let res = new Map();\n let s = decoder.decode(mapping);\n for (let i = 0; i < 0x80; i++) {\n res.set(s.charCodeAt(i), 0x80 + i);\n }\n\n encodingCache.set(encoding, res);\n return res;\n }\n}\n\n// Map of platform ids to encoding ids.\nexport const ENCODINGS = [\n // unicode\n ['utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be', 'utf-16be'],\n \n // macintosh\n // Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n // 0\tRoman 17\tMalayalam\n // 1\tJapanese\t 18\tSinhalese\n // 2\tTraditional Chinese\t 19\tBurmese\n // 3\tKorean\t 20\tKhmer\n // 4\tArabic\t 21\tThai\n // 5\tHebrew\t 22\tLaotian\n // 6\tGreek\t 23\tGeorgian\n // 7\tRussian\t 24\tArmenian\n // 8\tRSymbol\t 25\tSimplified Chinese\n // 9\tDevanagari\t 26\tTibetan\n // 10\tGurmukhi\t 27\tMongolian\n // 11\tGujarati\t 28\tGeez\n // 12\tOriya\t 29\tSlavic\n // 13\tBengali\t 30\tVietnamese\n // 14\tTamil\t 31\tSindhi\n // 15\tTelugu\t 32\t(Uninterpreted)\n // 16\tKannada\n ['x-mac-roman', 'shift-jis', 'big5', 'euc-kr', 'iso-8859-6', 'iso-8859-8',\n 'x-mac-greek', 'x-mac-cyrillic', 'x-mac-symbol', 'x-mac-devanagari', 'x-mac-gurmukhi', 'x-mac-gujarati',\n 'Oriya', 'Bengali', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhalese',\n 'Burmese', 'Khmer', 'iso-8859-11', 'Laotian', 'Georgian', 'Armenian', 'gbk', \n 'Tibetan', 'Mongolian', 'Geez', 'x-mac-ce', 'Vietnamese', 'Sindhi'],\n \n // ISO (deprecated)\n ['ascii', null, 'iso-8859-1'],\n \n // windows\n // Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n ['symbol', 'utf-16be', 'shift-jis', 'gb18030', 'big5', 'euc-kr', 'johab', null, null, null, 'utf-16be']\n];\n\n// Overrides for Mac scripts by language id.\n// See http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt\nexport const MAC_LANGUAGE_ENCODINGS = {\n 15: 'x-mac-icelandic',\n 17: 'x-mac-turkish',\n 18: 'x-mac-croatian',\n 24: 'x-mac-ce',\n 25: 'x-mac-ce',\n 26: 'x-mac-ce',\n 27: 'x-mac-ce',\n 28: 'x-mac-ce',\n 30: 'x-mac-icelandic',\n 37: 'x-mac-romanian',\n 38: 'x-mac-ce',\n 39: 'x-mac-ce',\n 40: 'x-mac-ce',\n 143: 'x-mac-inuit',\n 146: 'x-mac-gaelic'\n};\n\n// Map of platform ids to BCP-47 language codes.\nexport const LANGUAGES = [\n // unicode\n [],\n \n { // macintosh\n 0: 'en', 30: 'fo', 60: 'ks', 90: 'rw',\n 1: 'fr', 31: 'fa', 61: 'ku', 91: 'rn',\n 2: 'de', 32: 'ru', 62: 'sd', 92: 'ny',\n 3: 'it', 33: 'zh', 63: 'bo', 93: 'mg',\n 4: 'nl', 34: 'nl-BE', 64: 'ne', 94: 'eo',\n 5: 'sv', 35: 'ga', 65: 'sa', 128: 'cy',\n 6: 'es', 36: 'sq', 66: 'mr', 129: 'eu',\n 7: 'da', 37: 'ro', 67: 'bn', 130: 'ca',\n 8: 'pt', 38: 'cz', 68: 'as', 131: 'la',\n 9: 'no', 39: 'sk', 69: 'gu', 132: 'qu',\n 10: 'he', 40: 'si', 70: 'pa', 133: 'gn',\n 11: 'ja', 41: 'yi', 71: 'or', 134: 'ay',\n 12: 'ar', 42: 'sr', 72: 'ml', 135: 'tt',\n 13: 'fi', 43: 'mk', 73: 'kn', 136: 'ug',\n 14: 'el', 44: 'bg', 74: 'ta', 137: 'dz',\n 15: 'is', 45: 'uk', 75: 'te', 138: 'jv',\n 16: 'mt', 46: 'be', 76: 'si', 139: 'su',\n 17: 'tr', 47: 'uz', 77: 'my', 140: 'gl',\n 18: 'hr', 48: 'kk', 78: 'km', 141: 'af',\n 19: 'zh-Hant', 49: 'az-Cyrl', 79: 'lo', 142: 'br',\n 20: 'ur', 50: 'az-Arab', 80: 'vi', 143: 'iu',\n 21: 'hi', 51: 'hy', 81: 'id', 144: 'gd',\n 22: 'th', 52: 'ka', 82: 'tl', 145: 'gv',\n 23: 'ko', 53: 'mo', 83: 'ms', 146: 'ga',\n 24: 'lt', 54: 'ky', 84: 'ms-Arab', 147: 'to',\n 25: 'pl', 55: 'tg', 85: 'am', 148: 'el-polyton',\n 26: 'hu', 56: 'tk', 86: 'ti', 149: 'kl',\n 27: 'es', 57: 'mn-CN', 87: 'om', 150: 'az',\n 28: 'lv', 58: 'mn', 88: 'so', 151: 'nn',\n 29: 'se', 59: 'ps', 89: 'sw',\n },\n \n // ISO (deprecated)\n [],\n \n { // windows \n 0x0436: 'af', 0x4009: 'en-IN', 0x0487: 'rw', 0x0432: 'tn', \n 0x041C: 'sq', 0x1809: 'en-IE', 0x0441: 'sw', 0x045B: 'si', \n 0x0484: 'gsw', 0x2009: 'en-JM', 0x0457: 'kok', 0x041B: 'sk', \n 0x045E: 'am', 0x4409: 'en-MY', 0x0412: 'ko', 0x0424: 'sl', \n 0x1401: 'ar-DZ', 0x1409: 'en-NZ', 0x0440: 'ky', 0x2C0A: 'es-AR', \n 0x3C01: 'ar-BH', 0x3409: 'en-PH', 0x0454: 'lo', 0x400A: 'es-BO', \n 0x0C01: 'ar', 0x4809: 'en-SG', 0x0426: 'lv', 0x340A: 'es-CL', \n 0x0801: 'ar-IQ', 0x1C09: 'en-ZA', 0x0427: 'lt', 0x240A: 'es-CO', \n 0x2C01: 'ar-JO', 0x2C09: 'en-TT', 0x082E: 'dsb', 0x140A: 'es-CR', \n 0x3401: 'ar-KW', 0x0809: 'en-GB', 0x046E: 'lb', 0x1C0A: 'es-DO', \n 0x3001: 'ar-LB', 0x0409: 'en', 0x042F: 'mk', 0x300A: 'es-EC', \n 0x1001: 'ar-LY', 0x3009: 'en-ZW', 0x083E: 'ms-BN', 0x440A: 'es-SV', \n 0x1801: 'ary', 0x0425: 'et', 0x043E: 'ms', 0x100A: 'es-GT', \n 0x2001: 'ar-OM', 0x0438: 'fo', 0x044C: 'ml', 0x480A: 'es-HN', \n 0x4001: 'ar-QA', 0x0464: 'fil', 0x043A: 'mt', 0x080A: 'es-MX', \n 0x0401: 'ar-SA', 0x040B: 'fi', 0x0481: 'mi', 0x4C0A: 'es-NI', \n 0x2801: 'ar-SY', 0x080C: 'fr-BE', 0x047A: 'arn', 0x180A: 'es-PA', \n 0x1C01: 'aeb', 0x0C0C: 'fr-CA', 0x044E: 'mr', 0x3C0A: 'es-PY', \n 0x3801: 'ar-AE', 0x040C: 'fr', 0x047C: 'moh', 0x280A: 'es-PE', \n 0x2401: 'ar-YE', 0x140C: 'fr-LU', 0x0450: 'mn', 0x500A: 'es-PR', \n 0x042B: 'hy', 0x180C: 'fr-MC', 0x0850: 'mn-CN', 0x0C0A: 'es', \n 0x044D: 'as', 0x100C: 'fr-CH', 0x0461: 'ne', 0x040A: 'es', \n 0x082C: 'az-Cyrl', 0x0462: 'fy', 0x0414: 'nb', 0x540A: 'es-US', \n 0x042C: 'az', 0x0456: 'gl', 0x0814: 'nn', 0x380A: 'es-UY', \n 0x046D: 'ba', 0x0437: 'ka', 0x0482: 'oc', 0x200A: 'es-VE', \n 0x042D: 'eu', 0x0C07: 'de-AT', 0x0448: 'or', 0x081D: 'sv-FI', \n 0x0423: 'be', 0x0407: 'de', 0x0463: 'ps', 0x041D: 'sv', \n 0x0845: 'bn', 0x1407: 'de-LI', 0x0415: 'pl', 0x045A: 'syr', \n 0x0445: 'bn-IN', 0x1007: 'de-LU', 0x0416: 'pt', 0x0428: 'tg', \n 0x201A: 'bs-Cyrl', 0x0807: 'de-CH', 0x0816: 'pt-PT', 0x085F: 'tzm', \n 0x141A: 'bs', 0x0408: 'el', 0x0446: 'pa', 0x0449: 'ta', \n 0x047E: 'br', 0x046F: 'kl', 0x046B: 'qu-BO', 0x0444: 'tt', \n 0x0402: 'bg', 0x0447: 'gu', 0x086B: 'qu-EC', 0x044A: 'te', \n 0x0403: 'ca', 0x0468: 'ha', 0x0C6B: 'qu', 0x041E: 'th', \n 0x0C04: 'zh-HK', 0x040D: 'he', 0x0418: 'ro', 0x0451: 'bo', \n 0x1404: 'zh-MO', 0x0439: 'hi', 0x0417: 'rm', 0x041F: 'tr', \n 0x0804: 'zh', 0x040E: 'hu', 0x0419: 'ru', 0x0442: 'tk', \n 0x1004: 'zh-SG', 0x040F: 'is', 0x243B: 'smn', 0x0480: 'ug', \n 0x0404: 'zh-TW', 0x0470: 'ig', 0x103B: 'smj-NO', 0x0422: 'uk', \n 0x0483: 'co', 0x0421: 'id', 0x143B: 'smj', 0x042E: 'hsb', \n 0x041A: 'hr', 0x045D: 'iu', 0x0C3B: 'se-FI', 0x0420: 'ur', \n 0x101A: 'hr-BA', 0x085D: 'iu-Latn', 0x043B: 'se', 0x0843: 'uz-Cyrl', \n 0x0405: 'cs', 0x083C: 'ga', 0x083B: 'se-SE', 0x0443: 'uz', \n 0x0406: 'da', 0x0434: 'xh', 0x203B: 'sms', 0x042A: 'vi', \n 0x048C: 'prs', 0x0435: 'zu', 0x183B: 'sma-NO', 0x0452: 'cy', \n 0x0465: 'dv', 0x0410: 'it', 0x1C3B: 'sms', 0x0488: 'wo', \n 0x0813: 'nl-BE', 0x0810: 'it-CH', 0x044F: 'sa', 0x0485: 'sah', \n 0x0413: 'nl', 0x0411: 'ja', 0x1C1A: 'sr-Cyrl-BA', 0x0478: 'ii', \n 0x0C09: 'en-AU', 0x044B: 'kn', 0x0C1A: 'sr', 0x046A: 'yo', \n 0x2809: 'en-BZ', 0x043F: 'kk', 0x181A: 'sr-Latn-BA', \n 0x1009: 'en-CA', 0x0453: 'km', 0x081A: 'sr-Latn', \n 0x2409: 'en-029', 0x0486: 'quc', 0x046C: 'nso', \n }\n];\n","import * as r from 'restructure';\nimport {getEncoding, LANGUAGES} from '../encodings';\n\nlet NameRecord = new r.Struct({\n platformID: r.uint16,\n encodingID: r.uint16,\n languageID: r.uint16,\n nameID: r.uint16,\n length: r.uint16,\n string: new r.Pointer(r.uint16,\n new r.String('length', t => getEncoding(t.platformID, t.encodingID, t.languageID)),\n { type: 'parent', relativeTo: ctx => ctx.parent.stringOffset, allowNull: false }\n )\n});\n\nlet LangTagRecord = new r.Struct({\n length: r.uint16,\n tag: new r.Pointer(r.uint16, new r.String('length', 'utf16be'), {type: 'parent', relativeTo: ctx => ctx.stringOffset})\n});\n\nvar NameTable = new r.VersionedStruct(r.uint16, {\n 0: {\n count: r.uint16,\n stringOffset: r.uint16,\n records: new r.Array(NameRecord, 'count')\n },\n 1: {\n count: r.uint16,\n stringOffset: r.uint16,\n records: new r.Array(NameRecord, 'count'),\n langTagCount: r.uint16,\n langTags: new r.Array(LangTagRecord, 'langTagCount')\n }\n});\n\nexport default NameTable;\n\nconst NAMES = [\n 'copyright',\n 'fontFamily',\n 'fontSubfamily',\n 'uniqueSubfamily',\n 'fullName',\n 'version',\n 'postscriptName', // Note: A font may have only one PostScript name and that name must be ASCII.\n 'trademark',\n 'manufacturer',\n 'designer',\n 'description',\n 'vendorURL',\n 'designerURL',\n 'license',\n 'licenseURL',\n null, // reserved\n 'preferredFamily',\n 'preferredSubfamily',\n 'compatibleFull',\n 'sampleText',\n 'postscriptCIDFontName',\n 'wwsFamilyName',\n 'wwsSubfamilyName'\n];\n\nNameTable.process = function(stream) {\n var records = {};\n for (let record of this.records) {\n // find out what language this is for\n let language = LANGUAGES[record.platformID][record.languageID];\n\n if (language == null && this.langTags != null && record.languageID >= 0x8000) {\n language = this.langTags[record.languageID - 0x8000].tag;\n }\n\n if (language == null) {\n language = record.platformID + '-' + record.languageID;\n }\n\n // if the nameID is >= 256, it is a font feature record (AAT)\n let key = record.nameID >= 256 ? 'fontFeatures' : (NAMES[record.nameID] || record.nameID);\n if (records[key] == null) {\n records[key] = {};\n }\n\n let obj = records[key];\n if (record.nameID >= 256) {\n obj = obj[record.nameID] || (obj[record.nameID] = {});\n }\n\n if (typeof record.string === 'string' || typeof obj[language] !== 'string') {\n obj[language] = record.string;\n }\n }\n\n this.records = records;\n};\n\nNameTable.preEncode = function() {\n if (Array.isArray(this.records)) return;\n this.version = 0;\n\n let records = [];\n for (let key in this.records) {\n let val = this.records[key];\n if (key === 'fontFeatures') continue;\n\n records.push({\n platformID: 3,\n encodingID: 1,\n languageID: 0x409,\n nameID: NAMES.indexOf(key),\n length: val.en.length * 2,\n string: val.en\n });\n\n if (key === 'postscriptName') {\n records.push({\n platformID: 1,\n encodingID: 0,\n languageID: 0,\n nameID: NAMES.indexOf(key),\n length: val.en.length,\n string: val.en\n });\n }\n }\n\n this.records = records;\n this.count = records.length;\n this.stringOffset = NameTable.size(this, null, false);\n};\n","import * as r from 'restructure';\n\nvar OS2 = new r.VersionedStruct(r.uint16, {\n header: {\n xAvgCharWidth: r.int16, // average weighted advance width of lower case letters and space\n usWeightClass: r.uint16, // visual weight of stroke in glyphs\n usWidthClass: r.uint16, // relative change from the normal aspect ratio (width to height ratio)\n fsType: new r.Bitfield(r.uint16, [ // Indicates font embedding licensing rights\n null, 'noEmbedding', 'viewOnly', 'editable', null,\n null, null, null, 'noSubsetting', 'bitmapOnly'\n ]),\n ySubscriptXSize: r.int16, // recommended horizontal size in pixels for subscripts\n ySubscriptYSize: r.int16, // recommended vertical size in pixels for subscripts\n ySubscriptXOffset: r.int16, // recommended horizontal offset for subscripts\n ySubscriptYOffset: r.int16, // recommended vertical offset form the baseline for subscripts\n ySuperscriptXSize: r.int16, // recommended horizontal size in pixels for superscripts\n ySuperscriptYSize: r.int16, // recommended vertical size in pixels for superscripts\n ySuperscriptXOffset: r.int16, // recommended horizontal offset for superscripts\n ySuperscriptYOffset: r.int16, // recommended vertical offset from the baseline for superscripts\n yStrikeoutSize: r.int16, // width of the strikeout stroke\n yStrikeoutPosition: r.int16, // position of the strikeout stroke relative to the baseline\n sFamilyClass: r.int16, // classification of font-family design\n panose: new r.Array(r.uint8, 10), // describe the visual characteristics of a given typeface\n ulCharRange: new r.Array(r.uint32, 4),\n vendorID: new r.String(4), // four character identifier for the font vendor\n fsSelection: new r.Bitfield(r.uint16, [ // bit field containing information about the font\n 'italic', 'underscore', 'negative', 'outlined', 'strikeout',\n 'bold', 'regular', 'useTypoMetrics', 'wws', 'oblique'\n ]),\n usFirstCharIndex: r.uint16, // The minimum Unicode index in this font\n usLastCharIndex: r.uint16 // The maximum Unicode index in this font\n },\n\n // The Apple version of this table ends here, but the Microsoft one continues on...\n 0: {},\n\n 1: {\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2)\n },\n\n 2: {\n // these should be common with version 1 somehow\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2),\n\n xHeight: r.int16,\n capHeight: r.int16,\n defaultChar: r.uint16,\n breakChar: r.uint16,\n maxContent: r.uint16\n },\n\n 5: {\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2),\n\n xHeight: r.int16,\n capHeight: r.int16,\n defaultChar: r.uint16,\n breakChar: r.uint16,\n maxContent: r.uint16,\n\n usLowerOpticalPointSize: r.uint16,\n usUpperOpticalPointSize: r.uint16\n }\n});\n\nlet versions = OS2.versions;\nversions[3] = versions[4] = versions[2];\n\nexport default OS2;\n","import * as r from 'restructure';\n\n// PostScript information\nexport default new r.VersionedStruct(r.fixed32, {\n header: { // these fields exist at the top of all versions\n italicAngle: r.fixed32, // Italic angle in counter-clockwise degrees from the vertical.\n underlinePosition: r.int16, // Suggested distance of the top of the underline from the baseline\n underlineThickness: r.int16, // Suggested values for the underline thickness\n isFixedPitch: r.uint32, // Whether the font is monospaced\n minMemType42: r.uint32, // Minimum memory usage when a TrueType font is downloaded as a Type 42 font\n maxMemType42: r.uint32, // Maximum memory usage when a TrueType font is downloaded as a Type 42 font\n minMemType1: r.uint32, // Minimum memory usage when a TrueType font is downloaded as a Type 1 font\n maxMemType1: r.uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n },\n\n 1: {}, // version 1 has no additional fields\n\n 2: {\n numberOfGlyphs: r.uint16,\n glyphNameIndex: new r.Array(r.uint16, 'numberOfGlyphs'),\n names: new r.Array(new r.String(r.uint8))\n },\n\n 2.5: {\n numberOfGlyphs: r.uint16,\n offsets: new r.Array(r.uint8, 'numberOfGlyphs')\n },\n\n 3: {}, // version 3 has no additional fields\n\n 4: {\n map: new r.Array(r.uint32, t => t.parent.maxp.numGlyphs)\n }\n});\n","import * as r from 'restructure';\n\n// An array of predefined values accessible by instructions\nexport default new r.Struct({\n controlValues: new r.Array(r.int16)\n});\n","import * as r from 'restructure';\n\n// A list of instructions that are executed once when a font is first used.\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\nexport default new r.Struct({\n instructions: new r.Array(r.uint8)\n});\n","import * as r from 'restructure';\n\nlet loca = new r.VersionedStruct('head.indexToLocFormat', {\n 0: {\n offsets: new r.Array(r.uint16)\n },\n 1: {\n offsets: new r.Array(r.uint32)\n }\n});\n\nloca.process = function() {\n if (this.version === 0 && !this._processed) {\n for (let i = 0; i < this.offsets.length; i++) {\n this.offsets[i] <<= 1;\n }\n this._processed = true;\n }\n};\n\nloca.preEncode = function() {\n if (this.version === 0 && this._processed !== false) {\n for (let i = 0; i < this.offsets.length; i++) {\n this.offsets[i] >>>= 1;\n }\n this._processed = false;\n }\n};\n\nexport default loca;\n","import * as r from 'restructure';\n\n// Set of instructions executed whenever the point size or font transformation change\nexport default new r.Struct({\n controlValueProgram: new r.Array(r.uint8)\n});\n","import * as r from 'restructure';\n\n// only used for encoding\nexport default new r.Array(new r.Buffer);\n","import * as r from 'restructure';\n\nexport default class CFFIndex {\n constructor(type) {\n this.type = type;\n }\n\n getCFFVersion(ctx) {\n while (ctx && !ctx.hdrSize) {\n ctx = ctx.parent;\n }\n\n return ctx ? ctx.version : -1;\n }\n\n decode(stream, parent) {\n let version = this.getCFFVersion(parent);\n let count = version >= 2\n ? stream.readUInt32BE()\n : stream.readUInt16BE();\n\n if (count === 0) {\n return [];\n }\n\n let offSize = stream.readUInt8();\n let offsetType;\n if (offSize === 1) {\n offsetType = r.uint8;\n } else if (offSize === 2) {\n offsetType = r.uint16;\n } else if (offSize === 3) {\n offsetType = r.uint24;\n } else if (offSize === 4) {\n offsetType = r.uint32;\n } else {\n throw new Error(`Bad offset size in CFFIndex: ${offSize} ${stream.pos}`);\n }\n\n let ret = [];\n let startPos = stream.pos + ((count + 1) * offSize) - 1;\n\n let start = offsetType.decode(stream);\n for (let i = 0; i < count; i++) {\n let end = offsetType.decode(stream);\n\n if (this.type != null) {\n let pos = stream.pos;\n stream.pos = startPos + start;\n\n parent.length = end - start;\n ret.push(this.type.decode(stream, parent));\n stream.pos = pos;\n } else {\n ret.push({\n offset: startPos + start,\n length: end - start\n });\n }\n\n start = end;\n }\n\n stream.pos = startPos + start;\n return ret;\n }\n\n size(arr, parent) {\n let size = 2;\n if (arr.length === 0) {\n return size;\n }\n\n let type = this.type || new r.Buffer;\n\n // find maximum offset to detminine offset type\n let offset = 1;\n for (let i = 0; i < arr.length; i++) {\n let item = arr[i];\n offset += type.size(item, parent);\n }\n\n let offsetType;\n if (offset <= 0xff) {\n offsetType = r.uint8;\n } else if (offset <= 0xffff) {\n offsetType = r.uint16;\n } else if (offset <= 0xffffff) {\n offsetType = r.uint24;\n } else if (offset <= 0xffffffff) {\n offsetType = r.uint32;\n } else {\n throw new Error(\"Bad offset in CFFIndex\");\n }\n\n size += 1 + offsetType.size() * (arr.length + 1);\n size += offset - 1;\n\n return size;\n }\n\n encode(stream, arr, parent) {\n stream.writeUInt16BE(arr.length);\n if (arr.length === 0) {\n return;\n }\n\n let type = this.type || new r.Buffer;\n\n // find maximum offset to detminine offset type\n let sizes = [];\n let offset = 1;\n for (let item of arr) {\n let s = type.size(item, parent);\n sizes.push(s);\n offset += s;\n }\n\n let offsetType;\n if (offset <= 0xff) {\n offsetType = r.uint8;\n } else if (offset <= 0xffff) {\n offsetType = r.uint16;\n } else if (offset <= 0xffffff) {\n offsetType = r.uint24;\n } else if (offset <= 0xffffffff) {\n offsetType = r.uint32;\n } else {\n throw new Error(\"Bad offset in CFFIndex\");\n }\n\n // write offset size\n stream.writeUInt8(offsetType.size());\n\n // write elements\n offset = 1;\n offsetType.encode(stream, offset);\n\n for (let size of sizes) {\n offset += size;\n offsetType.encode(stream, offset);\n }\n\n for (let item of arr) {\n type.encode(stream, item, parent);\n }\n\n return;\n }\n}\n","const FLOAT_EOF = 0xf;\nconst FLOAT_LOOKUP = [\n '0', '1', '2', '3', '4', '5', '6', '7',\n '8', '9', '.', 'E', 'E-', null, '-'\n];\n\nconst FLOAT_ENCODE_LOOKUP = {\n '.': 10,\n 'E': 11,\n 'E-': 12,\n '-': 14\n};\n\nexport default class CFFOperand {\n static decode(stream, value) {\n if (32 <= value && value <= 246) {\n return value - 139;\n }\n\n if (247 <= value && value <= 250) {\n return (value - 247) * 256 + stream.readUInt8() + 108;\n }\n\n if (251 <= value && value <= 254) {\n return -(value - 251) * 256 - stream.readUInt8() - 108;\n }\n\n if (value === 28) {\n return stream.readInt16BE();\n }\n\n if (value === 29) {\n return stream.readInt32BE();\n }\n\n if (value === 30) {\n let str = '';\n while (true) {\n let b = stream.readUInt8();\n\n let n1 = b >> 4;\n if (n1 === FLOAT_EOF) { break; }\n str += FLOAT_LOOKUP[n1];\n\n let n2 = b & 15;\n if (n2 === FLOAT_EOF) { break; }\n str += FLOAT_LOOKUP[n2];\n }\n\n return parseFloat(str);\n }\n\n return null;\n }\n\n static size(value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, set to 32768\n if (value.forceLarge) {\n value = 32768;\n }\n\n if ((value | 0) !== value) { // floating point\n let str = '' + value;\n return 1 + Math.ceil((str.length + 1) / 2);\n\n } else if (-107 <= value && value <= 107) {\n return 1;\n\n } else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) {\n return 2;\n\n } else if (-32768 <= value && value <= 32767) {\n return 3;\n\n } else {\n return 5;\n }\n }\n\n static encode(stream, value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, save the old value and set to 32768\n let val = Number(value);\n\n if (value.forceLarge) {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n\n } else if ((val | 0) !== val) { // floating point\n stream.writeUInt8(30);\n\n let str = '' + val;\n for (let i = 0; i < str.length; i += 2) {\n let c1 = str[i];\n let n1 = FLOAT_ENCODE_LOOKUP[c1] || +c1;\n\n if (i === str.length - 1) {\n var n2 = FLOAT_EOF;\n } else {\n let c2 = str[i + 1];\n var n2 = FLOAT_ENCODE_LOOKUP[c2] || +c2;\n }\n\n stream.writeUInt8((n1 << 4) | (n2 & 15));\n }\n\n if (n2 !== FLOAT_EOF) {\n return stream.writeUInt8((FLOAT_EOF << 4));\n }\n\n } else if (-107 <= val && val <= 107) {\n return stream.writeUInt8(val + 139);\n\n } else if (108 <= val && val <= 1131) {\n val -= 108;\n stream.writeUInt8((val >> 8) + 247);\n return stream.writeUInt8(val & 0xff);\n\n } else if (-1131 <= val && val <= -108) {\n val = -val - 108;\n stream.writeUInt8((val >> 8) + 251);\n return stream.writeUInt8(val & 0xff);\n\n } else if (-32768 <= val && val <= 32767) {\n stream.writeUInt8(28);\n return stream.writeInt16BE(val);\n\n } else {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n }\n }\n}\n","import isEqual from 'fast-deep-equal';\nimport * as r from 'restructure';\nimport CFFOperand from './CFFOperand';\nimport { PropertyDescriptor } from 'restructure';\n\nexport default class CFFDict {\n constructor(ops = []) {\n this.ops = ops;\n this.fields = {};\n for (let field of ops) {\n let key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n this.fields[key] = field;\n }\n }\n\n decodeOperands(type, stream, ret, operands) {\n if (Array.isArray(type)) {\n return operands.map((op, i) => this.decodeOperands(type[i], stream, ret, [op]));\n } else if (type.decode != null) {\n return type.decode(stream, ret, operands);\n } else {\n switch (type) {\n case 'number':\n case 'offset':\n case 'sid':\n return operands[0];\n case 'boolean':\n return !!operands[0];\n default:\n return operands;\n }\n }\n }\n\n encodeOperands(type, stream, ctx, operands) {\n if (Array.isArray(type)) {\n return operands.map((op, i) => this.encodeOperands(type[i], stream, ctx, op)[0]);\n } else if (type.encode != null) {\n return type.encode(stream, operands, ctx);\n } else if (typeof operands === 'number') {\n return [operands];\n } else if (typeof operands === 'boolean') {\n return [+operands];\n } else if (Array.isArray(operands)) {\n return operands;\n } else {\n return [operands];\n }\n }\n\n decode(stream, parent) {\n let end = stream.pos + parent.length;\n let ret = {};\n let operands = [];\n\n // define hidden properties\n Object.defineProperties(ret, {\n parent: { value: parent },\n _startOffset: { value: stream.pos }\n });\n\n // fill in defaults\n for (let key in this.fields) {\n let field = this.fields[key];\n ret[field[1]] = field[3];\n }\n\n while (stream.pos < end) {\n let b = stream.readUInt8();\n if (b < 28) {\n if (b === 12) {\n b = (b << 8) | stream.readUInt8();\n }\n\n let field = this.fields[b];\n if (!field) {\n throw new Error(`Unknown operator ${b}`);\n }\n\n let val = this.decodeOperands(field[2], stream, ret, operands);\n if (val != null) {\n if (val instanceof PropertyDescriptor) {\n Object.defineProperty(ret, field[1], val);\n } else {\n ret[field[1]] = val;\n }\n }\n\n operands = [];\n } else {\n operands.push(CFFOperand.decode(stream, b));\n }\n }\n\n return ret;\n }\n\n size(dict, parent, includePointers = true) {\n let ctx = {\n parent,\n val: dict,\n pointerSize: 0,\n startOffset: parent.startOffset || 0\n };\n\n let len = 0;\n\n for (let k in this.fields) {\n let field = this.fields[k];\n let val = dict[field[1]];\n if (val == null || isEqual(val, field[3])) {\n continue;\n }\n\n let operands = this.encodeOperands(field[2], null, ctx, val);\n for (let op of operands) {\n len += CFFOperand.size(op);\n }\n\n let key = Array.isArray(field[0]) ? field[0] : [field[0]];\n len += key.length;\n }\n\n if (includePointers) {\n len += ctx.pointerSize;\n }\n\n return len;\n }\n\n encode(stream, dict, parent) {\n let ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val: dict,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n\n for (let field of this.ops) {\n let val = dict[field[1]];\n if (val == null || isEqual(val, field[3])) {\n continue;\n }\n\n let operands = this.encodeOperands(field[2], stream, ctx, val);\n for (let op of operands) {\n CFFOperand.encode(stream, op);\n }\n\n let key = Array.isArray(field[0]) ? field[0] : [field[0]];\n for (let op of key) {\n stream.writeUInt8(op);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n let ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n\n return;\n }\n}\n","import * as r from 'restructure';\n\nexport default class CFFPointer extends r.Pointer {\n constructor(type, options = {}) {\n if (options.type == null) {\n options.type = 'global';\n }\n\n super(null, type, options);\n }\n\n decode(stream, parent, operands) {\n this.offsetType = {\n decode: () => operands[0]\n };\n\n return super.decode(stream, parent, operands);\n }\n\n encode(stream, value, ctx) {\n if (!stream) {\n // compute the size (so ctx.pointerSize is correct)\n this.offsetType = {\n size: () => 0\n };\n\n this.size(value, ctx);\n return [new Ptr(0)];\n }\n\n let ptr = null;\n this.offsetType = {\n encode: (stream, val) => ptr = val\n };\n\n super.encode(stream, value, ctx);\n return [new Ptr(ptr)];\n }\n}\n\nclass Ptr {\n constructor(val) {\n this.val = val;\n this.forceLarge = true;\n }\n\n valueOf() {\n return this.val;\n }\n}\n","import CFFDict from './CFFDict';\nimport CFFIndex from './CFFIndex';\nimport CFFPointer from './CFFPointer';\n\nclass CFFBlendOp {\n static decode(stream, parent, operands) {\n let numBlends = operands.pop();\n\n // TODO: actually blend. For now just consume the deltas\n // since we don't use any of the values anyway.\n while (operands.length > numBlends) {\n operands.pop();\n }\n }\n}\n\nexport default new CFFDict([\n // key name type default\n [6, 'BlueValues', 'delta', null],\n [7, 'OtherBlues', 'delta', null],\n [8, 'FamilyBlues', 'delta', null],\n [9, 'FamilyOtherBlues', 'delta', null],\n [[12, 9], 'BlueScale', 'number', 0.039625],\n [[12, 10], 'BlueShift', 'number', 7],\n [[12, 11], 'BlueFuzz', 'number', 1],\n [10, 'StdHW', 'number', null],\n [11, 'StdVW', 'number', null],\n [[12, 12], 'StemSnapH', 'delta', null],\n [[12, 13], 'StemSnapV', 'delta', null],\n [[12, 14], 'ForceBold', 'boolean', false],\n [[12, 17], 'LanguageGroup', 'number', 0],\n [[12, 18], 'ExpansionFactor', 'number', 0.06],\n [[12, 19], 'initialRandomSeed', 'number', 0],\n [20, 'defaultWidthX', 'number', 0],\n [21, 'nominalWidthX', 'number', 0],\n [22, 'vsindex', 'number', 0],\n [23, 'blend', CFFBlendOp, null],\n [19, 'Subrs', new CFFPointer(new CFFIndex, {type: 'local'}), null]\n]);\n","// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nexport default [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\",\n \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\",\n \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\",\n \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\",\n \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\",\n \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\",\n \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\",\n \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\",\n \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\",\n \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\",\n \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\",\n \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\",\n \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\",\n \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\",\n \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\",\n \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\",\n \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\",\n \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\",\n \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\",\n \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\",\n \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\",\n \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\",\n \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\",\n \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\",\n \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\",\n \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\",\n \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\",\n \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\",\n \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\",\n \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\",\n \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n","export let StandardEncoding = [\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright',\n 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two',\n 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater',\n 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',\n 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',\n 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle',\n 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger',\n 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright',\n 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde',\n 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron',\n 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '',\n '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '',\n 'lslash', 'oslash', 'oe', 'germandbls'\n];\n\nexport let ExpertEncoding = [\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior',\n 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader',\n 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',\n 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon',\n 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior',\n 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior',\n 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl',\n 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall',\n 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall',\n 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',\n 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall',\n 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior',\n '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters',\n 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '',\n '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior',\n 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior',\n 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall',\n 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall',\n 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',\n 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall',\n 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',\n 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'\n];\n","export let ISOAdobeCharset = [\n '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar',\n 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright',\n 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero',\n 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight',\n 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question',\n 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',\n 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',\n 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',\n 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent',\n 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency',\n 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft',\n 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl',\n 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase',\n 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis',\n 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde',\n 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla',\n 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine',\n 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash',\n 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu',\n 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter',\n 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior',\n 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright',\n 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde',\n 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute',\n 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex',\n 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex',\n 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute',\n 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla',\n 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex',\n 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis',\n 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis',\n 'ugrave', 'yacute', 'ydieresis', 'zcaron'\n];\n\nexport let ExpertCharset = [\n '.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle',\n 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior',\n 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma',\n 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle',\n 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle',\n 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle',\n 'colon', 'semicolon', 'commasuperior', 'threequartersemdash',\n 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior',\n 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',\n 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',\n 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',\n 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall',\n 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall',\n 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall',\n 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall',\n 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary',\n 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle',\n 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall',\n 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall',\n 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall',\n 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters',\n 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths',\n 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',\n 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',\n 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',\n 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',\n 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',\n 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall',\n 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall',\n 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall',\n 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',\n 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall',\n 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall',\n 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',\n 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall',\n 'Ydieresissmall'\n];\n\nexport let ExpertSubsetCharset = [\n '.notdef', 'space', 'dollaroldstyle', 'dollarsuperior',\n 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader',\n 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction',\n 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',\n 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle',\n 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior',\n 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior',\n 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',\n 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior',\n 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior',\n 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted',\n 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter',\n 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths',\n 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior',\n 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',\n 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior',\n 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior',\n 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior',\n 'periodinferior', 'commainferior'\n];\n","import * as r from 'restructure';\n\n//########################\n// Scripts and Languages #\n//########################\n\nlet LangSysTable = new r.Struct({\n reserved: new r.Reserved(r.uint16),\n reqFeatureIndex: r.uint16,\n featureCount: r.uint16,\n featureIndexes: new r.Array(r.uint16, 'featureCount')\n});\n\nlet LangSysRecord = new r.Struct({\n tag: new r.String(4),\n langSys: new r.Pointer(r.uint16, LangSysTable, { type: 'parent' })\n});\n\nlet Script = new r.Struct({\n defaultLangSys: new r.Pointer(r.uint16, LangSysTable),\n count: r.uint16,\n langSysRecords: new r.Array(LangSysRecord, 'count')\n});\n\nlet ScriptRecord = new r.Struct({\n tag: new r.String(4),\n script: new r.Pointer(r.uint16, Script, { type: 'parent' })\n});\n\nexport let ScriptList = new r.Array(ScriptRecord, r.uint16);\n\n//#######################\n// Features and Lookups #\n//#######################\n\nlet FeatureParams = new r.Struct({\n version: r.uint16, // should be set to 0 according OT spec\n nameID: r.uint16, //OT spec: UI Name ID or uiLabelNameId\n});\n\nexport let Feature = new r.Struct({\n featureParams: new r.Pointer(r.uint16, FeatureParams),\n lookupCount: r.uint16,\n lookupListIndexes: new r.Array(r.uint16, 'lookupCount')\n});\n\nlet FeatureRecord = new r.Struct({\n tag: new r.String(4),\n feature: new r.Pointer(r.uint16, Feature, { type: 'parent' })\n});\n\nexport let FeatureList = new r.Array(FeatureRecord, r.uint16);\n\nlet LookupFlags = new r.Struct({\n markAttachmentType: r.uint8,\n flags: new r.Bitfield(r.uint8, [\n 'rightToLeft', 'ignoreBaseGlyphs', 'ignoreLigatures',\n 'ignoreMarks', 'useMarkFilteringSet'\n ])\n});\n\nexport function LookupList(SubTable) {\n let Lookup = new r.Struct({\n lookupType: r.uint16,\n flags: LookupFlags,\n subTableCount: r.uint16,\n subTables: new r.Array(new r.Pointer(r.uint16, SubTable), 'subTableCount'),\n markFilteringSet: new r.Optional(r.uint16, t => t.flags.flags.useMarkFilteringSet)\n });\n\n return new r.LazyArray(new r.Pointer(r.uint16, Lookup), r.uint16);\n}\n\n//#################\n// Coverage Table #\n//#################\n\nlet RangeRecord = new r.Struct({\n start: r.uint16,\n end: r.uint16,\n startCoverageIndex: r.uint16\n});\n\nexport let Coverage = new r.VersionedStruct(r.uint16, {\n 1: {\n glyphCount: r.uint16,\n glyphs: new r.Array(r.uint16, 'glyphCount')\n },\n 2: {\n rangeCount: r.uint16,\n rangeRecords: new r.Array(RangeRecord, 'rangeCount')\n }\n});\n\n//#########################\n// Class Definition Table #\n//#########################\n\nlet ClassRangeRecord = new r.Struct({\n start: r.uint16,\n end: r.uint16,\n class: r.uint16\n});\n\nexport let ClassDef = new r.VersionedStruct(r.uint16, {\n 1: { // Class array\n startGlyph: r.uint16,\n glyphCount: r.uint16,\n classValueArray: new r.Array(r.uint16, 'glyphCount')\n },\n 2: { // Class ranges\n classRangeCount: r.uint16,\n classRangeRecord: new r.Array(ClassRangeRecord, 'classRangeCount')\n }\n});\n\n//###############\n// Device Table #\n//###############\n\nexport let Device = new r.Struct({\n a: r.uint16, // startSize for hinting Device, outerIndex for VariationIndex\n b: r.uint16, // endSize for Device, innerIndex for VariationIndex\n deltaFormat: r.uint16\n});\n\n//#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\n\nlet LookupRecord = new r.Struct({\n sequenceIndex: r.uint16,\n lookupListIndex: r.uint16\n});\n\nlet Rule = new r.Struct({\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n input: new r.Array(r.uint16, t => t.glyphCount - 1),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nlet RuleSet = new r.Array(new r.Pointer(r.uint16, Rule), r.uint16);\n\nlet ClassRule = new r.Struct({\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n classes: new r.Array(r.uint16, t => t.glyphCount - 1),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nlet ClassSet = new r.Array(new r.Pointer(r.uint16, ClassRule), r.uint16);\n\nexport let Context = new r.VersionedStruct(r.uint16, {\n 1: { // Simple context\n coverage: new r.Pointer(r.uint16, Coverage),\n ruleSetCount: r.uint16,\n ruleSets: new r.Array(new r.Pointer(r.uint16, RuleSet), 'ruleSetCount')\n },\n 2: { // Class-based context\n coverage: new r.Pointer(r.uint16, Coverage),\n classDef: new r.Pointer(r.uint16, ClassDef),\n classSetCnt: r.uint16,\n classSet: new r.Array(new r.Pointer(r.uint16, ClassSet), 'classSetCnt')\n },\n 3: {\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n coverages: new r.Array(new r.Pointer(r.uint16, Coverage), 'glyphCount'),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n }\n});\n\n//######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\n\nlet ChainRule = new r.Struct({\n backtrackGlyphCount: r.uint16,\n backtrack: new r.Array(r.uint16, 'backtrackGlyphCount'),\n inputGlyphCount: r.uint16,\n input: new r.Array(r.uint16, t => t.inputGlyphCount - 1),\n lookaheadGlyphCount: r.uint16,\n lookahead: new r.Array(r.uint16, 'lookaheadGlyphCount'),\n lookupCount: r.uint16,\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\n\nlet ChainRuleSet = new r.Array(new r.Pointer(r.uint16, ChainRule), r.uint16);\n\nexport let ChainingContext = new r.VersionedStruct(r.uint16, {\n 1: { // Simple context glyph substitution\n coverage: new r.Pointer(r.uint16, Coverage),\n chainCount: r.uint16,\n chainRuleSets: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n },\n\n 2: { // Class-based chaining context\n coverage: new r.Pointer(r.uint16, Coverage),\n backtrackClassDef: new r.Pointer(r.uint16, ClassDef),\n inputClassDef: new r.Pointer(r.uint16, ClassDef),\n lookaheadClassDef: new r.Pointer(r.uint16, ClassDef),\n chainCount: r.uint16,\n chainClassSet: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n },\n\n 3: { // Coverage-based chaining context\n backtrackGlyphCount: r.uint16,\n backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n inputGlyphCount: r.uint16,\n inputCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'inputGlyphCount'),\n lookaheadGlyphCount: r.uint16,\n lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n lookupCount: r.uint16,\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n }\n});\n","import {Feature} from './opentype';\nimport * as r from 'restructure';\n\n/*******************\n * Variation Store *\n *******************/\n\nlet F2DOT14 = new r.Fixed(16, 'BE', 14);\nlet RegionAxisCoordinates = new r.Struct({\n startCoord: F2DOT14,\n peakCoord: F2DOT14,\n endCoord: F2DOT14\n});\n\nlet VariationRegionList = new r.Struct({\n axisCount: r.uint16,\n regionCount: r.uint16,\n variationRegions: new r.Array(new r.Array(RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\n\nlet DeltaSet = new r.Struct({\n shortDeltas: new r.Array(r.int16, t => t.parent.shortDeltaCount),\n regionDeltas: new r.Array(r.int8, t => t.parent.regionIndexCount - t.parent.shortDeltaCount),\n deltas: t => t.shortDeltas.concat(t.regionDeltas)\n});\n\nlet ItemVariationData = new r.Struct({\n itemCount: r.uint16,\n shortDeltaCount: r.uint16,\n regionIndexCount: r.uint16,\n regionIndexes: new r.Array(r.uint16, 'regionIndexCount'),\n deltaSets: new r.Array(DeltaSet, 'itemCount')\n});\n\nexport let ItemVariationStore = new r.Struct({\n format: r.uint16,\n variationRegionList: new r.Pointer(r.uint32, VariationRegionList),\n variationDataCount: r.uint16,\n itemVariationData: new r.Array(new r.Pointer(r.uint32, ItemVariationData), 'variationDataCount')\n});\n\n/**********************\n * Feature Variations *\n **********************/\n\nlet ConditionTable = new r.VersionedStruct(r.uint16, {\n 1: {\n axisIndex: r.uint16,\n axisIndex: r.uint16,\n filterRangeMinValue: F2DOT14,\n filterRangeMaxValue: F2DOT14\n }\n});\n\nlet ConditionSet = new r.Struct({\n conditionCount: r.uint16,\n conditionTable: new r.Array(new r.Pointer(r.uint32, ConditionTable), 'conditionCount')\n});\n\nlet FeatureTableSubstitutionRecord = new r.Struct({\n featureIndex: r.uint16,\n alternateFeatureTable: new r.Pointer(r.uint32, Feature, {type: 'parent'})\n});\n\nlet FeatureTableSubstitution = new r.Struct({\n version: r.fixed32,\n substitutionCount: r.uint16,\n substitutions: new r.Array(FeatureTableSubstitutionRecord, 'substitutionCount')\n});\n\nlet FeatureVariationRecord = new r.Struct({\n conditionSet: new r.Pointer(r.uint32, ConditionSet, {type: 'parent'}),\n featureTableSubstitution: new r.Pointer(r.uint32, FeatureTableSubstitution, {type: 'parent'})\n});\n\nexport let FeatureVariations = new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n featureVariationRecordCount: r.uint32,\n featureVariationRecords: new r.Array(FeatureVariationRecord, 'featureVariationRecordCount')\n});\n","import * as r from 'restructure';\nimport { resolveLength } from 'restructure';\nimport CFFDict from './CFFDict';\nimport CFFIndex from './CFFIndex';\nimport CFFPointer from './CFFPointer';\nimport CFFPrivateDict from './CFFPrivateDict';\nimport StandardStrings from './CFFStandardStrings';\nimport { StandardEncoding, ExpertEncoding } from './CFFEncodings';\nimport { ISOAdobeCharset, ExpertCharset, ExpertSubsetCharset } from './CFFCharsets';\nimport { ItemVariationStore } from '../tables/variations';\n\n// Checks if an operand is an index of a predefined value,\n// otherwise delegates to the provided type.\nclass PredefinedOp {\n constructor(predefinedOps, type) {\n this.predefinedOps = predefinedOps;\n this.type = type;\n }\n\n decode(stream, parent, operands) {\n if (this.predefinedOps[operands[0]]) {\n return this.predefinedOps[operands[0]];\n }\n\n return this.type.decode(stream, parent, operands);\n }\n\n size(value, ctx) {\n return this.type.size(value, ctx);\n }\n\n encode(stream, value, ctx) {\n let index = this.predefinedOps.indexOf(value);\n if (index !== -1) {\n return index;\n }\n\n return this.type.encode(stream, value, ctx);\n }\n}\n\nclass CFFEncodingVersion extends r.Number {\n constructor() {\n super('UInt8');\n }\n\n decode(stream) {\n return r.uint8.decode(stream) & 0x7f;\n }\n}\n\nlet Range1 = new r.Struct({\n first: r.uint16,\n nLeft: r.uint8\n});\n\nlet Range2 = new r.Struct({\n first: r.uint16,\n nLeft: r.uint16\n});\n\nlet CFFCustomEncoding = new r.VersionedStruct(new CFFEncodingVersion(), {\n 0: {\n nCodes: r.uint8,\n codes: new r.Array(r.uint8, 'nCodes')\n },\n\n 1: {\n nRanges: r.uint8,\n ranges: new r.Array(Range1, 'nRanges')\n }\n\n // TODO: supplement?\n});\n\nlet CFFEncoding = new PredefinedOp([ StandardEncoding, ExpertEncoding ], new CFFPointer(CFFCustomEncoding, { lazy: true }));\n\n// Decodes an array of ranges until the total\n// length is equal to the provided length.\nclass RangeArray extends r.Array {\n decode(stream, parent) {\n let length = resolveLength(this.length, stream, parent);\n let count = 0;\n let res = [];\n while (count < length) {\n let range = this.type.decode(stream, parent);\n range.offset = count;\n count += range.nLeft + 1;\n res.push(range);\n }\n\n return res;\n }\n}\n\nlet CFFCustomCharset = new r.VersionedStruct(r.uint8, {\n 0: {\n glyphs: new r.Array(r.uint16, t => t.parent.CharStrings.length - 1)\n },\n\n 1: {\n ranges: new RangeArray(Range1, t => t.parent.CharStrings.length - 1)\n },\n\n 2: {\n ranges: new RangeArray(Range2, t => t.parent.CharStrings.length - 1)\n }\n});\n\nlet CFFCharset = new PredefinedOp([ ISOAdobeCharset, ExpertCharset, ExpertSubsetCharset ], new CFFPointer(CFFCustomCharset, {lazy: true}));\n\nlet FDRange3 = new r.Struct({\n first: r.uint16,\n fd: r.uint8\n});\n\nlet FDRange4 = new r.Struct({\n first: r.uint32,\n fd: r.uint16\n});\n\nlet FDSelect = new r.VersionedStruct(r.uint8, {\n 0: {\n fds: new r.Array(r.uint8, t => t.parent.CharStrings.length)\n },\n\n 3: {\n nRanges: r.uint16,\n ranges: new r.Array(FDRange3, 'nRanges'),\n sentinel: r.uint16\n },\n\n 4: {\n nRanges: r.uint32,\n ranges: new r.Array(FDRange4, 'nRanges'),\n sentinel: r.uint32\n }\n});\n\nlet ptr = new CFFPointer(CFFPrivateDict);\nclass CFFPrivateOp {\n decode(stream, parent, operands) {\n parent.length = operands[0];\n return ptr.decode(stream, parent, [operands[1]]);\n }\n\n size(dict, ctx) {\n return [CFFPrivateDict.size(dict, ctx, false), ptr.size(dict, ctx)[0]];\n }\n\n encode(stream, dict, ctx) {\n return [CFFPrivateDict.size(dict, ctx, false), ptr.encode(stream, dict, ctx)[0]];\n }\n}\n\nlet FontDict = new CFFDict([\n // key name type(s) default\n [18, 'Private', new CFFPrivateOp, null],\n [[12, 38], 'FontName', 'sid', null],\n [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]],\n [[12, 5], 'PaintType', 'number', 0],\n]);\n\nlet CFFTopDict = new CFFDict([\n // key name type(s) default\n [[12, 30], 'ROS', ['sid', 'sid', 'number'], null],\n\n [0, 'version', 'sid', null],\n [1, 'Notice', 'sid', null],\n [[12, 0], 'Copyright', 'sid', null],\n [2, 'FullName', 'sid', null],\n [3, 'FamilyName', 'sid', null],\n [4, 'Weight', 'sid', null],\n [[12, 1], 'isFixedPitch', 'boolean', false],\n [[12, 2], 'ItalicAngle', 'number', 0],\n [[12, 3], 'UnderlinePosition', 'number', -100],\n [[12, 4], 'UnderlineThickness', 'number', 50],\n [[12, 5], 'PaintType', 'number', 0],\n [[12, 6], 'CharstringType', 'number', 2],\n [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]],\n [13, 'UniqueID', 'number', null],\n [5, 'FontBBox', 'array', [0, 0, 0, 0]],\n [[12, 8], 'StrokeWidth', 'number', 0],\n [14, 'XUID', 'array', null],\n [15, 'charset', CFFCharset, ISOAdobeCharset],\n [16, 'Encoding', CFFEncoding, StandardEncoding],\n [17, 'CharStrings', new CFFPointer(new CFFIndex), null],\n [18, 'Private', new CFFPrivateOp, null],\n [[12, 20], 'SyntheticBase', 'number', null],\n [[12, 21], 'PostScript', 'sid', null],\n [[12, 22], 'BaseFontName', 'sid', null],\n [[12, 23], 'BaseFontBlend', 'delta', null],\n\n // CID font specific\n [[12, 31], 'CIDFontVersion', 'number', 0],\n [[12, 32], 'CIDFontRevision', 'number', 0],\n [[12, 33], 'CIDFontType', 'number', 0],\n [[12, 34], 'CIDCount', 'number', 8720],\n [[12, 35], 'UIDBase', 'number', null],\n [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null],\n [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null],\n [[12, 38], 'FontName', 'sid', null]\n]);\n\nlet VariationStore = new r.Struct({\n length: r.uint16,\n itemVariationStore: ItemVariationStore\n})\n\nlet CFF2TopDict = new CFFDict([\n [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]],\n [17, 'CharStrings', new CFFPointer(new CFFIndex), null],\n [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null],\n [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null],\n [24, 'vstore', new CFFPointer(VariationStore), null],\n [25, 'maxstack', 'number', 193]\n]);\n\nlet CFFTop = new r.VersionedStruct(r.fixed16, {\n 1: {\n hdrSize: r.uint8,\n offSize: r.uint8,\n nameIndex: new CFFIndex(new r.String('length')),\n topDictIndex: new CFFIndex(CFFTopDict),\n stringIndex: new CFFIndex(new r.String('length')),\n globalSubrIndex: new CFFIndex\n },\n\n 2: {\n hdrSize: r.uint8,\n length: r.uint16,\n topDict: CFF2TopDict,\n globalSubrIndex: new CFFIndex\n }\n});\n\nexport default CFFTop;\n","import * as r from 'restructure';\nimport CFFIndex from './CFFIndex';\nimport CFFTop from './CFFTop';\nimport CFFPrivateDict from './CFFPrivateDict';\nimport standardStrings from './CFFStandardStrings';\n\nclass CFFFont {\n constructor(stream) {\n this.stream = stream;\n this.decode();\n }\n\n static decode(stream) {\n return new CFFFont(stream);\n }\n\n decode() {\n let start = this.stream.pos;\n let top = CFFTop.decode(this.stream);\n for (let key in top) {\n let val = top[key];\n this[key] = val;\n }\n\n if (this.version < 2) {\n if (this.topDictIndex.length !== 1) {\n throw new Error(\"Only a single font is allowed in CFF\");\n }\n\n this.topDict = this.topDictIndex[0];\n }\n\n this.isCIDFont = this.topDict.ROS != null;\n return this;\n }\n\n string(sid) {\n if (this.version >= 2) {\n return null;\n }\n\n if (sid < standardStrings.length) {\n return standardStrings[sid];\n }\n\n return this.stringIndex[sid - standardStrings.length];\n }\n\n get postscriptName() {\n if (this.version < 2) {\n return this.nameIndex[0];\n }\n\n return null;\n }\n\n get fullName() {\n return this.string(this.topDict.FullName);\n }\n\n get familyName() {\n return this.string(this.topDict.FamilyName);\n }\n\n getCharString(glyph) {\n this.stream.pos = this.topDict.CharStrings[glyph].offset;\n return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n }\n\n getGlyphName(gid) {\n // CFF2 glyph names are in the post table.\n if (this.version >= 2) {\n return null;\n }\n\n // CID-keyed fonts don't have glyph names\n if (this.isCIDFont) {\n return null;\n }\n\n let { charset } = this.topDict;\n if (Array.isArray(charset)) {\n return charset[gid];\n }\n\n if (gid === 0) {\n return '.notdef';\n }\n\n gid -= 1;\n\n switch (charset.version) {\n case 0:\n return this.string(charset.glyphs[gid]);\n\n case 1:\n case 2:\n for (let i = 0; i < charset.ranges.length; i++) {\n let range = charset.ranges[i];\n if (range.offset <= gid && gid <= range.offset + range.nLeft) {\n return this.string(range.first + (gid - range.offset));\n }\n }\n break;\n }\n\n return null;\n }\n\n fdForGlyph(gid) {\n if (!this.topDict.FDSelect) {\n return null;\n }\n\n switch (this.topDict.FDSelect.version) {\n case 0:\n return this.topDict.FDSelect.fds[gid];\n\n case 3:\n case 4:\n let { ranges } = this.topDict.FDSelect;\n let low = 0;\n let high = ranges.length - 1;\n\n while (low <= high) {\n let mid = (low + high) >> 1;\n\n if (gid < ranges[mid].first) {\n high = mid - 1;\n } else if (mid < high && gid >= ranges[mid + 1].first) {\n low = mid + 1;\n } else {\n return ranges[mid].fd;\n }\n }\n default:\n throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`);\n }\n }\n\n privateDictForGlyph(gid) {\n if (this.topDict.FDSelect) {\n let fd = this.fdForGlyph(gid);\n if (this.topDict.FDArray[fd]) {\n return this.topDict.FDArray[fd].Private;\n }\n\n return null;\n }\n\n if (this.version < 2) {\n return this.topDict.Private;\n }\n\n return this.topDict.FDArray[0].Private;\n }\n}\n\nexport default CFFFont;\n","import * as r from 'restructure';\n\nlet VerticalOrigin = new r.Struct({\n glyphIndex: r.uint16,\n vertOriginY: r.int16\n});\n\nexport default new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n defaultVertOriginY: r.int16,\n numVertOriginYMetrics: r.uint16,\n metrics: new r.Array(VerticalOrigin, 'numVertOriginYMetrics')\n});\n","import * as r from 'restructure';\n\nexport let BigMetrics = new r.Struct({\n height: r.uint8,\n width: r.uint8,\n horiBearingX: r.int8,\n horiBearingY: r.int8,\n horiAdvance: r.uint8,\n vertBearingX: r.int8,\n vertBearingY: r.int8,\n vertAdvance: r.uint8\n});\n\nexport let SmallMetrics = new r.Struct({\n height: r.uint8,\n width: r.uint8,\n bearingX: r.int8,\n bearingY: r.int8,\n advance: r.uint8\n});\n\nlet EBDTComponent = new r.Struct({\n glyph: r.uint16,\n xOffset: r.int8,\n yOffset: r.int8\n});\n\nclass ByteAligned {}\n\nclass BitAligned {}\n\nexport let glyph = new r.VersionedStruct('version', {\n 1: {\n metrics: SmallMetrics,\n data: ByteAligned\n },\n\n 2: {\n metrics: SmallMetrics,\n data: BitAligned\n },\n\n // format 3 is deprecated\n // format 4 is not supported by Microsoft\n\n 5: {\n data: BitAligned\n },\n\n 6: {\n metrics: BigMetrics,\n data: ByteAligned\n },\n\n 7: {\n metrics: BigMetrics,\n data: BitAligned\n },\n\n 8: {\n metrics: SmallMetrics,\n pad: new r.Reserved(r.uint8),\n numComponents: r.uint16,\n components: new r.Array(EBDTComponent, 'numComponents')\n },\n\n 9: {\n metrics: BigMetrics,\n pad: new r.Reserved(r.uint8),\n numComponents: r.uint16,\n components: new r.Array(EBDTComponent, 'numComponents')\n },\n\n 17: {\n metrics: SmallMetrics,\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n },\n\n 18: {\n metrics: BigMetrics,\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n },\n\n 19: {\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n }\n});\n\n","import * as r from 'restructure';\nimport {BigMetrics} from './EBDT';\n\nlet SBitLineMetrics = new r.Struct({\n ascender: r.int8,\n descender: r.int8,\n widthMax: r.uint8,\n caretSlopeNumerator: r.int8,\n caretSlopeDenominator: r.int8,\n caretOffset: r.int8,\n minOriginSB: r.int8,\n minAdvanceSB: r.int8,\n maxBeforeBL: r.int8,\n minAfterBL: r.int8,\n pad: new r.Reserved(r.int8, 2)\n});\n\nlet CodeOffsetPair = new r.Struct({\n glyphCode: r.uint16,\n offset: r.uint16\n});\n\nlet IndexSubtable = new r.VersionedStruct(r.uint16, {\n header: {\n imageFormat: r.uint16,\n imageDataOffset: r.uint32\n },\n\n 1: {\n offsetArray: new r.Array(r.uint32, t => t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n\n 2: {\n imageSize: r.uint32,\n bigMetrics: BigMetrics\n },\n\n 3: {\n offsetArray: new r.Array(r.uint16, t => t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n\n 4: {\n numGlyphs: r.uint32,\n glyphArray: new r.Array(CodeOffsetPair, t => t.numGlyphs + 1)\n },\n\n 5: {\n imageSize: r.uint32,\n bigMetrics: BigMetrics,\n numGlyphs: r.uint32,\n glyphCodeArray: new r.Array(r.uint16, 'numGlyphs')\n }\n});\n\nlet IndexSubtableArray = new r.Struct({\n firstGlyphIndex: r.uint16,\n lastGlyphIndex: r.uint16,\n subtable: new r.Pointer(r.uint32, IndexSubtable)\n});\n\nlet BitmapSizeTable = new r.Struct({\n indexSubTableArray: new r.Pointer(r.uint32, new r.Array(IndexSubtableArray, 1), { type: 'parent' }),\n indexTablesSize: r.uint32,\n numberOfIndexSubTables: r.uint32,\n colorRef: r.uint32,\n hori: SBitLineMetrics,\n vert: SBitLineMetrics,\n startGlyphIndex: r.uint16,\n endGlyphIndex: r.uint16,\n ppemX: r.uint8,\n ppemY: r.uint8,\n bitDepth: r.uint8,\n flags: new r.Bitfield(r.uint8, ['horizontal', 'vertical'])\n});\n\nexport default new r.Struct({\n version: r.uint32, // 0x00020000\n numSizes: r.uint32,\n sizes: new r.Array(BitmapSizeTable, 'numSizes')\n});\n","import * as r from 'restructure';\n\nlet ImageTable = new r.Struct({\n ppem: r.uint16,\n resolution: r.uint16,\n imageOffsets: new r.Array(new r.Pointer(r.uint32, 'void'), t => t.parent.parent.maxp.numGlyphs + 1)\n});\n\n// This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\nexport default new r.Struct({\n version: r.uint16,\n flags: new r.Bitfield(r.uint16, ['renderOutlines']),\n numImgTables: r.uint32,\n imageTables: new r.Array(new r.Pointer(r.uint32, ImageTable), 'numImgTables')\n});\n","import * as r from 'restructure';\n\nlet LayerRecord = new r.Struct({\n gid: r.uint16, // Glyph ID of layer glyph (must be in z-order from bottom to top).\n paletteIndex: r.uint16 // Index value to use in the appropriate palette. This value must\n}); // be less than numPaletteEntries in the CPAL table, except for\n // the special case noted below. Each palette entry is 16 bits.\n // A palette index of 0xFFFF is a special case indicating that\n // the text foreground color should be used.\n\nlet BaseGlyphRecord = new r.Struct({\n gid: r.uint16, // Glyph ID of reference glyph. This glyph is for reference only\n // and is not rendered for color.\n firstLayerIndex: r.uint16, // Index (from beginning of the Layer Records) to the layer record.\n // There will be numLayers consecutive entries for this base glyph.\n numLayers: r.uint16\n});\n\nexport default new r.Struct({\n version: r.uint16,\n numBaseGlyphRecords: r.uint16,\n baseGlyphRecord: new r.Pointer(r.uint32, new r.Array(BaseGlyphRecord, 'numBaseGlyphRecords')),\n layerRecords: new r.Pointer(r.uint32, new r.Array(LayerRecord, 'numLayerRecords'), { lazy: true }),\n numLayerRecords: r.uint16\n});\n","import * as r from 'restructure';\n\nlet ColorRecord = new r.Struct({\n blue: r.uint8,\n green: r.uint8,\n red: r.uint8,\n alpha: r.uint8\n});\n\nexport default new r.VersionedStruct(r.uint16, {\n header: {\n numPaletteEntries: r.uint16,\n numPalettes: r.uint16,\n numColorRecords: r.uint16,\n colorRecords: new r.Pointer(r.uint32, new r.Array(ColorRecord, 'numColorRecords')),\n colorRecordIndices: new r.Array(r.uint16, 'numPalettes'),\n },\n 0: {},\n 1: {\n offsetPaletteTypeArray: new r.Pointer(r.uint32, new r.Array(r.uint32, 'numPalettes')),\n offsetPaletteLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPalettes')),\n offsetPaletteEntryLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPaletteEntries'))\n }\n});\n","import * as r from 'restructure';\nimport {ScriptList, FeatureList, LookupList, Coverage, ClassDef, Device} from './opentype';\nimport {ItemVariationStore} from './variations';\n\nlet BaseCoord = new r.VersionedStruct(r.uint16, {\n 1: { // Design units only\n coordinate: r.int16 // X or Y value, in design units\n },\n\n 2: { // Design units plus contour point\n coordinate: r.int16, // X or Y value, in design units\n referenceGlyph: r.uint16, // GlyphID of control glyph\n baseCoordPoint: r.uint16 // Index of contour point on the referenceGlyph\n },\n\n 3: { // Design units plus Device table\n coordinate: r.int16, // X or Y value, in design units\n deviceTable: new r.Pointer(r.uint16, Device) // Device table for X or Y value\n }\n});\n\nlet BaseValues = new r.Struct({\n defaultIndex: r.uint16, // Index of default baseline for this script-same index in the BaseTagList\n baseCoordCount: r.uint16,\n baseCoords: new r.Array(new r.Pointer(r.uint16, BaseCoord), 'baseCoordCount')\n});\n\nlet FeatMinMaxRecord = new r.Struct({\n tag: new r.String(4), // 4-byte feature identification tag-must match FeatureTag in FeatureList\n minCoord: new r.Pointer(r.uint16, BaseCoord, {type: 'parent'}), // May be NULL\n maxCoord: new r.Pointer(r.uint16, BaseCoord, {type: 'parent'}) // May be NULL\n});\n\nlet MinMax = new r.Struct({\n minCoord: new r.Pointer(r.uint16, BaseCoord), // May be NULL\n maxCoord: new r.Pointer(r.uint16, BaseCoord), // May be NULL\n featMinMaxCount: r.uint16, // May be 0\n featMinMaxRecords: new r.Array(FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n});\n\nlet BaseLangSysRecord = new r.Struct({\n tag: new r.String(4), // 4-byte language system identification tag\n minMax: new r.Pointer(r.uint16, MinMax, {type: 'parent'})\n});\n\nlet BaseScript = new r.Struct({\n baseValues: new r.Pointer(r.uint16, BaseValues), // May be NULL\n defaultMinMax: new r.Pointer(r.uint16, MinMax), // May be NULL\n baseLangSysCount: r.uint16, // May be 0\n baseLangSysRecords: new r.Array(BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n});\n\nlet BaseScriptRecord = new r.Struct({\n tag: new r.String(4), // 4-byte script identification tag\n script: new r.Pointer(r.uint16, BaseScript, {type: 'parent'})\n});\n\nlet BaseScriptList = new r.Array(BaseScriptRecord, r.uint16);\n\n// Array of 4-byte baseline identification tags-must be in alphabetical order\nlet BaseTagList = new r.Array(new r.String(4), r.uint16);\n\nlet Axis = new r.Struct({\n baseTagList: new r.Pointer(r.uint16, BaseTagList), // May be NULL\n baseScriptList: new r.Pointer(r.uint16, BaseScriptList)\n});\n\nexport default new r.VersionedStruct(r.uint32, {\n header: {\n horizAxis: new r.Pointer(r.uint16, Axis), // May be NULL\n vertAxis: new r.Pointer(r.uint16, Axis) // May be NULL\n },\n\n 0x00010000: {},\n 0x00010001: {\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n }\n});\n","import * as r from 'restructure';\nimport {ScriptList, FeatureList, LookupList, Coverage, ClassDef, Device} from './opentype';\nimport {ItemVariationStore} from './variations';\n\nlet AttachPoint = new r.Array(r.uint16, r.uint16);\nlet AttachList = new r.Struct({\n coverage: new r.Pointer(r.uint16, Coverage),\n glyphCount: r.uint16,\n attachPoints: new r.Array(new r.Pointer(r.uint16, AttachPoint), 'glyphCount')\n});\n\nlet CaretValue = new r.VersionedStruct(r.uint16, {\n 1: { // Design units only\n coordinate: r.int16\n },\n\n 2: { // Contour point\n caretValuePoint: r.uint16\n },\n\n 3: { // Design units plus Device table\n coordinate: r.int16,\n deviceTable: new r.Pointer(r.uint16, Device)\n }\n});\n\nlet LigGlyph = new r.Array(new r.Pointer(r.uint16, CaretValue), r.uint16);\n\nlet LigCaretList = new r.Struct({\n coverage: new r.Pointer(r.uint16, Coverage),\n ligGlyphCount: r.uint16,\n ligGlyphs: new r.Array(new r.Pointer(r.uint16, LigGlyph), 'ligGlyphCount')\n});\n\nlet MarkGlyphSetsDef = new r.Struct({\n markSetTableFormat: r.uint16,\n markSetCount: r.uint16,\n coverage: new r.Array(new r.Pointer(r.uint32, Coverage), 'markSetCount')\n});\n\nexport default new r.VersionedStruct(r.uint32, {\n header: {\n glyphClassDef: new r.Pointer(r.uint16, ClassDef),\n attachList: new r.Pointer(r.uint16, AttachList),\n ligCaretList: new r.Pointer(r.uint16, LigCaretList),\n markAttachClassDef: new r.Pointer(r.uint16, ClassDef)\n },\n\n 0x00010000: {},\n 0x00010002: {\n markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef)\n },\n 0x00010003: {\n markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef),\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n }\n});\n","import * as r from 'restructure';\nimport {ScriptList, FeatureList, LookupList, Coverage, ClassDef, Device, Context, ChainingContext} from './opentype';\nimport {FeatureVariations} from './variations';\n\nlet ValueFormat = new r.Bitfield(r.uint16, [\n 'xPlacement', 'yPlacement',\n 'xAdvance', 'yAdvance',\n 'xPlaDevice', 'yPlaDevice',\n 'xAdvDevice', 'yAdvDevice'\n]);\n\nlet types = {\n xPlacement: r.int16,\n yPlacement: r.int16,\n xAdvance: r.int16,\n yAdvance: r.int16,\n xPlaDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: ctx => ctx.rel }),\n yPlaDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: ctx => ctx.rel }),\n xAdvDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: ctx => ctx.rel }),\n yAdvDevice: new r.Pointer(r.uint16, Device, { type: 'global', relativeTo: ctx => ctx.rel })\n};\n\nclass ValueRecord {\n constructor(key = 'valueFormat') {\n this.key = key;\n }\n\n buildStruct(parent) {\n let struct = parent;\n while (!struct[this.key] && struct.parent) {\n struct = struct.parent;\n }\n\n if (!struct[this.key]) return;\n\n let fields = {};\n fields.rel = () => struct._startOffset;\n\n let format = struct[this.key];\n for (let key in format) {\n if (format[key]) {\n fields[key] = types[key];\n }\n }\n\n return new r.Struct(fields);\n }\n\n size(val, ctx) {\n return this.buildStruct(ctx).size(val, ctx);\n }\n\n decode(stream, parent) {\n let res = this.buildStruct(parent).decode(stream, parent);\n delete res.rel;\n return res;\n }\n}\n\nlet PairValueRecord = new r.Struct({\n secondGlyph: r.uint16,\n value1: new ValueRecord('valueFormat1'),\n value2: new ValueRecord('valueFormat2')\n});\n\nlet PairSet = new r.Array(PairValueRecord, r.uint16);\n\nlet Class2Record = new r.Struct({\n value1: new ValueRecord('valueFormat1'),\n value2: new ValueRecord('valueFormat2')\n});\n\nlet Anchor = new r.VersionedStruct(r.uint16, {\n 1: { // Design units only\n xCoordinate: r.int16,\n yCoordinate: r.int16\n },\n\n 2: { // Design units plus contour point\n xCoordinate: r.int16,\n yCoordinate: r.int16,\n anchorPoint: r.uint16\n },\n\n 3: { // Design units plus Device tables\n xCoordinate: r.int16,\n yCoordinate: r.int16,\n xDeviceTable: new r.Pointer(r.uint16, Device),\n yDeviceTable: new r.Pointer(r.uint16, Device)\n }\n});\n\nlet EntryExitRecord = new r.Struct({\n entryAnchor: new r.Pointer(r.uint16, Anchor, {type: 'parent'}),\n exitAnchor: new r.Pointer(r.uint16, Anchor, {type: 'parent'})\n});\n\nlet MarkRecord = new r.Struct({\n class: r.uint16,\n markAnchor: new r.Pointer(r.uint16, Anchor, {type: 'parent'})\n});\n\nlet MarkArray = new r.Array(MarkRecord, r.uint16);\n\nlet BaseRecord = new r.Array(new r.Pointer(r.uint16, Anchor), t => t.parent.classCount);\nlet BaseArray = new r.Array(BaseRecord, r.uint16);\n\nlet ComponentRecord = new r.Array(new r.Pointer(r.uint16, Anchor), t => t.parent.parent.classCount);\nlet LigatureAttach = new r.Array(ComponentRecord, r.uint16);\nlet LigatureArray = new r.Array(new r.Pointer(r.uint16, LigatureAttach), r.uint16);\n\nlet GPOSLookup = new r.VersionedStruct('lookupType', {\n 1: new r.VersionedStruct(r.uint16, { // Single Adjustment\n 1: { // Single positioning value\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat: ValueFormat,\n value: new ValueRecord()\n },\n 2: {\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat: ValueFormat,\n valueCount: r.uint16,\n values: new r.LazyArray(new ValueRecord(), 'valueCount')\n }\n }),\n\n 2: new r.VersionedStruct(r.uint16, { // Pair Adjustment Positioning\n 1: { // Adjustments for glyph pairs\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat1: ValueFormat,\n valueFormat2: ValueFormat,\n pairSetCount: r.uint16,\n pairSets: new r.LazyArray(new r.Pointer(r.uint16, PairSet), 'pairSetCount')\n },\n\n 2: { // Class pair adjustment\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat1: ValueFormat,\n valueFormat2: ValueFormat,\n classDef1: new r.Pointer(r.uint16, ClassDef),\n classDef2: new r.Pointer(r.uint16, ClassDef),\n class1Count: r.uint16,\n class2Count: r.uint16,\n classRecords: new r.LazyArray(new r.LazyArray(Class2Record, 'class2Count'), 'class1Count')\n }\n }),\n\n 3: { // Cursive Attachment Positioning\n format: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n entryExitCount: r.uint16,\n entryExitRecords: new r.Array(EntryExitRecord, 'entryExitCount')\n },\n\n 4: { // MarkToBase Attachment Positioning\n format: r.uint16,\n markCoverage: new r.Pointer(r.uint16, Coverage),\n baseCoverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n markArray: new r.Pointer(r.uint16, MarkArray),\n baseArray: new r.Pointer(r.uint16, BaseArray)\n },\n\n 5: { // MarkToLigature Attachment Positioning\n format: r.uint16,\n markCoverage: new r.Pointer(r.uint16, Coverage),\n ligatureCoverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n markArray: new r.Pointer(r.uint16, MarkArray),\n ligatureArray: new r.Pointer(r.uint16, LigatureArray)\n },\n\n 6: { // MarkToMark Attachment Positioning\n format: r.uint16,\n mark1Coverage: new r.Pointer(r.uint16, Coverage),\n mark2Coverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n mark1Array: new r.Pointer(r.uint16, MarkArray),\n mark2Array: new r.Pointer(r.uint16, BaseArray)\n },\n\n 7: Context, // Contextual positioning\n 8: ChainingContext, // Chaining contextual positioning\n\n 9: { // Extension Positioning\n posFormat: r.uint16,\n lookupType: r.uint16, // cannot also be 9\n extension: new r.Pointer(r.uint32, null)\n }\n});\n\n// Fix circular reference\nGPOSLookup.versions[9].extension.type = GPOSLookup;\n\nexport default new r.VersionedStruct(r.uint32, {\n header: {\n scriptList: new r.Pointer(r.uint16, ScriptList),\n featureList: new r.Pointer(r.uint16, FeatureList),\n lookupList: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n },\n\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n }\n});\n\n// export GPOSLookup for JSTF table\nexport { GPOSLookup };\n","import * as r from 'restructure';\nimport {ScriptList, FeatureList, LookupList, Coverage, ClassDef, Device, Context, ChainingContext} from './opentype';\nimport {FeatureVariations} from './variations';\n\nlet Sequence = new r.Array(r.uint16, r.uint16);\nlet AlternateSet = Sequence;\n\nlet Ligature = new r.Struct({\n glyph: r.uint16,\n compCount: r.uint16,\n components: new r.Array(r.uint16, t => t.compCount - 1)\n});\n\nlet LigatureSet = new r.Array(new r.Pointer(r.uint16, Ligature), r.uint16);\n\nlet GSUBLookup = new r.VersionedStruct('lookupType', {\n 1: new r.VersionedStruct(r.uint16, {// Single Substitution\n 1: {\n coverage: new r.Pointer(r.uint16, Coverage),\n deltaGlyphID: r.int16\n },\n 2: {\n coverage: new r.Pointer(r.uint16, Coverage),\n glyphCount: r.uint16,\n substitute: new r.LazyArray(r.uint16, 'glyphCount')\n }\n }),\n\n 2: { // Multiple Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n sequences: new r.LazyArray(new r.Pointer(r.uint16, Sequence), 'count')\n },\n\n 3: { // Alternate Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n alternateSet: new r.LazyArray(new r.Pointer(r.uint16, AlternateSet), 'count')\n },\n\n 4: { // Ligature Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n ligatureSets: new r.LazyArray(new r.Pointer(r.uint16, LigatureSet), 'count')\n },\n\n 5: Context, // Contextual Substitution\n 6: ChainingContext, // Chaining Contextual Substitution\n\n 7: { // Extension Substitution\n substFormat: r.uint16,\n lookupType: r.uint16, // cannot also be 7\n extension: new r.Pointer(r.uint32, null)\n },\n\n 8: { // Reverse Chaining Contextual Single Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n lookaheadGlyphCount: r.uint16,\n lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n glyphCount: r.uint16,\n substitutes: new r.Array(r.uint16, 'glyphCount')\n }\n});\n\n// Fix circular reference\nGSUBLookup.versions[7].extension.type = GSUBLookup;\n\nexport default new r.VersionedStruct(r.uint32, {\n header: {\n scriptList: new r.Pointer(r.uint16, ScriptList),\n featureList: new r.Pointer(r.uint16, FeatureList),\n lookupList: new r.Pointer(r.uint16, new LookupList(GSUBLookup))\n },\n\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n }\n});\n","import * as r from 'restructure';\nimport { ScriptList, FeatureList, LookupList, Coverage, ClassDef, Device } from './opentype';\nimport { GPOSLookup } from './GPOS';\n\nlet JstfGSUBModList = new r.Array(r.uint16, r.uint16);\n\nlet JstfPriority = new r.Struct({\n shrinkageEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup)),\n extensionEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n});\n\nlet JstfLangSys = new r.Array(new r.Pointer(r.uint16, JstfPriority), r.uint16);\n\nlet JstfLangSysRecord = new r.Struct({\n tag: new r.String(4),\n jstfLangSys: new r.Pointer(r.uint16, JstfLangSys)\n});\n\nlet JstfScript = new r.Struct({\n extenderGlyphs: new r.Pointer(r.uint16, new r.Array(r.uint16, r.uint16)), // array of glyphs to extend line length\n defaultLangSys: new r.Pointer(r.uint16, JstfLangSys),\n langSysCount: r.uint16,\n langSysRecords: new r.Array(JstfLangSysRecord, 'langSysCount')\n});\n\nlet JstfScriptRecord = new r.Struct({\n tag: new r.String(4),\n script: new r.Pointer(r.uint16, JstfScript, {type: 'parent'})\n});\n\nexport default new r.Struct({\n version: r.uint32, // should be 0x00010000\n scriptCount: r.uint16,\n scriptList: new r.Array(JstfScriptRecord, 'scriptCount')\n});\n","import * as r from 'restructure';\nimport { resolveLength } from 'restructure';\nimport { ItemVariationStore } from './variations';\n\n// TODO: add this to restructure\nclass VariableSizeNumber {\n constructor(size) {\n this._size = size;\n }\n\n decode(stream, parent) {\n switch (this.size(0, parent)) {\n case 1: return stream.readUInt8();\n case 2: return stream.readUInt16BE();\n case 3: return stream.readUInt24BE();\n case 4: return stream.readUInt32BE();\n }\n }\n\n size(val, parent) {\n return resolveLength(this._size, null, parent);\n }\n}\n\nlet MapDataEntry = new r.Struct({\n entry: new VariableSizeNumber(t => ((t.parent.entryFormat & 0x0030) >> 4) + 1),\n outerIndex: t => t.entry >> ((t.parent.entryFormat & 0x000F) + 1),\n innerIndex: t => t.entry & ((1 << ((t.parent.entryFormat & 0x000F) + 1)) - 1)\n});\n\nlet DeltaSetIndexMap = new r.Struct({\n entryFormat: r.uint16,\n mapCount: r.uint16,\n mapData: new r.Array(MapDataEntry, 'mapCount')\n});\n\nexport default new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore),\n advanceWidthMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n LSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n RSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap)\n});\n","import * as r from 'restructure';\n\nlet Signature = new r.Struct({\n format: r.uint32,\n length: r.uint32,\n offset: r.uint32\n});\n\nlet SignatureBlock = new r.Struct({\n reserved: new r.Reserved(r.uint16, 2),\n cbSignature: r.uint32, // Length (in bytes) of the PKCS#7 packet in pbSignature\n signature: new r.Buffer('cbSignature')\n});\n\nexport default new r.Struct({\n ulVersion: r.uint32, // Version number of the DSIG table (0x00000001)\n usNumSigs: r.uint16, // Number of signatures in the table\n usFlag: r.uint16, // Permission flags\n signatures: new r.Array(Signature, 'usNumSigs'),\n signatureBlocks: new r.Array(SignatureBlock, 'usNumSigs')\n});\n","import * as r from 'restructure';\n\nlet GaspRange = new r.Struct({\n rangeMaxPPEM: r.uint16, // Upper limit of range, in ppem\n rangeGaspBehavior: new r.Bitfield(r.uint16, [ // Flags describing desired rasterizer behavior\n 'grayscale', 'gridfit',\n 'symmetricSmoothing', 'symmetricGridfit' // only in version 1, for ClearType\n ])\n});\n\nexport default new r.Struct({\n version: r.uint16, // set to 0\n numRanges: r.uint16,\n gaspRanges: new r.Array(GaspRange, 'numRanges') // Sorted by ppem\n});\n","import * as r from 'restructure';\n\nlet DeviceRecord = new r.Struct({\n pixelSize: r.uint8,\n maximumWidth: r.uint8,\n widths: new r.Array(r.uint8, t => t.parent.parent.maxp.numGlyphs)\n});\n\n// The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\nexport default new r.Struct({\n version: r.uint16,\n numRecords: r.int16,\n sizeDeviceRecord: r.int32,\n records: new r.Array(DeviceRecord, 'numRecords')\n});\n","import * as r from 'restructure';\n\nlet KernPair = new r.Struct({\n left: r.uint16,\n right: r.uint16,\n value: r.int16\n});\n\nlet ClassTable = new r.Struct({\n firstGlyph: r.uint16,\n nGlyphs: r.uint16,\n offsets: new r.Array(r.uint16, 'nGlyphs'),\n max: t => t.offsets.length && Math.max.apply(Math, t.offsets)\n});\n\nlet Kern2Array = new r.Struct({\n off: t => t._startOffset - t.parent.parent._startOffset,\n len: t => (((t.parent.leftTable.max - t.off) / t.parent.rowWidth) + 1) * (t.parent.rowWidth / 2),\n values: new r.LazyArray(r.int16, 'len')\n});\n\nlet KernSubtable = new r.VersionedStruct('format', {\n 0: {\n nPairs: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n pairs: new r.Array(KernPair, 'nPairs')\n },\n\n 2: {\n rowWidth: r.uint16,\n leftTable: new r.Pointer(r.uint16, ClassTable, {type: 'parent'}),\n rightTable: new r.Pointer(r.uint16, ClassTable, {type: 'parent'}),\n array: new r.Pointer(r.uint16, Kern2Array, {type: 'parent'})\n },\n\n 3: {\n glyphCount: r.uint16,\n kernValueCount: r.uint8,\n leftClassCount: r.uint8,\n rightClassCount: r.uint8,\n flags: r.uint8,\n kernValue: new r.Array(r.int16, 'kernValueCount'),\n leftClass: new r.Array(r.uint8, 'glyphCount'),\n rightClass: new r.Array(r.uint8, 'glyphCount'),\n kernIndex: new r.Array(r.uint8, t => t.leftClassCount * t.rightClassCount)\n }\n});\n\nlet KernTable = new r.VersionedStruct('version', {\n 0: { // Microsoft uses this format\n subVersion: r.uint16, // Microsoft has an extra sub-table version number\n length: r.uint16, // Length of the subtable, in bytes\n format: r.uint8, // Format of subtable\n coverage: new r.Bitfield(r.uint8, [\n 'horizontal', // 1 if table has horizontal data, 0 if vertical\n 'minimum', // If set to 1, the table has minimum values. If set to 0, the table has kerning values.\n 'crossStream', // If set to 1, kerning is perpendicular to the flow of the text\n 'override' // If set to 1 the value in this table replaces the accumulated value\n ]),\n subtable: KernSubtable,\n padding: new r.Reserved(r.uint8, t => t.length - t._currentOffset)\n },\n 1: { // Apple uses this format\n length: r.uint32,\n coverage: new r.Bitfield(r.uint8, [\n null, null, null, null, null,\n 'variation', // Set if table has variation kerning values\n 'crossStream', // Set if table has cross-stream kerning values\n 'vertical' // Set if table has vertical kerning values\n ]),\n format: r.uint8,\n tupleIndex: r.uint16,\n subtable: KernSubtable,\n padding: new r.Reserved(r.uint8, t => t.length - t._currentOffset)\n }\n});\n\nexport default new r.VersionedStruct(r.uint16, {\n 0: { // Microsoft Version\n nTables: r.uint16,\n tables: new r.Array(KernTable, 'nTables')\n },\n\n 1: { // Apple Version\n reserved: new r.Reserved(r.uint16), // the other half of the version number\n nTables: r.uint32,\n tables: new r.Array(KernTable, 'nTables')\n }\n});\n","import * as r from 'restructure';\n\n// Linear Threshold table\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\nexport default new r.Struct({\n version: r.uint16,\n numGlyphs: r.uint16,\n yPels: new r.Array(r.uint8, 'numGlyphs')\n});\n","import * as r from 'restructure';\n\n// PCL 5 Table\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\nexport default new r.Struct({\n version: r.uint16,\n fontNumber: r.uint32,\n pitch: r.uint16,\n xHeight: r.uint16,\n style: r.uint16,\n typeFamily: r.uint16,\n capHeight: r.uint16,\n symbolSet: r.uint16,\n typeface: new r.String(16),\n characterComplement: new r.String(8),\n fileName: new r.String(6),\n strokeWeight: new r.String(1),\n widthType: new r.String(1),\n serifStyle: r.uint8,\n reserved: new r.Reserved(r.uint8)\n});\n","import * as r from 'restructure';\n\n// VDMX tables contain ascender/descender overrides for certain (usually small)\n// sizes. This is needed in order to match font metrics on Windows.\n\nlet Ratio = new r.Struct({\n bCharSet: r.uint8, // Character set\n xRatio: r.uint8, // Value to use for x-Ratio\n yStartRatio: r.uint8, // Starting y-Ratio value\n yEndRatio: r.uint8 // Ending y-Ratio value\n});\n\nlet vTable = new r.Struct({\n yPelHeight: r.uint16, // yPelHeight to which values apply\n yMax: r.int16, // Maximum value (in pels) for this yPelHeight\n yMin: r.int16 // Minimum value (in pels) for this yPelHeight\n});\n\nlet VdmxGroup = new r.Struct({\n recs: r.uint16, // Number of height records in this group\n startsz: r.uint8, // Starting yPelHeight\n endsz: r.uint8, // Ending yPelHeight\n entries: new r.Array(vTable, 'recs') // The VDMX records\n});\n\nexport default new r.Struct({\n version: r.uint16, // Version number (0 or 1)\n numRecs: r.uint16, // Number of VDMX groups present\n numRatios: r.uint16, // Number of aspect ratio groupings\n ratioRanges: new r.Array(Ratio, 'numRatios'), // Ratio ranges\n offsets: new r.Array(r.uint16, 'numRatios'), // Offset to the VDMX group for this ratio range\n groups: new r.Array(VdmxGroup, 'numRecs') // The actual VDMX groupings\n});\n","import * as r from 'restructure';\n\n// Vertical Header Table\nexport default new r.Struct({\n version: r.uint16, // Version number of the Vertical Header Table\n ascent: r.int16, // The vertical typographic ascender for this font\n descent: r.int16, // The vertical typographic descender for this font\n lineGap: r.int16, // The vertical typographic line gap for this font\n advanceHeightMax: r.int16, // The maximum advance height measurement found in the font\n minTopSideBearing: r.int16, // The minimum top side bearing measurement found in the font\n minBottomSideBearing: r.int16, // The minimum bottom side bearing measurement found in the font\n yMaxExtent: r.int16,\n caretSlopeRise: r.int16, // Caret slope (rise/run)\n caretSlopeRun: r.int16,\n caretOffset: r.int16, // Set value equal to 0 for nonslanted fonts\n reserved: new r.Reserved(r.int16, 4),\n metricDataFormat: r.int16, // Set to 0\n numberOfMetrics: r.uint16 // Number of advance heights in the Vertical Metrics table\n});\n","import * as r from 'restructure';\n\nlet VmtxEntry = new r.Struct({\n advance: r.uint16, // The advance height of the glyph\n bearing: r.int16 // The top sidebearing of the glyph\n});\n\n// Vertical Metrics Table\nexport default new r.Struct({\n metrics: new r.LazyArray(VmtxEntry, t => t.parent.vhea.numberOfMetrics),\n bearings: new r.LazyArray(r.int16, t => t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics)\n});\n","import * as r from 'restructure';\n\nlet shortFrac = new r.Fixed(16, 'BE', 14);\n\nlet Correspondence = new r.Struct({\n fromCoord: shortFrac,\n toCoord: shortFrac\n});\n\nlet Segment = new r.Struct({\n pairCount: r.uint16,\n correspondence: new r.Array(Correspondence, 'pairCount')\n});\n\nexport default new r.Struct({\n version: r.fixed32,\n axisCount: r.uint32,\n segment: new r.Array(Segment, 'axisCount')\n});\n","import * as r from 'restructure';\n\nclass UnboundedArrayAccessor {\n constructor(type, stream, parent) {\n this.type = type;\n this.stream = stream;\n this.parent = parent;\n this.base = this.stream.pos;\n this._items = [];\n }\n\n getItem(index) {\n if (this._items[index] == null) {\n let pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n this._items[index] = this.type.decode(this.stream, this.parent);\n this.stream.pos = pos;\n }\n\n return this._items[index];\n }\n\n inspect() {\n return `[UnboundedArray ${this.type.constructor.name}]`;\n }\n}\n\nexport class UnboundedArray extends r.Array {\n constructor(type) {\n super(type, 0);\n }\n\n decode(stream, parent) {\n return new UnboundedArrayAccessor(this.type, stream, parent);\n }\n}\n\nexport let LookupTable = function(ValueType = r.uint16) {\n // Helper class that makes internal structures invisible to pointers\n class Shadow {\n constructor(type) {\n this.type = type;\n }\n\n decode(stream, ctx) {\n ctx = ctx.parent.parent;\n return this.type.decode(stream, ctx);\n }\n\n size(val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.size(val, ctx);\n }\n\n encode(stream, val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.encode(stream, val, ctx);\n }\n }\n\n ValueType = new Shadow(ValueType);\n\n let BinarySearchHeader = new r.Struct({\n unitSize: r.uint16,\n nUnits: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16\n });\n\n let LookupSegmentSingle = new r.Struct({\n lastGlyph: r.uint16,\n firstGlyph: r.uint16,\n value: ValueType\n });\n\n let LookupSegmentArray = new r.Struct({\n lastGlyph: r.uint16,\n firstGlyph: r.uint16,\n values: new r.Pointer(r.uint16, new r.Array(ValueType, t => t.lastGlyph - t.firstGlyph + 1), {type: 'parent'})\n });\n\n let LookupSingle = new r.Struct({\n glyph: r.uint16,\n value: ValueType\n });\n\n return new r.VersionedStruct(r.uint16, {\n 0: {\n values: new UnboundedArray(ValueType) // length == number of glyphs maybe?\n },\n 2: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSegmentSingle, t => t.binarySearchHeader.nUnits)\n },\n 4: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSegmentArray, t => t.binarySearchHeader.nUnits)\n },\n 6: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSingle, t => t.binarySearchHeader.nUnits)\n },\n 8: {\n firstGlyph: r.uint16,\n count: r.uint16,\n values: new r.Array(ValueType, 'count')\n }\n });\n};\n\nexport function StateTable(entryData = {}, lookupType = r.uint16) {\n let entry = Object.assign({\n newState: r.uint16,\n flags: r.uint16\n }, entryData);\n\n let Entry = new r.Struct(entry);\n let StateArray = new UnboundedArray(new r.Array(r.uint16, t => t.nClasses));\n\n let StateHeader = new r.Struct({\n nClasses: r.uint32,\n classTable: new r.Pointer(r.uint32, new LookupTable(lookupType)),\n stateArray: new r.Pointer(r.uint32, StateArray),\n entryTable: new r.Pointer(r.uint32, new UnboundedArray(Entry))\n });\n\n return StateHeader;\n}\n\n// This is the old version of the StateTable structure\nexport function StateTable1(entryData = {}, lookupType = r.uint16) {\n let ClassLookupTable = new r.Struct({\n version() { return 8; }, // simulate LookupTable\n firstGlyph: r.uint16,\n values: new r.Array(r.uint8, r.uint16)\n });\n\n let entry = Object.assign({\n newStateOffset: r.uint16,\n // convert offset to stateArray index\n newState: t => (t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses,\n flags: r.uint16\n }, entryData);\n\n let Entry = new r.Struct(entry);\n let StateArray = new UnboundedArray(new r.Array(r.uint8, t => t.nClasses));\n\n let StateHeader1 = new r.Struct({\n nClasses: r.uint16,\n classTable: new r.Pointer(r.uint16, ClassLookupTable),\n stateArray: new r.Pointer(r.uint16, StateArray),\n entryTable: new r.Pointer(r.uint16, new UnboundedArray(Entry))\n });\n\n return StateHeader1;\n}\n","import * as r from 'restructure';\nimport { LookupTable } from './aat';\n\nlet BslnSubtable = new r.VersionedStruct('format', {\n 0: { // Distance-based, no mapping\n deltas: new r.Array(r.int16, 32)\n },\n\n 1: { // Distance-based, with mapping\n deltas: new r.Array(r.int16, 32),\n mappingData: new LookupTable(r.uint16)\n },\n\n 2: { // Control point-based, no mapping\n standardGlyph: r.uint16,\n controlPoints: new r.Array(r.uint16, 32)\n },\n\n 3: { // Control point-based, with mapping\n standardGlyph: r.uint16,\n controlPoints: new r.Array(r.uint16, 32),\n mappingData: new LookupTable(r.uint16)\n }\n});\n\nexport default new r.Struct({\n version: r.fixed32,\n format: r.uint16,\n defaultBaseline: r.uint16,\n subtable: BslnSubtable\n});\n","import * as r from 'restructure';\n\nlet Setting = new r.Struct({\n setting: r.uint16,\n nameIndex: r.int16,\n name: t => t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\n\nlet FeatureName = new r.Struct({\n feature: r.uint16,\n nSettings: r.uint16,\n settingTable: new r.Pointer(r.uint32, new r.Array(Setting, 'nSettings'), { type: 'parent' }),\n featureFlags: new r.Bitfield(r.uint8, [\n null, null, null, null, null, null,\n 'hasDefault', 'exclusive'\n ]),\n defaultSetting: r.uint8,\n nameIndex: r.int16,\n name: t => t.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\n\nexport default new r.Struct({\n version: r.fixed32,\n featureNameCount: r.uint16,\n reserved1: new r.Reserved(r.uint16),\n reserved2: new r.Reserved(r.uint32),\n featureNames: new r.Array(FeatureName, 'featureNameCount')\n});\n","import * as r from 'restructure';\n\nlet Axis = new r.Struct({\n axisTag: new r.String(4),\n minValue: r.fixed32,\n defaultValue: r.fixed32,\n maxValue: r.fixed32,\n flags: r.uint16,\n nameID: r.uint16,\n name: t => t.parent.parent.name.records.fontFeatures[t.nameID]\n});\n\nlet Instance = new r.Struct({\n nameID: r.uint16,\n name: t => t.parent.parent.name.records.fontFeatures[t.nameID],\n flags: r.uint16,\n coord: new r.Array(r.fixed32, t => t.parent.axisCount),\n postscriptNameID: new r.Optional(r.uint16, t => t.parent.instanceSize - t._currentOffset > 0)\n});\n\nexport default new r.Struct({\n version: r.fixed32,\n offsetToData: r.uint16,\n countSizePairs: r.uint16,\n axisCount: r.uint16,\n axisSize: r.uint16,\n instanceCount: r.uint16,\n instanceSize: r.uint16,\n axis: new r.Array(Axis, 'axisCount'),\n instance: new r.Array(Instance, 'instanceCount')\n});\n","import * as r from 'restructure';\n\nlet shortFrac = new r.Fixed(16, 'BE', 14);\nclass Offset {\n static decode(stream, parent) {\n // In short format, offsets are multiplied by 2.\n // This doesn't seem to be documented by Apple, but it\n // is implemented this way in Freetype.\n return parent.flags\n ? stream.readUInt32BE()\n : stream.readUInt16BE() * 2;\n }\n}\n\nlet gvar = new r.Struct({\n version: r.uint16,\n reserved: new r.Reserved(r.uint16),\n axisCount: r.uint16,\n globalCoordCount: r.uint16,\n globalCoords: new r.Pointer(r.uint32, new r.Array(new r.Array(shortFrac, 'axisCount'), 'globalCoordCount')),\n glyphCount: r.uint16,\n flags: r.uint16,\n offsetToData: r.uint32,\n offsets: new r.Array(new r.Pointer(Offset, 'void', { relativeTo: ctx => ctx.offsetToData, allowNull: false }), t => t.glyphCount + 1)\n});\n\nexport default gvar;\n","import * as r from 'restructure';\nimport { LookupTable, StateTable1 } from './aat';\n\nlet ClassTable = new r.Struct({\n length: r.uint16,\n coverage: r.uint16,\n subFeatureFlags: r.uint32,\n stateTable: new StateTable1\n});\n\nlet WidthDeltaRecord = new r.Struct({\n justClass: r.uint32,\n beforeGrowLimit: r.fixed32,\n beforeShrinkLimit: r.fixed32,\n afterGrowLimit: r.fixed32,\n afterShrinkLimit: r.fixed32,\n growFlags: r.uint16,\n shrinkFlags: r.uint16\n});\n\nlet WidthDeltaCluster = new r.Array(WidthDeltaRecord, r.uint32);\n\nlet ActionData = new r.VersionedStruct('actionType', {\n 0: { // Decomposition action\n lowerLimit: r.fixed32,\n upperLimit: r.fixed32,\n order: r.uint16,\n glyphs: new r.Array(r.uint16, r.uint16)\n },\n\n 1: { // Unconditional add glyph action\n addGlyph: r.uint16\n },\n\n 2: { // Conditional add glyph action\n substThreshold: r.fixed32,\n addGlyph: r.uint16,\n substGlyph: r.uint16\n },\n\n 3: {}, // Stretch glyph action (no data, not supported by CoreText)\n\n 4: { // Ductile glyph action (not supported by CoreText)\n variationAxis: r.uint32,\n minimumLimit: r.fixed32,\n noStretchValue: r.fixed32,\n maximumLimit: r.fixed32\n },\n\n 5: { // Repeated add glyph action\n flags: r.uint16,\n glyph: r.uint16\n }\n});\n\nlet Action = new r.Struct({\n actionClass: r.uint16,\n actionType: r.uint16,\n actionLength: r.uint32,\n actionData: ActionData,\n padding: new r.Reserved(r.uint8, t => t.actionLength - t._currentOffset)\n});\n\nlet PostcompensationAction = new r.Array(Action, r.uint32);\nlet PostCompensationTable = new r.Struct({\n lookupTable: new LookupTable(new r.Pointer(r.uint16, PostcompensationAction))\n});\n\nlet JustificationTable = new r.Struct({\n classTable: new r.Pointer(r.uint16, ClassTable, { type: 'parent' }),\n wdcOffset: r.uint16,\n postCompensationTable: new r.Pointer(r.uint16, PostCompensationTable, { type: 'parent' }),\n widthDeltaClusters: new LookupTable(new r.Pointer(r.uint16, WidthDeltaCluster, { type: 'parent', relativeTo: ctx => ctx.wdcOffset }))\n});\n\nexport default new r.Struct({\n version: r.uint32,\n format: r.uint16,\n horizontal: new r.Pointer(r.uint16, JustificationTable),\n vertical: new r.Pointer(r.uint16, JustificationTable)\n});\n","import * as r from 'restructure';\nimport { UnboundedArray, LookupTable, StateTable } from './aat';\n\nlet LigatureData = {\n action: r.uint16\n};\n\nlet ContextualData = {\n markIndex: r.uint16,\n currentIndex: r.uint16\n};\n\nlet InsertionData = {\n currentInsertIndex: r.uint16,\n markedInsertIndex: r.uint16\n};\n\nlet SubstitutionTable = new r.Struct({\n items: new UnboundedArray(new r.Pointer(r.uint32, new LookupTable))\n});\n\nlet SubtableData = new r.VersionedStruct('type', {\n 0: { // Indic Rearrangement Subtable\n stateTable: new StateTable\n },\n\n 1: { // Contextual Glyph Substitution Subtable\n stateTable: new StateTable(ContextualData),\n substitutionTable: new r.Pointer(r.uint32, SubstitutionTable)\n },\n\n 2: { // Ligature subtable\n stateTable: new StateTable(LigatureData),\n ligatureActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint32)),\n components: new r.Pointer(r.uint32, new UnboundedArray(r.uint16)),\n ligatureList: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n },\n\n 4: { // Non-contextual Glyph Substitution Subtable\n lookupTable: new LookupTable\n },\n\n 5: { // Glyph Insertion Subtable\n stateTable: new StateTable(InsertionData),\n insertionActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n }\n});\n\nlet Subtable = new r.Struct({\n length: r.uint32,\n coverage: r.uint24,\n type: r.uint8,\n subFeatureFlags: r.uint32,\n table: SubtableData,\n padding: new r.Reserved(r.uint8, t => t.length - t._currentOffset)\n});\n\nlet FeatureEntry = new r.Struct({\n featureType: r.uint16,\n featureSetting: r.uint16,\n enableFlags: r.uint32,\n disableFlags: r.uint32\n});\n\nlet MorxChain = new r.Struct({\n defaultFlags: r.uint32,\n chainLength: r.uint32,\n nFeatureEntries: r.uint32,\n nSubtables: r.uint32,\n features: new r.Array(FeatureEntry, 'nFeatureEntries'),\n subtables: new r.Array(Subtable, 'nSubtables')\n});\n\nexport default new r.Struct({\n version: r.uint16,\n unused: new r.Reserved(r.uint16),\n nChains: r.uint32,\n chains: new r.Array(MorxChain, 'nChains')\n});\n","import * as r from 'restructure';\nimport { LookupTable } from './aat';\n\nlet OpticalBounds = new r.Struct({\n left: r.int16,\n top: r.int16,\n right: r.int16,\n bottom: r.int16\n});\n\nexport default new r.Struct({\n version: r.fixed32,\n format: r.uint16,\n lookupTable: new LookupTable(OpticalBounds)\n});\n","let tables = {};\nexport default tables;\n\n// Required Tables\nimport cmap from './cmap';\nimport head from './head';\nimport hhea from './hhea';\nimport hmtx from './hmtx';\nimport maxp from './maxp';\nimport name from './name';\nimport OS2 from './OS2';\nimport post from './post';\n\ntables.cmap = cmap;\ntables.head = head;\ntables.hhea = hhea;\ntables.hmtx = hmtx;\ntables.maxp = maxp;\ntables.name = name;\ntables['OS/2'] = OS2;\ntables.post = post;\n\n\n// TrueType Outlines\nimport cvt from './cvt';\nimport fpgm from './fpgm';\nimport loca from './loca';\nimport prep from './prep';\nimport glyf from './glyf';\n\ntables.fpgm = fpgm;\ntables.loca = loca;\ntables.prep = prep;\ntables['cvt '] = cvt;\ntables.glyf = glyf;\n\n\n// PostScript Outlines\nimport CFFFont from '../cff/CFFFont';\nimport VORG from './VORG';\n\ntables['CFF '] = CFFFont;\ntables['CFF2'] = CFFFont;\ntables.VORG = VORG;\n\n\n// Bitmap Glyphs\nimport EBLC from './EBLC';\nimport sbix from './sbix';\nimport COLR from './COLR';\nimport CPAL from './CPAL';\n\ntables.EBLC = EBLC;\ntables.CBLC = tables.EBLC;\ntables.sbix = sbix;\ntables.COLR = COLR;\ntables.CPAL = CPAL;\n\n\n// Advanced OpenType Tables\nimport BASE from './BASE';\nimport GDEF from './GDEF';\nimport GPOS from './GPOS';\nimport GSUB from './GSUB';\nimport JSTF from './JSTF';\n\ntables.BASE = BASE;\ntables.GDEF = GDEF;\ntables.GPOS = GPOS;\ntables.GSUB = GSUB;\ntables.JSTF = JSTF;\n\n// OpenType variations tables\nimport HVAR from './HVAR';\n\ntables.HVAR = HVAR;\n\n// Other OpenType Tables\nimport DSIG from './DSIG';\nimport gasp from './gasp';\nimport hdmx from './hdmx';\nimport kern from './kern';\nimport LTSH from './LTSH';\nimport PCLT from './PCLT';\nimport VDMX from './VDMX';\nimport vhea from './vhea';\nimport vmtx from './vmtx';\n\ntables.DSIG = DSIG;\ntables.gasp = gasp;\ntables.hdmx = hdmx;\ntables.kern = kern;\ntables.LTSH = LTSH;\ntables.PCLT = PCLT;\ntables.VDMX = VDMX;\ntables.vhea = vhea;\ntables.vmtx = vmtx;\n\n\n// Apple Advanced Typography Tables\nimport avar from './avar';\nimport bsln from './bsln';\nimport feat from './feat';\nimport fvar from './fvar';\nimport gvar from './gvar';\nimport just from './just';\nimport morx from './morx';\nimport opbd from './opbd';\n\ntables.avar = avar;\ntables.bsln = bsln;\ntables.feat = feat;\ntables.fvar = fvar;\ntables.gvar = gvar;\ntables.just = just;\ntables.morx = morx;\ntables.opbd = opbd;\n","import * as r from 'restructure';\nimport Tables from './';\n\nlet TableEntry = new r.Struct({\n tag: new r.String(4),\n checkSum: r.uint32,\n offset: new r.Pointer(r.uint32, 'void', { type: 'global' }),\n length: r.uint32\n});\n\nlet Directory = new r.Struct({\n tag: new r.String(4),\n numTables: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n tables: new r.Array(TableEntry, 'numTables')\n});\n\nDirectory.process = function() {\n let tables = {};\n for (let table of this.tables) {\n tables[table.tag] = table;\n }\n\n this.tables = tables;\n};\n\nDirectory.preEncode = function() {\n if (!Array.isArray(this.tables)) {\n let tables = [];\n for (let tag in this.tables) {\n let table = this.tables[tag];\n if (table) {\n tables.push({\n tag: tag,\n checkSum: 0,\n offset: new r.VoidPointer(Tables[tag], table),\n length: Tables[tag].size(table)\n });\n }\n }\n \n this.tables = tables;\n }\n\n this.tag = 'true';\n this.numTables = this.tables.length;\n\n let maxExponentFor2 = Math.floor((Math.log(this.numTables) / Math.LN2));\n let maxPowerOf2 = Math.pow(2, maxExponentFor2);\n\n this.searchRange = maxPowerOf2 * 16;\n this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n this.rangeShift = this.numTables * 16 - this.searchRange;\n};\n\nexport default Directory;\n","export function binarySearch(arr, cmp) {\n let min = 0;\n let max = arr.length - 1;\n while (min <= max) {\n let mid = (min + max) >> 1;\n let res = cmp(arr[mid]);\n\n if (res < 0) {\n max = mid - 1;\n } else if (res > 0) {\n min = mid + 1;\n } else {\n return mid;\n }\n }\n\n return -1;\n}\n\nexport function range(index, end) {\n let range = [];\n while (index < end) {\n range.push(index++);\n }\n return range;\n}\n\nexport const asciiDecoder = new TextDecoder('ascii');\n\n// Based on https://github.com/niklasvh/base64-arraybuffer. MIT license.\nconst CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst LOOKUP = new Uint8Array(256);\nfor (let i = 0; i < CHARS.length; i++) {\n LOOKUP[CHARS.charCodeAt(i)] = i;\n}\n\nexport function decodeBase64(base64) {\n let bufferLength = base64.length * 0.75;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n let bytes = new Uint8Array(bufferLength);\n let p = 0;\n\n for (let i = 0, len = base64.length; i < len; i += 4) {\n let encoded1 = LOOKUP[base64.charCodeAt(i)];\n let encoded2 = LOOKUP[base64.charCodeAt(i + 1)];\n let encoded3 = LOOKUP[base64.charCodeAt(i + 2)];\n let 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 bytes;\n}\n","import { binarySearch } from './utils';\nimport { encodingExists, getEncoding, getEncodingMapping } from './encodings';\nimport { cache } from './decorators';\nimport { range } from './utils';\n\nexport default class CmapProcessor {\n constructor(cmapTable) {\n // Attempt to find a Unicode cmap first\n this.encoding = null;\n this.cmap = this.findSubtable(cmapTable, [\n // 32-bit subtables\n [3, 10],\n [0, 6],\n [0, 4],\n\n // 16-bit subtables\n [3, 1],\n [0, 3],\n [0, 2],\n [0, 1],\n [0, 0]\n ]);\n\n // If not unicode cmap was found, take the first table with a supported encoding.\n if (!this.cmap) {\n for (let cmap of cmapTable.tables) {\n let encoding = getEncoding(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n let mapping = getEncodingMapping(encoding);\n if (mapping) {\n this.cmap = cmap.table;\n this.encoding = mapping;\n }\n }\n }\n\n if (!this.cmap) {\n throw new Error(\"Could not find a supported cmap table\");\n }\n\n this.uvs = this.findSubtable(cmapTable, [[0, 5]]);\n if (this.uvs && this.uvs.version !== 14) {\n this.uvs = null;\n }\n }\n\n findSubtable(cmapTable, pairs) {\n for (let [platformID, encodingID] of pairs) {\n for (let cmap of cmapTable.tables) {\n if (cmap.platformID === platformID && cmap.encodingID === encodingID) {\n return cmap.table;\n }\n }\n }\n\n return null;\n }\n\n lookup(codepoint, variationSelector) {\n // If there is no Unicode cmap in this font, we need to re-encode\n // the codepoint in the encoding that the cmap supports.\n if (this.encoding) {\n codepoint = this.encoding.get(codepoint) || codepoint;\n\n // Otherwise, try to get a Unicode variation selector for this codepoint if one is provided.\n } else if (variationSelector) {\n let gid = this.getVariationSelector(codepoint, variationSelector);\n if (gid) {\n return gid;\n }\n }\n\n let cmap = this.cmap;\n switch (cmap.version) {\n case 0:\n return cmap.codeMap.get(codepoint) || 0;\n\n case 4: {\n let min = 0;\n let max = cmap.segCount - 1;\n while (min <= max) {\n let mid = (min + max) >> 1;\n\n if (codepoint < cmap.startCode.get(mid)) {\n max = mid - 1;\n } else if (codepoint > cmap.endCode.get(mid)) {\n min = mid + 1;\n } else {\n let rangeOffset = cmap.idRangeOffset.get(mid);\n let gid;\n\n if (rangeOffset === 0) {\n gid = codepoint + cmap.idDelta.get(mid);\n } else {\n let index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n gid = cmap.glyphIndexArray.get(index) || 0;\n if (gid !== 0) {\n gid += cmap.idDelta.get(mid);\n }\n }\n\n return gid & 0xffff;\n }\n }\n\n return 0;\n }\n\n case 8:\n throw new Error('TODO: cmap format 8');\n\n case 6:\n case 10:\n return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n\n case 12:\n case 13: {\n let min = 0;\n let max = cmap.nGroups - 1;\n while (min <= max) {\n let mid = (min + max) >> 1;\n let group = cmap.groups.get(mid);\n\n if (codepoint < group.startCharCode) {\n max = mid - 1;\n } else if (codepoint > group.endCharCode) {\n min = mid + 1;\n } else {\n if (cmap.version === 12) {\n return group.glyphID + (codepoint - group.startCharCode);\n } else {\n return group.glyphID;\n }\n }\n }\n\n return 0;\n }\n\n case 14:\n throw new Error('TODO: cmap format 14');\n\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n\n getVariationSelector(codepoint, variationSelector) {\n if (!this.uvs) {\n return 0;\n }\n\n let selectors = this.uvs.varSelectors.toArray();\n let i = binarySearch(selectors, x => variationSelector - x.varSelector);\n let sel = selectors[i];\n\n if (i !== -1 && sel.defaultUVS) {\n i = binarySearch(sel.defaultUVS, x =>\n codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? +1 : 0\n );\n }\n\n if (i !== -1 && sel.nonDefaultUVS) {\n i = binarySearch(sel.nonDefaultUVS, x => codepoint - x.unicodeValue);\n if (i !== -1) {\n return sel.nonDefaultUVS[i].glyphID;\n }\n }\n\n return 0;\n }\n\n @cache\n getCharacterSet() {\n let cmap = this.cmap;\n switch (cmap.version) {\n case 0:\n return range(0, cmap.codeMap.length);\n\n case 4: {\n let res = [];\n let endCodes = cmap.endCode.toArray();\n for (let i = 0; i < endCodes.length; i++) {\n let tail = endCodes[i] + 1;\n let start = cmap.startCode.get(i);\n res.push(...range(start, tail));\n }\n\n return res;\n }\n\n case 8:\n throw new Error('TODO: cmap format 8');\n\n case 6:\n case 10:\n return range(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n\n case 12:\n case 13: {\n let res = [];\n for (let group of cmap.groups.toArray()) {\n res.push(...range(group.startCharCode, group.endCharCode + 1));\n }\n\n return res;\n }\n\n case 14:\n throw new Error('TODO: cmap format 14');\n\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n\n @cache\n codePointsForGlyph(gid) {\n let cmap = this.cmap;\n switch (cmap.version) {\n case 0: {\n let res = [];\n for (let i = 0; i < 256; i++) {\n if (cmap.codeMap.get(i) === gid) {\n res.push(i);\n }\n }\n\n return res;\n }\n\n case 4: {\n let res = [];\n for (let i = 0; i < cmap.segCount; i++) {\n let end = cmap.endCode.get(i);\n let start = cmap.startCode.get(i);\n let rangeOffset = cmap.idRangeOffset.get(i);\n let delta = cmap.idDelta.get(i);\n\n for (var c = start; c <= end; c++) {\n let g = 0;\n if (rangeOffset === 0) {\n g = c + delta;\n } else {\n let index = rangeOffset / 2 + (c - start) - (cmap.segCount - i);\n g = cmap.glyphIndexArray.get(index) || 0;\n if (g !== 0) {\n g += delta;\n }\n }\n\n if (g === gid) {\n res.push(c);\n }\n }\n }\n\n return res;\n }\n\n case 12: {\n let res = [];\n for (let group of cmap.groups.toArray()) {\n if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) {\n res.push(group.startCharCode + (gid - group.glyphID));\n }\n }\n\n return res;\n }\n\n case 13: {\n let res = [];\n for (let group of cmap.groups.toArray()) {\n if (gid === group.glyphID) {\n res.push(...range(group.startCharCode, group.endCharCode + 1));\n }\n }\n\n return res;\n }\n\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n}\n","import {binarySearch} from '../utils';\n\nexport default class KernProcessor {\n constructor(font) {\n this.kern = font.kern;\n }\n\n process(glyphs, positions) {\n for (let glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++) {\n let left = glyphs[glyphIndex].id;\n let right = glyphs[glyphIndex + 1].id;\n positions[glyphIndex].xAdvance += this.getKerning(left, right);\n }\n }\n\n getKerning(left, right) {\n let res = 0;\n\n for (let table of this.kern.tables) {\n if (table.coverage.crossStream) {\n continue;\n }\n\n switch (table.version) {\n case 0:\n if (!table.coverage.horizontal) {\n continue;\n }\n\n break;\n case 1:\n if (table.coverage.vertical || table.coverage.variation) {\n continue;\n }\n\n break;\n default:\n throw new Error(`Unsupported kerning table version ${table.version}`);\n }\n\n let val = 0;\n let s = table.subtable;\n switch (table.format) {\n case 0:\n let pairIdx = binarySearch(s.pairs, function (pair) {\n return (left - pair.left) || (right - pair.right);\n });\n\n if (pairIdx >= 0) {\n val = s.pairs[pairIdx].value;\n }\n\n break;\n\n case 2:\n let leftOffset = 0, rightOffset = 0;\n if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) {\n leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n } else {\n leftOffset = s.array.off;\n }\n\n if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) {\n rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n }\n\n let index = (leftOffset + rightOffset - s.array.off) / 2;\n val = s.array.values.get(index);\n break;\n\n case 3:\n if (left >= s.glyphCount || right >= s.glyphCount) {\n return 0;\n }\n\n val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n break;\n\n default:\n throw new Error(`Unsupported kerning sub-table format ${table.format}`);\n }\n\n // Microsoft supports the override flag, which resets the result\n // Otherwise, the sum of the results from all subtables is returned\n if (table.coverage.override) {\n res = val;\n } else {\n res += val;\n }\n }\n\n return res;\n }\n}\n","import {getCombiningClass} from 'unicode-properties';\n\n/**\n * This class is used when GPOS does not define 'mark' or 'mkmk' features\n * for positioning marks relative to base glyphs. It uses the unicode\n * combining class property to position marks.\n *\n * Based on code from Harfbuzz, thanks!\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-fallback.cc\n */\nexport default class UnicodeLayoutEngine {\n constructor(font) {\n this.font = font;\n }\n\n positionGlyphs(glyphs, positions) {\n // find each base + mark cluster, and position the marks relative to the base\n let clusterStart = 0;\n let clusterEnd = 0;\n for (let index = 0; index < glyphs.length; index++) {\n let glyph = glyphs[index];\n if (glyph.isMark) { // TODO: handle ligatures\n clusterEnd = index;\n } else {\n if (clusterStart !== clusterEnd) {\n this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n }\n\n clusterStart = clusterEnd = index;\n }\n }\n\n if (clusterStart !== clusterEnd) {\n this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n }\n\n return positions;\n }\n\n positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n let base = glyphs[clusterStart];\n let baseBox = base.cbox.copy();\n\n // adjust bounding box for ligature glyphs\n if (base.codePoints.length > 1) {\n // LTR. TODO: RTL support.\n baseBox.minX += ((base.codePoints.length - 1) * baseBox.width) / base.codePoints.length;\n }\n\n let xOffset = -positions[clusterStart].xAdvance;\n let yOffset = 0;\n let yGap = this.font.unitsPerEm / 16;\n\n // position each of the mark glyphs relative to the base glyph\n for (let index = clusterStart + 1; index <= clusterEnd; index++) {\n let mark = glyphs[index];\n let markBox = mark.cbox;\n let position = positions[index];\n\n let combiningClass = this.getCombiningClass(mark.codePoints[0]);\n\n if (combiningClass !== 'Not_Reordered') {\n position.xOffset = position.yOffset = 0;\n\n // x positioning\n switch (combiningClass) {\n case 'Double_Above':\n case 'Double_Below':\n // LTR. TODO: RTL support.\n position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n break;\n\n case 'Attached_Below_Left':\n case 'Below_Left':\n case 'Above_Left':\n // left align\n position.xOffset += baseBox.minX - markBox.minX;\n break;\n\n case 'Attached_Above_Right':\n case 'Below_Right':\n case 'Above_Right':\n // right align\n position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n break;\n\n default: // Attached_Below, Attached_Above, Below, Above, other\n // center align\n position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n }\n\n // y positioning\n switch (combiningClass) {\n case 'Double_Below':\n case 'Below_Left':\n case 'Below':\n case 'Below_Right':\n case 'Attached_Below_Left':\n case 'Attached_Below':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') {\n baseBox.minY += yGap;\n }\n\n position.yOffset = -baseBox.minY - markBox.maxY;\n baseBox.minY += markBox.height;\n break;\n\n case 'Double_Above':\n case 'Above_Left':\n case 'Above':\n case 'Above_Right':\n case 'Attached_Above':\n case 'Attached_Above_Right':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') {\n baseBox.maxY += yGap;\n }\n\n position.yOffset = baseBox.maxY - markBox.minY;\n baseBox.maxY += markBox.height;\n break;\n }\n\n position.xAdvance = position.yAdvance = 0;\n position.xOffset += xOffset;\n position.yOffset += yOffset;\n\n } else {\n xOffset -= position.xAdvance;\n yOffset -= position.yAdvance;\n }\n }\n\n return;\n }\n\n getCombiningClass(codePoint) {\n let combiningClass = getCombiningClass(codePoint);\n\n // Thai / Lao need some per-character work\n if ((codePoint & ~0xff) === 0x0e00) {\n if (combiningClass === 'Not_Reordered') {\n switch (codePoint) {\n case 0x0e31:\n case 0x0e34:\n case 0x0e35:\n case 0x0e36:\n case 0x0e37:\n case 0x0e47:\n case 0x0e4c:\n case 0x0e3d:\n case 0x0e4e:\n return 'Above_Right';\n\n case 0x0eb1:\n case 0x0eb4:\n case 0x0eb5:\n case 0x0eb6:\n case 0x0eb7:\n case 0x0ebb:\n case 0x0ecc:\n case 0x0ecd:\n return 'Above';\n\n case 0x0ebc:\n return 'Below';\n }\n } else if (codePoint === 0x0e3a) { // virama\n return 'Below_Right';\n }\n }\n\n switch (combiningClass) {\n // Hebrew\n\n case 'CCC10': // sheva\n case 'CCC11': // hataf segol\n case 'CCC12': // hataf patah\n case 'CCC13': // hataf qamats\n case 'CCC14': // hiriq\n case 'CCC15': // tsere\n case 'CCC16': // segol\n case 'CCC17': // patah\n case 'CCC18': // qamats\n case 'CCC20': // qubuts\n case 'CCC22': // meteg\n return 'Below';\n\n case 'CCC23': // rafe\n return 'Attached_Above';\n\n case 'CCC24': // shin dot\n return 'Above_Right';\n\n case 'CCC25': // sin dot\n case 'CCC19': // holam\n return 'Above_Left';\n\n case 'CCC26': // point varika\n return 'Above';\n\n case 'CCC21': // dagesh\n break;\n\n // Arabic and Syriac\n\n case 'CCC27': // fathatan\n case 'CCC28': // dammatan\n case 'CCC30': // fatha\n case 'CCC31': // damma\n case 'CCC33': // shadda\n case 'CCC34': // sukun\n case 'CCC35': // superscript alef\n case 'CCC36': // superscript alaph\n return 'Above';\n\n case 'CCC29': // kasratan\n case 'CCC32': // kasra\n return 'Below';\n\n // Thai\n\n case 'CCC103': // sara u / sara uu\n return 'Below_Right';\n\n case 'CCC107': // mai\n return 'Above_Right';\n\n // Lao\n\n case 'CCC118': // sign u / sign uu\n return 'Below';\n\n case 'CCC122': // mai\n return 'Above';\n\n // Tibetan\n\n case 'CCC129': // sign aa\n case 'CCC132': // sign u\n return 'Below';\n\n case 'CCC130': // sign i\n return 'Above';\n }\n\n return combiningClass;\n }\n}\n","/**\n * Represents a glyph bounding box\n */\nexport default class BBox {\n constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity) {\n /**\n * The minimum X position in the bounding box\n * @type {number}\n */\n this.minX = minX;\n\n /**\n * The minimum Y position in the bounding box\n * @type {number}\n */\n this.minY = minY;\n\n /**\n * The maxmimum X position in the bounding box\n * @type {number}\n */\n this.maxX = maxX;\n\n /**\n * The maxmimum Y position in the bounding box\n * @type {number}\n */\n this.maxY = maxY;\n }\n\n /**\n * The width of the bounding box\n * @type {number}\n */\n get width() {\n return this.maxX - this.minX;\n }\n\n /**\n * The height of the bounding box\n * @type {number}\n */\n get height() {\n return this.maxY - this.minY;\n }\n\n addPoint(x, y) {\n if (Math.abs(x) !== Infinity) {\n if (x < this.minX) {\n this.minX = x;\n }\n\n if (x > this.maxX) {\n this.maxX = x;\n }\n }\n\n if (Math.abs(y) !== Infinity) {\n if (y < this.minY) {\n this.minY = y;\n }\n\n if (y > this.maxY) {\n this.maxY = y;\n }\n }\n }\n\n copy() {\n return new BBox(this.minX, this.minY, this.maxX, this.maxY);\n }\n}\n","import {getScript} from 'unicode-properties';\n\n// This maps the Unicode Script property to an OpenType script tag\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\nconst UNICODE_SCRIPTS = {\n Caucasian_Albanian: 'aghb',\n Arabic: 'arab',\n Imperial_Aramaic: 'armi',\n Armenian: 'armn',\n Avestan: 'avst',\n Balinese: 'bali',\n Bamum: 'bamu',\n Bassa_Vah: 'bass',\n Batak: 'batk',\n Bengali: ['bng2', 'beng'],\n Bopomofo: 'bopo',\n Brahmi: 'brah',\n Braille: 'brai',\n Buginese: 'bugi',\n Buhid: 'buhd',\n Chakma: 'cakm',\n Canadian_Aboriginal: 'cans',\n Carian: 'cari',\n Cham: 'cham',\n Cherokee: 'cher',\n Coptic: 'copt',\n Cypriot: 'cprt',\n Cyrillic: 'cyrl',\n Devanagari: ['dev2', 'deva'],\n Deseret: 'dsrt',\n Duployan: 'dupl',\n Egyptian_Hieroglyphs: 'egyp',\n Elbasan: 'elba',\n Ethiopic: 'ethi',\n Georgian: 'geor',\n Glagolitic: 'glag',\n Gothic: 'goth',\n Grantha: 'gran',\n Greek: 'grek',\n Gujarati: ['gjr2', 'gujr'],\n Gurmukhi: ['gur2', 'guru'],\n Hangul: 'hang',\n Han: 'hani',\n Hanunoo: 'hano',\n Hebrew: 'hebr',\n Hiragana: 'hira',\n Pahawh_Hmong: 'hmng',\n Katakana_Or_Hiragana: 'hrkt',\n Old_Italic: 'ital',\n Javanese: 'java',\n Kayah_Li: 'kali',\n Katakana: 'kana',\n Kharoshthi: 'khar',\n Khmer: 'khmr',\n Khojki: 'khoj',\n Kannada: ['knd2', 'knda'],\n Kaithi: 'kthi',\n Tai_Tham: 'lana',\n Lao: 'lao ',\n Latin: 'latn',\n Lepcha: 'lepc',\n Limbu: 'limb',\n Linear_A: 'lina',\n Linear_B: 'linb',\n Lisu: 'lisu',\n Lycian: 'lyci',\n Lydian: 'lydi',\n Mahajani: 'mahj',\n Mandaic: 'mand',\n Manichaean: 'mani',\n Mende_Kikakui: 'mend',\n Meroitic_Cursive: 'merc',\n Meroitic_Hieroglyphs: 'mero',\n Malayalam: ['mlm2', 'mlym'],\n Modi: 'modi',\n Mongolian: 'mong',\n Mro: 'mroo',\n Meetei_Mayek: 'mtei',\n Myanmar: ['mym2', 'mymr'],\n Old_North_Arabian: 'narb',\n Nabataean: 'nbat',\n Nko: 'nko ',\n Ogham: 'ogam',\n Ol_Chiki: 'olck',\n Old_Turkic: 'orkh',\n Oriya: ['ory2', 'orya'],\n Osmanya: 'osma',\n Palmyrene: 'palm',\n Pau_Cin_Hau: 'pauc',\n Old_Permic: 'perm',\n Phags_Pa: 'phag',\n Inscriptional_Pahlavi: 'phli',\n Psalter_Pahlavi: 'phlp',\n Phoenician: 'phnx',\n Miao: 'plrd',\n Inscriptional_Parthian: 'prti',\n Rejang: 'rjng',\n Runic: 'runr',\n Samaritan: 'samr',\n Old_South_Arabian: 'sarb',\n Saurashtra: 'saur',\n Shavian: 'shaw',\n Sharada: 'shrd',\n Siddham: 'sidd',\n Khudawadi: 'sind',\n Sinhala: 'sinh',\n Sora_Sompeng: 'sora',\n Sundanese: 'sund',\n Syloti_Nagri: 'sylo',\n Syriac: 'syrc',\n Tagbanwa: 'tagb',\n Takri: 'takr',\n Tai_Le: 'tale',\n New_Tai_Lue: 'talu',\n Tamil: ['tml2', 'taml'],\n Tai_Viet: 'tavt',\n Telugu: ['tel2', 'telu'],\n Tifinagh: 'tfng',\n Tagalog: 'tglg',\n Thaana: 'thaa',\n Thai: 'thai',\n Tibetan: 'tibt',\n Tirhuta: 'tirh',\n Ugaritic: 'ugar',\n Vai: 'vai ',\n Warang_Citi: 'wara',\n Old_Persian: 'xpeo',\n Cuneiform: 'xsux',\n Yi: 'yi ',\n Inherited: 'zinh',\n Common: 'zyyy',\n Unknown: 'zzzz'\n};\n\nconst OPENTYPE_SCRIPTS = {};\nfor (let script in UNICODE_SCRIPTS) {\n let tag = UNICODE_SCRIPTS[script];\n if (Array.isArray(tag)) {\n for (let t of tag) {\n OPENTYPE_SCRIPTS[t] = script;\n }\n } else {\n OPENTYPE_SCRIPTS[tag] = script;\n }\n}\n\nexport function fromUnicode(script) {\n return UNICODE_SCRIPTS[script];\n}\n\nexport function fromOpenType(tag) {\n return OPENTYPE_SCRIPTS[tag];\n}\n\nexport function forString(string) {\n let len = string.length;\n let idx = 0;\n while (idx < len) {\n let code = string.charCodeAt(idx++);\n\n // Check if this is a high surrogate\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n\n // Check if this is a low surrogate\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n }\n }\n\n let script = getScript(code);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') {\n return UNICODE_SCRIPTS[script];\n }\n }\n\n return UNICODE_SCRIPTS.Unknown;\n}\n\nexport function forCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n let codePoint = codePoints[i];\n let script = getScript(codePoint);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') {\n return UNICODE_SCRIPTS[script];\n }\n }\n\n return UNICODE_SCRIPTS.Unknown;\n}\n\n// The scripts in this map are written from right to left\nconst RTL = {\n arab: true, // Arabic\n hebr: true, // Hebrew\n syrc: true, // Syriac\n thaa: true, // Thaana\n cprt: true, // Cypriot Syllabary\n khar: true, // Kharosthi\n phnx: true, // Phoenician\n 'nko ': true, // N'Ko\n lydi: true, // Lydian\n avst: true, // Avestan\n armi: true, // Imperial Aramaic\n phli: true, // Inscriptional Pahlavi\n prti: true, // Inscriptional Parthian\n sarb: true, // Old South Arabian\n orkh: true, // Old Turkic, Orkhon Runic\n samr: true, // Samaritan\n mand: true, // Mandaic, Mandaean\n merc: true, // Meroitic Cursive\n mero: true, // Meroitic Hieroglyphs\n\n // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n mani: true, // Manichaean\n mend: true, // Mende Kikakui\n nbat: true, // Nabataean\n narb: true, // Old North Arabian\n palm: true, // Palmyrene\n phlp: true // Psalter Pahlavi\n};\n\nexport function direction(script) {\n if (RTL[script]) {\n return 'rtl';\n }\n\n return 'ltr';\n}\n","import BBox from '../glyph/BBox';\nimport * as Script from '../layout/Script';\n\n/**\n * Represents a run of Glyph and GlyphPosition objects.\n * Returned by the font layout method.\n */\nexport default class GlyphRun {\n constructor(glyphs, features, script, language, direction) {\n /**\n * An array of Glyph objects in the run\n * @type {Glyph[]}\n */\n this.glyphs = glyphs;\n\n /**\n * An array of GlyphPosition objects for each glyph in the run\n * @type {GlyphPosition[]}\n */\n this.positions = null;\n\n /**\n * The script that was requested for shaping. This was either passed in or detected automatically.\n * @type {string}\n */\n this.script = script;\n\n /**\n * The language requested for shaping, as passed in. If `null`, the default language for the\n * script was used.\n * @type {string}\n */\n this.language = language || null;\n\n /**\n * The direction requested for shaping, as passed in (either ltr or rtl).\n * If `null`, the default direction of the script is used.\n * @type {string}\n */\n this.direction = direction || Script.direction(script);\n\n /**\n * The features requested during shaping. This is a combination of user\n * specified features and features chosen by the shaper.\n * @type {object}\n */\n this.features = {};\n\n // Convert features to an object\n if (Array.isArray(features)) {\n for (let tag of features) {\n this.features[tag] = true;\n }\n } else if (typeof features === 'object') {\n this.features = features;\n }\n }\n\n /**\n * The total advance width of the run.\n * @type {number}\n */\n get advanceWidth() {\n let width = 0;\n for (let position of this.positions) {\n width += position.xAdvance;\n }\n\n return width;\n }\n\n /**\n * The total advance height of the run.\n * @type {number}\n */\n get advanceHeight() {\n let height = 0;\n for (let position of this.positions) {\n height += position.yAdvance;\n }\n\n return height;\n }\n\n /**\n * The bounding box containing all glyphs in the run.\n * @type {BBox}\n */\n get bbox() {\n let bbox = new BBox;\n\n let x = 0;\n let y = 0;\n for (let index = 0; index < this.glyphs.length; index++) {\n let glyph = this.glyphs[index];\n let p = this.positions[index];\n let b = glyph.bbox;\n\n bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n\n x += p.xAdvance;\n y += p.yAdvance;\n }\n\n return bbox;\n }\n}\n","/**\n * Represents positioning information for a glyph in a GlyphRun.\n */\nexport default class GlyphPosition {\n constructor(xAdvance = 0, yAdvance = 0, xOffset = 0, yOffset = 0) {\n /**\n * The amount to move the virtual pen in the X direction after rendering this glyph.\n * @type {number}\n */\n this.xAdvance = xAdvance;\n\n /**\n * The amount to move the virtual pen in the Y direction after rendering this glyph.\n * @type {number}\n */\n this.yAdvance = yAdvance;\n\n /**\n * The offset from the pen position in the X direction at which to render this glyph.\n * @type {number}\n */\n this.xOffset = xOffset;\n\n /**\n * The offset from the pen position in the Y direction at which to render this glyph.\n * @type {number}\n */\n this.yOffset = yOffset;\n }\n}\n","// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nconst features = {\n allTypographicFeatures: {\n code: 0,\n exclusive: false,\n allTypeFeatures: 0\n },\n ligatures: {\n code: 1,\n exclusive: false,\n requiredLigatures: 0,\n commonLigatures: 2,\n rareLigatures: 4,\n // logos: 6\n rebusPictures: 8,\n diphthongLigatures: 10,\n squaredLigatures: 12,\n abbrevSquaredLigatures: 14,\n symbolLigatures: 16,\n contextualLigatures: 18,\n historicalLigatures: 20\n },\n cursiveConnection: {\n code: 2,\n exclusive: true,\n unconnected: 0,\n partiallyConnected: 1,\n cursive: 2\n },\n letterCase: {\n code: 3,\n exclusive: true\n },\n // upperAndLowerCase: 0 # deprecated\n // allCaps: 1 # deprecated\n // allLowerCase: 2 # deprecated\n // smallCaps: 3 # deprecated\n // initialCaps: 4 # deprecated\n // initialCapsAndSmallCaps: 5 # deprecated\n verticalSubstitution: {\n code: 4,\n exclusive: false,\n substituteVerticalForms: 0\n },\n linguisticRearrangement: {\n code: 5,\n exclusive: false,\n linguisticRearrangement: 0\n },\n numberSpacing: {\n code: 6,\n exclusive: true,\n monospacedNumbers: 0,\n proportionalNumbers: 1,\n thirdWidthNumbers: 2,\n quarterWidthNumbers: 3\n },\n smartSwash: {\n code: 8,\n exclusive: false,\n wordInitialSwashes: 0,\n wordFinalSwashes: 2,\n // lineInitialSwashes: 4\n // lineFinalSwashes: 6\n nonFinalSwashes: 8\n },\n diacritics: {\n code: 9,\n exclusive: true,\n showDiacritics: 0,\n hideDiacritics: 1,\n decomposeDiacritics: 2\n },\n verticalPosition: {\n code: 10,\n exclusive: true,\n normalPosition: 0,\n superiors: 1,\n inferiors: 2,\n ordinals: 3,\n scientificInferiors: 4\n },\n fractions: {\n code: 11,\n exclusive: true,\n noFractions: 0,\n verticalFractions: 1,\n diagonalFractions: 2\n },\n overlappingCharacters: {\n code: 13,\n exclusive: false,\n preventOverlap: 0\n },\n typographicExtras: {\n code: 14,\n exclusive: false,\n // hyphensToEmDash: 0\n // hyphenToEnDash: 2\n slashedZero: 4\n },\n // formInterrobang: 6\n // smartQuotes: 8\n // periodsToEllipsis: 10\n mathematicalExtras: {\n code: 15,\n exclusive: false,\n // hyphenToMinus: 0\n // asteristoMultiply: 2\n // slashToDivide: 4\n // inequalityLigatures: 6\n // exponents: 8\n mathematicalGreek: 10\n },\n ornamentSets: {\n code: 16,\n exclusive: true,\n noOrnaments: 0,\n dingbats: 1,\n piCharacters: 2,\n fleurons: 3,\n decorativeBorders: 4,\n internationalSymbols: 5,\n mathSymbols: 6\n },\n characterAlternatives: {\n code: 17,\n exclusive: true,\n noAlternates: 0\n },\n // user defined options\n designComplexity: {\n code: 18,\n exclusive: true,\n designLevel1: 0,\n designLevel2: 1,\n designLevel3: 2,\n designLevel4: 3,\n designLevel5: 4\n },\n styleOptions: {\n code: 19,\n exclusive: true,\n noStyleOptions: 0,\n displayText: 1,\n engravedText: 2,\n illuminatedCaps: 3,\n titlingCaps: 4,\n tallCaps: 5\n },\n characterShape: {\n code: 20,\n exclusive: true,\n traditionalCharacters: 0,\n simplifiedCharacters: 1,\n JIS1978Characters: 2,\n JIS1983Characters: 3,\n JIS1990Characters: 4,\n traditionalAltOne: 5,\n traditionalAltTwo: 6,\n traditionalAltThree: 7,\n traditionalAltFour: 8,\n traditionalAltFive: 9,\n expertCharacters: 10,\n JIS2004Characters: 11,\n hojoCharacters: 12,\n NLCCharacters: 13,\n traditionalNamesCharacters: 14\n },\n numberCase: {\n code: 21,\n exclusive: true,\n lowerCaseNumbers: 0,\n upperCaseNumbers: 1\n },\n textSpacing: {\n code: 22,\n exclusive: true,\n proportionalText: 0,\n monospacedText: 1,\n halfWidthText: 2,\n thirdWidthText: 3,\n quarterWidthText: 4,\n altProportionalText: 5,\n altHalfWidthText: 6\n },\n transliteration: {\n code: 23,\n exclusive: true,\n noTransliteration: 0\n },\n // hanjaToHangul: 1\n // hiraganaToKatakana: 2\n // katakanaToHiragana: 3\n // kanaToRomanization: 4\n // romanizationToHiragana: 5\n // romanizationToKatakana: 6\n // hanjaToHangulAltOne: 7\n // hanjaToHangulAltTwo: 8\n // hanjaToHangulAltThree: 9\n annotation: {\n code: 24,\n exclusive: true,\n noAnnotation: 0,\n boxAnnotation: 1,\n roundedBoxAnnotation: 2,\n circleAnnotation: 3,\n invertedCircleAnnotation: 4,\n parenthesisAnnotation: 5,\n periodAnnotation: 6,\n romanNumeralAnnotation: 7,\n diamondAnnotation: 8,\n invertedBoxAnnotation: 9,\n invertedRoundedBoxAnnotation: 10\n },\n kanaSpacing: {\n code: 25,\n exclusive: true,\n fullWidthKana: 0,\n proportionalKana: 1\n },\n ideographicSpacing: {\n code: 26,\n exclusive: true,\n fullWidthIdeographs: 0,\n proportionalIdeographs: 1,\n halfWidthIdeographs: 2\n },\n unicodeDecomposition: {\n code: 27,\n exclusive: false,\n canonicalComposition: 0,\n compatibilityComposition: 2,\n transcodingComposition: 4\n },\n rubyKana: {\n code: 28,\n exclusive: false,\n // noRubyKana: 0 # deprecated - use rubyKanaOff instead\n // rubyKana: 1 # deprecated - use rubyKanaOn instead\n rubyKana: 2\n },\n CJKSymbolAlternatives: {\n code: 29,\n exclusive: true,\n noCJKSymbolAlternatives: 0,\n CJKSymbolAltOne: 1,\n CJKSymbolAltTwo: 2,\n CJKSymbolAltThree: 3,\n CJKSymbolAltFour: 4,\n CJKSymbolAltFive: 5\n },\n ideographicAlternatives: {\n code: 30,\n exclusive: true,\n noIdeographicAlternatives: 0,\n ideographicAltOne: 1,\n ideographicAltTwo: 2,\n ideographicAltThree: 3,\n ideographicAltFour: 4,\n ideographicAltFive: 5\n },\n CJKVerticalRomanPlacement: {\n code: 31,\n exclusive: true,\n CJKVerticalRomanCentered: 0,\n CJKVerticalRomanHBaseline: 1\n },\n italicCJKRoman: {\n code: 32,\n exclusive: false,\n // noCJKItalicRoman: 0 # deprecated - use CJKItalicRomanOff instead\n // CJKItalicRoman: 1 # deprecated - use CJKItalicRomanOn instead\n CJKItalicRoman: 2\n },\n caseSensitiveLayout: {\n code: 33,\n exclusive: false,\n caseSensitiveLayout: 0,\n caseSensitiveSpacing: 2\n },\n alternateKana: {\n code: 34,\n exclusive: false,\n alternateHorizKana: 0,\n alternateVertKana: 2\n },\n stylisticAlternatives: {\n code: 35,\n exclusive: false,\n noStylisticAlternates: 0,\n stylisticAltOne: 2,\n stylisticAltTwo: 4,\n stylisticAltThree: 6,\n stylisticAltFour: 8,\n stylisticAltFive: 10,\n stylisticAltSix: 12,\n stylisticAltSeven: 14,\n stylisticAltEight: 16,\n stylisticAltNine: 18,\n stylisticAltTen: 20,\n stylisticAltEleven: 22,\n stylisticAltTwelve: 24,\n stylisticAltThirteen: 26,\n stylisticAltFourteen: 28,\n stylisticAltFifteen: 30,\n stylisticAltSixteen: 32,\n stylisticAltSeventeen: 34,\n stylisticAltEighteen: 36,\n stylisticAltNineteen: 38,\n stylisticAltTwenty: 40\n },\n contextualAlternates: {\n code: 36,\n exclusive: false,\n contextualAlternates: 0,\n swashAlternates: 2,\n contextualSwashAlternates: 4\n },\n lowerCase: {\n code: 37,\n exclusive: true,\n defaultLowerCase: 0,\n lowerCaseSmallCaps: 1,\n lowerCasePetiteCaps: 2\n },\n upperCase: {\n code: 38,\n exclusive: true,\n defaultUpperCase: 0,\n upperCaseSmallCaps: 1,\n upperCasePetiteCaps: 2\n },\n languageTag: { // indices into ltag table\n code: 39,\n exclusive: true\n },\n CJKRomanSpacing: {\n code: 103,\n exclusive: true,\n halfWidthCJKRoman: 0,\n proportionalCJKRoman: 1,\n defaultCJKRoman: 2,\n fullWidthCJKRoman: 3\n }\n};\n\nconst feature = (name, selector) => [features[name].code, features[name][selector]];\n\nconst OTMapping = {\n rlig: feature('ligatures', 'requiredLigatures'),\n clig: feature('ligatures', 'contextualLigatures'),\n dlig: feature('ligatures', 'rareLigatures'),\n hlig: feature('ligatures', 'historicalLigatures'),\n liga: feature('ligatures', 'commonLigatures'),\n hist: feature('ligatures', 'historicalLigatures'), // ??\n\n smcp: feature('lowerCase', 'lowerCaseSmallCaps'),\n pcap: feature('lowerCase', 'lowerCasePetiteCaps'),\n\n frac: feature('fractions', 'diagonalFractions'),\n dnom: feature('fractions', 'diagonalFractions'), // ??\n numr: feature('fractions', 'diagonalFractions'), // ??\n afrc: feature('fractions', 'verticalFractions'),\n // aalt\n // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n // unic, vatu, vhal, vjmo, vpal, vrt2\n // dist -> trak table?\n // kern, vkrn -> kern table\n // lfbd + opbd + rtbd -> opbd table?\n // mark, mkmk -> acnt table?\n // locl -> languageTag + ltag table\n\n case: feature('caseSensitiveLayout', 'caseSensitiveLayout'), // also caseSensitiveSpacing\n ccmp: feature('unicodeDecomposition', 'canonicalComposition'), // compatibilityComposition?\n cpct: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'), // guess..., probably not given below\n valt: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n swsh: feature('contextualAlternates', 'swashAlternates'),\n cswh: feature('contextualAlternates', 'contextualSwashAlternates'),\n curs: feature('cursiveConnection', 'cursive'), // ??\n c2pc: feature('upperCase', 'upperCasePetiteCaps'),\n c2sc: feature('upperCase', 'upperCaseSmallCaps'),\n\n init: feature('smartSwash', 'wordInitialSwashes'), // ??\n fin2: feature('smartSwash', 'wordFinalSwashes'), // ??\n medi: feature('smartSwash', 'nonFinalSwashes'), // ??\n med2: feature('smartSwash', 'nonFinalSwashes'), // ??\n fin3: feature('smartSwash', 'wordFinalSwashes'), // ??\n fina: feature('smartSwash', 'wordFinalSwashes'), // ??\n\n pkna: feature('kanaSpacing', 'proportionalKana'),\n half: feature('textSpacing', 'halfWidthText'), // also HalfWidthCJKRoman, HalfWidthIdeographs?\n halt: feature('textSpacing', 'altHalfWidthText'),\n\n hkna: feature('alternateKana', 'alternateHorizKana'),\n vkna: feature('alternateKana', 'alternateVertKana'),\n // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n\n ital: feature('italicCJKRoman', 'CJKItalicRoman'),\n lnum: feature('numberCase', 'upperCaseNumbers'),\n onum: feature('numberCase', 'lowerCaseNumbers'),\n mgrk: feature('mathematicalExtras', 'mathematicalGreek'),\n\n // nalt: not enough info. what type of annotation?\n // ornm: ditto, which ornament style?\n\n calt: feature('contextualAlternates', 'contextualAlternates'), // or more?\n vrt2: feature('verticalSubstitution', 'substituteVerticalForms'), // oh... below?\n vert: feature('verticalSubstitution', 'substituteVerticalForms'),\n tnum: feature('numberSpacing', 'monospacedNumbers'),\n pnum: feature('numberSpacing', 'proportionalNumbers'),\n sups: feature('verticalPosition', 'superiors'),\n subs: feature('verticalPosition', 'inferiors'),\n ordn: feature('verticalPosition', 'ordinals'),\n pwid: feature('textSpacing', 'proportionalText'),\n hwid: feature('textSpacing', 'halfWidthText'),\n qwid: feature('textSpacing', 'quarterWidthText'), // also QuarterWidthNumbers?\n twid: feature('textSpacing', 'thirdWidthText'), // also ThirdWidthNumbers?\n fwid: feature('textSpacing', 'proportionalText'), //??\n palt: feature('textSpacing', 'altProportionalText'),\n trad: feature('characterShape', 'traditionalCharacters'),\n smpl: feature('characterShape', 'simplifiedCharacters'),\n jp78: feature('characterShape', 'JIS1978Characters'),\n jp83: feature('characterShape', 'JIS1983Characters'),\n jp90: feature('characterShape', 'JIS1990Characters'),\n jp04: feature('characterShape', 'JIS2004Characters'),\n expt: feature('characterShape', 'expertCharacters'),\n hojo: feature('characterShape', 'hojoCharacters'),\n nlck: feature('characterShape', 'NLCCharacters'),\n tnam: feature('characterShape', 'traditionalNamesCharacters'),\n ruby: feature('rubyKana', 'rubyKana'),\n titl: feature('styleOptions', 'titlingCaps'),\n zero: feature('typographicExtras', 'slashedZero'),\n\n ss01: feature('stylisticAlternatives', 'stylisticAltOne'),\n ss02: feature('stylisticAlternatives', 'stylisticAltTwo'),\n ss03: feature('stylisticAlternatives', 'stylisticAltThree'),\n ss04: feature('stylisticAlternatives', 'stylisticAltFour'),\n ss05: feature('stylisticAlternatives', 'stylisticAltFive'),\n ss06: feature('stylisticAlternatives', 'stylisticAltSix'),\n ss07: feature('stylisticAlternatives', 'stylisticAltSeven'),\n ss08: feature('stylisticAlternatives', 'stylisticAltEight'),\n ss09: feature('stylisticAlternatives', 'stylisticAltNine'),\n ss10: feature('stylisticAlternatives', 'stylisticAltTen'),\n ss11: feature('stylisticAlternatives', 'stylisticAltEleven'),\n ss12: feature('stylisticAlternatives', 'stylisticAltTwelve'),\n ss13: feature('stylisticAlternatives', 'stylisticAltThirteen'),\n ss14: feature('stylisticAlternatives', 'stylisticAltFourteen'),\n ss15: feature('stylisticAlternatives', 'stylisticAltFifteen'),\n ss16: feature('stylisticAlternatives', 'stylisticAltSixteen'),\n ss17: feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n ss18: feature('stylisticAlternatives', 'stylisticAltEighteen'),\n ss19: feature('stylisticAlternatives', 'stylisticAltNineteen'),\n ss20: feature('stylisticAlternatives', 'stylisticAltTwenty')\n};\n\n // salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n\n// Add cv01-cv99 features\nfor (let i = 1; i <= 99; i++) {\n OTMapping[`cv${`00${i}`.slice(-2)}`] = [features.characterAlternatives.code, i];\n}\n\n// create inverse mapping\nlet AATMapping = {};\nfor (let ot in OTMapping) {\n let aat = OTMapping[ot];\n if (AATMapping[aat[0]] == null) {\n AATMapping[aat[0]] = {};\n }\n\n AATMapping[aat[0]][aat[1]] = ot;\n}\n\n// Maps an array of OpenType features to AAT features\n// in the form of {featureType:{featureSetting:true}}\nexport function mapOTToAAT(features) {\n let res = {};\n for (let k in features) {\n let r;\n if (r = OTMapping[k]) {\n if (res[r[0]] == null) {\n res[r[0]] = {};\n }\n\n res[r[0]][r[1]] = features[k];\n }\n }\n\n return res;\n}\n\n// Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\nfunction mapFeatureStrings(f) {\n let [type, setting] = f;\n if (isNaN(type)) {\n var typeCode = features[type] && features[type].code;\n } else {\n var typeCode = type;\n }\n\n if (isNaN(setting)) {\n var settingCode = features[type] && features[type][setting];\n } else {\n var settingCode = setting;\n }\n\n return [typeCode, settingCode];\n}\n\n// Maps AAT features to an array of OpenType features\n// Supports both arrays in the form of [[featureType, featureSetting]]\n// and objects in the form of {featureType:{featureSetting:true}}\n// featureTypes and featureSettings can be either strings or number codes\nexport function mapAATToOT(features) {\n let res = {};\n if (Array.isArray(features)) {\n for (let k = 0; k < features.length; k++) {\n let r;\n let f = mapFeatureStrings(features[k]);\n if (r = AATMapping[f[0]] && AATMapping[f[0]][f[1]]) {\n res[r] = true;\n }\n }\n\n } else if (typeof features === 'object') {\n for (let type in features) {\n let feature = features[type];\n for (let setting in feature) {\n let r;\n let f = mapFeatureStrings([type, setting]);\n if (feature[setting] && (r = AATMapping[f[0]] && AATMapping[f[0]][f[1]])) {\n res[r] = true;\n }\n }\n }\n }\n\n return Object.keys(res);\n}\n","import {cache} from '../decorators';\nimport {range} from '../utils';\n\nexport default class AATLookupTable {\n constructor(table) {\n this.table = table;\n }\n\n lookup(glyph) {\n switch (this.table.version) {\n case 0: // simple array format\n return this.table.values.getItem(glyph);\n\n case 2: // segment format\n case 4: {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n\n while (min <= max) {\n var mid = (min + max) >> 1;\n var seg = this.table.segments[mid];\n\n // special end of search value\n if (seg.firstGlyph === 0xffff) {\n return null;\n }\n\n if (glyph < seg.firstGlyph) {\n max = mid - 1;\n } else if (glyph > seg.lastGlyph) {\n min = mid + 1;\n } else {\n if (this.table.version === 2) {\n return seg.value;\n } else {\n return seg.values[glyph - seg.firstGlyph];\n }\n }\n }\n\n return null;\n }\n\n case 6: { // lookup single\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n\n while (min <= max) {\n var mid = (min + max) >> 1;\n var seg = this.table.segments[mid];\n\n // special end of search value\n if (seg.glyph === 0xffff) {\n return null;\n }\n\n if (glyph < seg.glyph) {\n max = mid - 1;\n } else if (glyph > seg.glyph) {\n min = mid + 1;\n } else {\n return seg.value;\n }\n }\n\n return null;\n }\n\n case 8: // lookup trimmed\n return this.table.values[glyph - this.table.firstGlyph];\n\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n }\n\n @cache\n glyphsForValue(classValue) {\n let res = [];\n\n switch (this.table.version) {\n case 2: // segment format\n case 4: {\n for (let segment of this.table.segments) {\n if ((this.table.version === 2 && segment.value === classValue)) {\n res.push(...range(segment.firstGlyph, segment.lastGlyph + 1));\n } else {\n for (let index = 0; index < segment.values.length; index++) {\n if (segment.values[index] === classValue) {\n res.push(segment.firstGlyph + index);\n }\n }\n }\n }\n\n break;\n }\n\n case 6: { // lookup single\n for (let segment of this.table.segments) {\n if (segment.value === classValue) {\n res.push(segment.glyph);\n }\n }\n\n break;\n }\n\n case 8: { // lookup trimmed\n for (let i = 0; i < this.table.values.length; i++) {\n if (this.table.values[i] === classValue) {\n res.push(this.table.firstGlyph + i);\n }\n }\n\n break;\n }\n\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n\n return res;\n }\n}\n","import AATLookupTable from './AATLookupTable';\n\nconst START_OF_TEXT_STATE = 0;\nconst START_OF_LINE_STATE = 1;\n\nconst END_OF_TEXT_CLASS = 0;\nconst OUT_OF_BOUNDS_CLASS = 1;\nconst DELETED_GLYPH_CLASS = 2;\nconst END_OF_LINE_CLASS = 3;\n\nconst DONT_ADVANCE = 0x4000;\n\nexport default class AATStateMachine {\n constructor(stateTable) {\n this.stateTable = stateTable;\n this.lookupTable = new AATLookupTable(stateTable.classTable);\n }\n\n process(glyphs, reverse, processEntry) {\n let currentState = START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n let index = reverse ? glyphs.length - 1 : 0;\n let dir = reverse ? -1 : 1;\n\n while ((dir === 1 && index <= glyphs.length) || (dir === -1 && index >= -1)) {\n let glyph = null;\n let classCode = OUT_OF_BOUNDS_CLASS;\n let shouldAdvance = true;\n\n if (index === glyphs.length || index === -1) {\n classCode = END_OF_TEXT_CLASS;\n } else {\n glyph = glyphs[index];\n if (glyph.id === 0xffff) { // deleted glyph\n classCode = DELETED_GLYPH_CLASS;\n } else {\n classCode = this.lookupTable.lookup(glyph.id);\n if (classCode == null) {\n classCode = OUT_OF_BOUNDS_CLASS;\n }\n }\n }\n\n let row = this.stateTable.stateArray.getItem(currentState);\n let entryIndex = row[classCode];\n let entry = this.stateTable.entryTable.getItem(entryIndex);\n\n if (classCode !== END_OF_TEXT_CLASS && classCode !== DELETED_GLYPH_CLASS) {\n processEntry(glyph, entry, index);\n shouldAdvance = !(entry.flags & DONT_ADVANCE);\n }\n\n currentState = entry.newState;\n if (shouldAdvance) {\n index += dir;\n }\n }\n\n return glyphs;\n }\n\n /**\n * Performs a depth-first traversal of the glyph strings\n * represented by the state machine.\n */\n traverse(opts, state = 0, visited = new Set) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n\n let {nClasses, stateArray, entryTable} = this.stateTable;\n let row = stateArray.getItem(state);\n\n // Skip predefined classes\n for (let classCode = 4; classCode < nClasses; classCode++) {\n let entryIndex = row[classCode];\n let entry = entryTable.getItem(entryIndex);\n\n // Try all glyphs in the class\n for (let glyph of this.lookupTable.glyphsForValue(classCode)) {\n if (opts.enter) {\n opts.enter(glyph, entry);\n }\n\n if (entry.newState !== 0) {\n this.traverse(opts, entry.newState, visited);\n }\n\n if (opts.exit) {\n opts.exit(glyph, entry);\n }\n }\n }\n }\n}\n","import AATStateMachine from './AATStateMachine';\nimport AATLookupTable from './AATLookupTable';\nimport {cache} from '../decorators';\n\n// indic replacement flags\nconst MARK_FIRST = 0x8000;\nconst MARK_LAST = 0x2000;\nconst VERB = 0x000F;\n\n// contextual substitution and glyph insertion flag\nconst SET_MARK = 0x8000;\n\n// ligature entry flags\nconst SET_COMPONENT = 0x8000;\nconst PERFORM_ACTION = 0x2000;\n\n// ligature action masks\nconst LAST_MASK = 0x80000000;\nconst STORE_MASK = 0x40000000;\nconst OFFSET_MASK = 0x3FFFFFFF;\n\nconst VERTICAL_ONLY = 0x800000;\nconst REVERSE_DIRECTION = 0x400000;\nconst HORIZONTAL_AND_VERTICAL = 0x200000;\n\n// glyph insertion flags\nconst CURRENT_IS_KASHIDA_LIKE = 0x2000;\nconst MARKED_IS_KASHIDA_LIKE = 0x1000;\nconst CURRENT_INSERT_BEFORE = 0x0800;\nconst MARKED_INSERT_BEFORE = 0x0400;\nconst CURRENT_INSERT_COUNT = 0x03E0;\nconst MARKED_INSERT_COUNT = 0x001F;\n\nexport default class AATMorxProcessor {\n constructor(font) {\n this.processIndicRearragement = this.processIndicRearragement.bind(this);\n this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n this.processLigature = this.processLigature.bind(this);\n this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n this.font = font;\n this.morx = font.morx;\n this.inputCache = null;\n }\n\n // Processes an array of glyphs and applies the specified features\n // Features should be in the form of {featureType:{featureSetting:boolean}}\n process(glyphs, features = {}) {\n for (let chain of this.morx.chains) {\n let flags = chain.defaultFlags;\n\n // enable/disable the requested features\n for (let feature of chain.features) {\n let f;\n if (f = features[feature.featureType]) {\n if (f[feature.featureSetting]) {\n flags &= feature.disableFlags;\n flags |= feature.enableFlags;\n } else if (f[feature.featureSetting] === false) {\n flags |= ~feature.disableFlags;\n flags &= ~feature.enableFlags;\n }\n }\n }\n\n for (let subtable of chain.subtables) {\n if (subtable.subFeatureFlags & flags) {\n this.processSubtable(subtable, glyphs);\n }\n }\n }\n\n // remove deleted glyphs\n let index = glyphs.length - 1;\n while (index >= 0) {\n if (glyphs[index].id === 0xffff) {\n glyphs.splice(index, 1);\n }\n\n index--;\n }\n\n return glyphs;\n }\n\n processSubtable(subtable, glyphs) {\n this.subtable = subtable;\n this.glyphs = glyphs;\n if (this.subtable.type === 4) {\n this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n return;\n }\n\n this.ligatureStack = [];\n this.markedGlyph = null;\n this.firstGlyph = null;\n this.lastGlyph = null;\n this.markedIndex = null;\n\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n\n let reverse = !!(this.subtable.coverage & REVERSE_DIRECTION);\n return stateMachine.process(this.glyphs, reverse, process);\n }\n\n @cache\n getStateMachine(subtable) {\n return new AATStateMachine(subtable.table.stateTable);\n }\n\n getProcessor() {\n switch (this.subtable.type) {\n case 0:\n return this.processIndicRearragement;\n case 1:\n return this.processContextualSubstitution;\n case 2:\n return this.processLigature;\n case 4:\n return this.processNoncontextualSubstitutions;\n case 5:\n return this.processGlyphInsertion;\n default:\n throw new Error(`Invalid morx subtable type: ${this.subtable.type}`);\n }\n }\n\n processIndicRearragement(glyph, entry, index) {\n if (entry.flags & MARK_FIRST) {\n this.firstGlyph = index;\n }\n\n if (entry.flags & MARK_LAST) {\n this.lastGlyph = index;\n }\n\n reorderGlyphs(this.glyphs, entry.flags & VERB, this.firstGlyph, this.lastGlyph);\n }\n\n processContextualSubstitution(glyph, entry, index) {\n let subsitutions = this.subtable.table.substitutionTable.items;\n if (entry.markIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.markIndex);\n let lookupTable = new AATLookupTable(lookup);\n glyph = this.glyphs[this.markedGlyph];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) {\n this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n\n if (entry.currentIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.currentIndex);\n let lookupTable = new AATLookupTable(lookup);\n glyph = this.glyphs[index];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) {\n this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n\n if (entry.flags & SET_MARK) {\n this.markedGlyph = index;\n }\n }\n\n processLigature(glyph, entry, index) {\n if (entry.flags & SET_COMPONENT) {\n this.ligatureStack.push(index);\n }\n\n if (entry.flags & PERFORM_ACTION) {\n let actions = this.subtable.table.ligatureActions;\n let components = this.subtable.table.components;\n let ligatureList = this.subtable.table.ligatureList;\n\n let actionIndex = entry.action;\n let last = false;\n let ligatureIndex = 0;\n let codePoints = [];\n let ligatureGlyphs = [];\n\n while (!last) {\n let componentGlyph = this.ligatureStack.pop();\n codePoints.unshift(...this.glyphs[componentGlyph].codePoints);\n\n let action = actions.getItem(actionIndex++);\n last = !!(action & LAST_MASK);\n let store = !!(action & STORE_MASK);\n let offset = (action & OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n offset += this.glyphs[componentGlyph].id;\n\n let component = components.getItem(offset);\n ligatureIndex += component;\n\n if (last || store) {\n let ligatureEntry = ligatureList.getItem(ligatureIndex);\n this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n ligatureGlyphs.push(componentGlyph);\n ligatureIndex = 0;\n codePoints = [];\n } else {\n this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n }\n }\n\n // Put ligature glyph indexes back on the stack\n this.ligatureStack.push(...ligatureGlyphs);\n }\n }\n\n processNoncontextualSubstitutions(subtable, glyphs, index) {\n let lookupTable = new AATLookupTable(subtable.table.lookupTable);\n\n for (index = 0; index < glyphs.length; index++) {\n let glyph = glyphs[index];\n if (glyph.id !== 0xffff) {\n let gid = lookupTable.lookup(glyph.id);\n if (gid) { // 0 means do nothing\n glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n }\n }\n\n _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n let insertions = [];\n while (count--) {\n let gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n insertions.push(this.font.getGlyph(gid));\n }\n\n if (!isBefore) {\n glyphIndex++;\n }\n\n this.glyphs.splice(glyphIndex, 0, ...insertions);\n }\n\n processGlyphInsertion(glyph, entry, index) {\n if (entry.flags & SET_MARK) {\n this.markedIndex = index;\n }\n\n if (entry.markedInsertIndex !== 0xffff) {\n let count = (entry.flags & MARKED_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & MARKED_INSERT_BEFORE);\n this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n }\n\n if (entry.currentInsertIndex !== 0xffff) {\n let count = (entry.flags & CURRENT_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & CURRENT_INSERT_BEFORE);\n this._insertGlyphs(index, entry.currentInsertIndex, count, isBefore);\n }\n }\n\n getSupportedFeatures() {\n let features = [];\n for (let chain of this.morx.chains) {\n for (let feature of chain.features) {\n features.push([feature.featureType, feature.featureSetting]);\n }\n }\n\n return features;\n }\n\n generateInputs(gid) {\n if (!this.inputCache) {\n this.generateInputCache();\n }\n\n return this.inputCache[gid] || [];\n }\n\n generateInputCache() {\n this.inputCache = {};\n\n for (let chain of this.morx.chains) {\n let flags = chain.defaultFlags;\n\n for (let subtable of chain.subtables) {\n if (subtable.subFeatureFlags & flags) {\n this.generateInputsForSubtable(subtable);\n }\n }\n }\n }\n\n generateInputsForSubtable(subtable) {\n // Currently, only supporting ligature subtables.\n if (subtable.type !== 2) {\n return;\n }\n\n let reverse = !!(subtable.coverage & REVERSE_DIRECTION);\n if (reverse) {\n throw new Error('Reverse subtable, not supported.');\n }\n\n this.subtable = subtable;\n this.ligatureStack = [];\n\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n\n let input = [];\n let stack = [];\n this.glyphs = [];\n\n stateMachine.traverse({\n enter: (glyph, entry) => {\n let glyphs = this.glyphs;\n stack.push({\n glyphs: glyphs.slice(),\n ligatureStack: this.ligatureStack.slice()\n });\n\n // Add glyph to input and glyphs to process.\n let g = this.font.getGlyph(glyph);\n input.push(g);\n glyphs.push(input[input.length - 1]);\n\n // Process ligature substitution\n process(glyphs[glyphs.length - 1], entry, glyphs.length - 1);\n\n // Add input to result if only one matching (non-deleted) glyph remains.\n let count = 0;\n let found = 0;\n for (let i = 0; i < glyphs.length && count <= 1; i++) {\n if (glyphs[i].id !== 0xffff) {\n count++;\n found = glyphs[i].id;\n }\n }\n\n if (count === 1) {\n let result = input.map(g => g.id);\n let cache = this.inputCache[found];\n if (cache) {\n cache.push(result);\n } else {\n this.inputCache[found] = [result];\n }\n }\n },\n\n exit: () => {\n ({glyphs: this.glyphs, ligatureStack: this.ligatureStack} = stack.pop());\n input.pop();\n }\n });\n }\n}\n\n// swaps the glyphs in rangeA with those in rangeB\n// reverse the glyphs inside those ranges if specified\n// ranges are in [offset, length] format\nfunction swap(glyphs, rangeA, rangeB, reverseA = false, reverseB = false) {\n let end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n if (reverseB) {\n end.reverse();\n }\n\n let start = glyphs.splice(rangeA[0], rangeA[1], ...end);\n if (reverseA) {\n start.reverse();\n }\n\n glyphs.splice(rangeB[0] - (rangeA[1] - 1), 0, ...start);\n return glyphs;\n}\n\nfunction reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n let length = lastGlyph - firstGlyph + 1;\n switch (verb) {\n case 0: // no change\n return glyphs;\n\n case 1: // Ax => xA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 0]);\n\n case 2: // xD => Dx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 1]);\n\n case 3: // AxD => DxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 1]);\n\n case 4: // ABx => xAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0]);\n\n case 5: // ABx => xBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0], true, false);\n\n case 6: // xCD => CDx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2]);\n\n case 7: // xCD => DCx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2], false, true);\n\n case 8: // AxCD => CDxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2]);\n\n case 9: // AxCD => DCxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2], false, true);\n\n case 10: // ABxD => DxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1]);\n\n case 11: // ABxD => DxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1], true, false);\n\n case 12: // ABxCD => CDxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2]);\n\n case 13: // ABxCD => CDxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, false);\n\n case 14: // ABxCD => DCxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], false, true);\n\n case 15: // ABxCD => DCxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, true);\n\n default:\n throw new Error(`Unknown verb: ${verb}`);\n }\n}\n","import * as AATFeatureMap from './AATFeatureMap';\nimport * as Script from '../layout/Script';\nimport AATMorxProcessor from './AATMorxProcessor';\n\nexport default class AATLayoutEngine {\n constructor(font) {\n this.font = font;\n this.morxProcessor = new AATMorxProcessor(font);\n this.fallbackPosition = false;\n }\n\n substitute(glyphRun) {\n // AAT expects the glyphs to be in visual order prior to morx processing,\n // so reverse the glyphs if the script is right-to-left.\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n }\n\n this.morxProcessor.process(glyphRun.glyphs, AATFeatureMap.mapOTToAAT(glyphRun.features));\n }\n\n getAvailableFeatures(script, language) {\n return AATFeatureMap.mapAATToOT(this.morxProcessor.getSupportedFeatures());\n }\n\n stringsForGlyph(gid) {\n let glyphStrings = this.morxProcessor.generateInputs(gid);\n let result = new Set;\n\n for (let glyphs of glyphStrings) {\n this._addStrings(glyphs, 0, result, '');\n }\n\n return result;\n }\n\n _addStrings(glyphs, index, strings, string) {\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n\n for (let codePoint of codePoints) {\n let s = string + String.fromCodePoint(codePoint);\n if (index < glyphs.length - 1) {\n this._addStrings(glyphs, index + 1, strings, s);\n } else {\n strings.add(s);\n }\n }\n }\n}\n","import * as Script from '../layout/Script';\n\n/**\n * ShapingPlans are used by the OpenType shapers to store which\n * features should by applied, and in what order to apply them.\n * The features are applied in groups called stages. A feature\n * can be applied globally to all glyphs, or locally to only\n * specific glyphs.\n *\n * @private\n */\nexport default class ShapingPlan {\n constructor(font, script, direction) {\n this.font = font;\n this.script = script;\n this.direction = direction;\n this.stages = [];\n this.globalFeatures = {};\n this.allFeatures = {};\n }\n\n /**\n * Adds the given features to the last stage.\n * Ignores features that have already been applied.\n */\n _addFeatures(features, global) {\n let stageIndex = this.stages.length - 1;\n let stage = this.stages[stageIndex];\n for (let feature of features) {\n if (this.allFeatures[feature] == null) {\n stage.push(feature);\n this.allFeatures[feature] = stageIndex;\n\n if (global) {\n this.globalFeatures[feature] = true;\n }\n }\n }\n }\n\n /**\n * Add features to the last stage\n */\n add(arg, global = true) {\n if (this.stages.length === 0) {\n this.stages.push([]);\n }\n\n if (typeof arg === 'string') {\n arg = [arg];\n }\n\n if (Array.isArray(arg)) {\n this._addFeatures(arg, global);\n } else if (typeof arg === 'object') {\n this._addFeatures(arg.global || [], true);\n this._addFeatures(arg.local || [], false);\n } else {\n throw new Error(\"Unsupported argument to ShapingPlan#add\");\n }\n }\n\n /**\n * Add a new stage\n */\n addStage(arg, global) {\n if (typeof arg === 'function') {\n this.stages.push(arg, []);\n } else {\n this.stages.push([]);\n this.add(arg, global);\n }\n }\n\n setFeatureOverrides(features) {\n if (Array.isArray(features)) {\n this.add(features);\n } else if (typeof features === 'object') {\n for (let tag in features) {\n if (features[tag]) {\n this.add(tag);\n } else if (this.allFeatures[tag] != null) {\n let stage = this.stages[this.allFeatures[tag]];\n stage.splice(stage.indexOf(tag), 1);\n delete this.allFeatures[tag];\n delete this.globalFeatures[tag];\n }\n }\n }\n }\n\n /**\n * Assigns the global features to the given glyphs\n */\n assignGlobalFeatures(glyphs) {\n for (let glyph of glyphs) {\n for (let feature in this.globalFeatures) {\n glyph.features[feature] = true;\n }\n }\n }\n\n /**\n * Executes the planned stages using the given OTProcessor\n */\n process(processor, glyphs, positions) {\n for (let stage of this.stages) {\n if (typeof stage === 'function') {\n if (!positions) {\n stage(this.font, glyphs, this);\n }\n\n } else if (stage.length > 0) {\n processor.applyFeatures(stage, glyphs, positions);\n }\n }\n }\n}\n","import {isDigit} from 'unicode-properties';\n\nconst VARIATION_FEATURES = ['rvrn'];\nconst COMMON_FEATURES = ['ccmp', 'locl', 'rlig', 'mark', 'mkmk'];\nconst FRACTIONAL_FEATURES = ['frac', 'numr', 'dnom'];\nconst HORIZONTAL_FEATURES = ['calt', 'clig', 'liga', 'rclt', 'curs', 'kern'];\nconst VERTICAL_FEATURES = ['vert'];\nconst DIRECTIONAL_FEATURES = {\n ltr: ['ltra', 'ltrm'],\n rtl: ['rtla', 'rtlm']\n};\n\nexport default class DefaultShaper {\n static zeroMarkWidths = 'AFTER_GPOS';\n static plan(plan, glyphs, features) {\n // Plan the features we want to apply\n this.planPreprocessing(plan);\n this.planFeatures(plan);\n this.planPostprocessing(plan, features);\n\n // Assign the global features to all the glyphs\n plan.assignGlobalFeatures(glyphs);\n\n // Assign local features to glyphs\n this.assignFeatures(plan, glyphs);\n }\n\n static planPreprocessing(plan) {\n plan.add({\n global: [...VARIATION_FEATURES, ...DIRECTIONAL_FEATURES[plan.direction]],\n local: FRACTIONAL_FEATURES\n });\n }\n\n static planFeatures(plan) {\n // Do nothing by default. Let subclasses override this.\n }\n\n static planPostprocessing(plan, userFeatures) {\n plan.add([...COMMON_FEATURES, ...HORIZONTAL_FEATURES]);\n plan.setFeatureOverrides(userFeatures);\n }\n\n static assignFeatures(plan, glyphs) {\n // Enable contextual fractions\n for (let i = 0; i < glyphs.length; i++) {\n let glyph = glyphs[i];\n if (glyph.codePoints[0] === 0x2044) { // fraction slash\n let start = i;\n let end = i + 1;\n\n // Apply numerator\n while (start > 0 && isDigit(glyphs[start - 1].codePoints[0])) {\n glyphs[start - 1].features.numr = true;\n glyphs[start - 1].features.frac = true;\n start--;\n }\n\n // Apply denominator\n while (end < glyphs.length && isDigit(glyphs[end].codePoints[0])) {\n glyphs[end].features.dnom = true;\n glyphs[end].features.frac = true;\n end++;\n }\n\n // Apply fraction slash\n glyph.features.frac = true;\n i = end - 1;\n }\n }\n }\n}\n","import DefaultShaper from './DefaultShaper';\nimport {getCategory} from 'unicode-properties';\nimport UnicodeTrie from 'unicode-trie';\nimport { decodeBase64 } from '../../utils';\n\nconst trie = new UnicodeTrie(decodeBase64(require('fs').readFileSync(__dirname + '/data.trie', 'base64')));\nconst FEATURES = ['isol', 'fina', 'fin2', 'fin3', 'medi', 'med2', 'init'];\n\nconst ShapingClasses = {\n Non_Joining: 0,\n Left_Joining: 1,\n Right_Joining: 2,\n Dual_Joining: 3,\n Join_Causing: 3,\n ALAPH: 4,\n 'DALATH RISH': 5,\n Transparent: 6\n};\n\nconst ISOL = 'isol';\nconst FINA = 'fina';\nconst FIN2 = 'fin2';\nconst FIN3 = 'fin3';\nconst MEDI = 'medi';\nconst MED2 = 'med2';\nconst INIT = 'init';\nconst NONE = null;\n\n// Each entry is [prevAction, curAction, nextState]\nconst STATE_TABLE = [\n // Non_Joining, Left_Joining, Right_Joining, Dual_Joining, ALAPH, DALATH RISH\n // State 0: prev was U, not willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ NONE, ISOL, 1 ], [ NONE, ISOL, 2 ], [ NONE, ISOL, 1 ], [ NONE, ISOL, 6 ] ],\n\n // State 1: prev was R or ISOL/ALAPH, not willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ NONE, ISOL, 1 ], [ NONE, ISOL, 2 ], [ NONE, FIN2, 5 ], [ NONE, ISOL, 6 ] ],\n\n // State 2: prev was D/L in ISOL form, willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ INIT, FINA, 1 ], [ INIT, FINA, 3 ], [ INIT, FINA, 4 ], [ INIT, FINA, 6 ] ],\n\n // State 3: prev was D in FINA form, willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ MEDI, FINA, 1 ], [ MEDI, FINA, 3 ], [ MEDI, FINA, 4 ], [ MEDI, FINA, 6 ] ],\n\n // State 4: prev was FINA ALAPH, not willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ MED2, ISOL, 1 ], [ MED2, ISOL, 2 ], [ MED2, FIN2, 5 ], [ MED2, ISOL, 6 ] ],\n\n // State 5: prev was FIN2/FIN3 ALAPH, not willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ ISOL, ISOL, 1 ], [ ISOL, ISOL, 2 ], [ ISOL, FIN2, 5 ], [ ISOL, ISOL, 6 ] ],\n\n // State 6: prev was DALATH/RISH, not willing to join.\n [ [ NONE, NONE, 0 ], [ NONE, ISOL, 2 ], [ NONE, ISOL, 1 ], [ NONE, ISOL, 2 ], [ NONE, FIN3, 5 ], [ NONE, ISOL, 6 ] ]\n];\n\n/**\n * This is a shaper for Arabic, and other cursive scripts.\n * It uses data from ArabicShaping.txt in the Unicode database,\n * compiled to a UnicodeTrie by generate-data.coffee.\n *\n * The shaping state machine was ported from Harfbuzz.\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-arabic.cc\n */\nexport default class ArabicShaper extends DefaultShaper {\n static planFeatures(plan) {\n plan.add(['ccmp', 'locl']);\n for (let i = 0; i < FEATURES.length; i++) {\n let feature = FEATURES[i];\n plan.addStage(feature, false);\n }\n\n plan.addStage('mset');\n }\n\n static assignFeatures(plan, glyphs) {\n super.assignFeatures(plan, glyphs);\n\n let prev = -1;\n let state = 0;\n let actions = [];\n\n // Apply the state machine to map glyphs to features\n for (let i = 0; i < glyphs.length; i++) {\n let curAction, prevAction;\n var glyph = glyphs[i];\n let type = getShapingClass(glyph.codePoints[0]);\n if (type === ShapingClasses.Transparent) {\n actions[i] = NONE;\n continue;\n }\n\n [prevAction, curAction, state] = STATE_TABLE[state][type];\n\n if (prevAction !== NONE && prev !== -1) {\n actions[prev] = prevAction;\n }\n\n actions[i] = curAction;\n prev = i;\n }\n\n // Apply the chosen features to their respective glyphs\n for (let index = 0; index < glyphs.length; index++) {\n let feature;\n var glyph = glyphs[index];\n if (feature = actions[index]) {\n glyph.features[feature] = true;\n }\n }\n }\n}\n\nfunction getShapingClass(codePoint) {\n let res = trie.get(codePoint);\n if (res) {\n return res - 1;\n }\n\n let category = getCategory(codePoint);\n if (category === 'Mn' || category === 'Me' || category === 'Cf') {\n return ShapingClasses.Transparent;\n }\n\n return ShapingClasses.Non_Joining;\n}\n","export default class GlyphIterator {\n constructor(glyphs, options) {\n this.glyphs = glyphs;\n this.reset(options);\n }\n\n reset(options = {}, index = 0) {\n this.options = options;\n this.flags = options.flags || {};\n this.markAttachmentType = options.markAttachmentType || 0;\n this.index = index;\n }\n\n get cur() {\n return this.glyphs[this.index] || null;\n }\n\n shouldIgnore(glyph) {\n return (this.flags.ignoreMarks && glyph.isMark) ||\n (this.flags.ignoreBaseGlyphs && glyph.isBase) ||\n (this.flags.ignoreLigatures && glyph.isLigature) ||\n (this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType);\n }\n\n move(dir) {\n this.index += dir;\n while (0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index])) {\n this.index += dir;\n }\n\n if (0 > this.index || this.index >= this.glyphs.length) {\n return null;\n }\n\n return this.glyphs[this.index];\n }\n\n next() {\n return this.move(+1);\n }\n\n prev() {\n return this.move(-1);\n }\n\n peek(count = 1) {\n let idx = this.index;\n let res = this.increment(count);\n this.index = idx;\n return res;\n }\n\n peekIndex(count = 1) {\n let idx = this.index;\n this.increment(count);\n let res = this.index;\n this.index = idx;\n return res;\n }\n\n increment(count = 1) {\n let dir = count < 0 ? -1 : 1;\n count = Math.abs(count);\n while (count--) {\n this.move(dir);\n }\n\n return this.glyphs[this.index];\n }\n}\n","import GlyphIterator from './GlyphIterator';\nimport * as Script from '../layout/Script';\n\nconst DEFAULT_SCRIPTS = ['DFLT', 'dflt', 'latn'];\n\nexport default class OTProcessor {\n constructor(font, table) {\n this.font = font;\n this.table = table;\n\n this.script = null;\n this.scriptTag = null;\n\n this.language = null;\n this.languageTag = null;\n\n this.features = {};\n this.lookups = {};\n\n // Setup variation substitutions\n this.variationsIndex = font._variationProcessor\n ? this.findVariationsIndex(font._variationProcessor.normalizedCoords)\n : -1;\n\n // initialize to default script + language\n this.selectScript();\n\n // current context (set by applyFeatures)\n this.glyphs = [];\n this.positions = []; // only used by GPOS\n this.ligatureID = 1;\n this.currentFeature = null;\n }\n\n findScript(script) {\n if (this.table.scriptList == null) {\n return null;\n }\n\n if (!Array.isArray(script)) {\n script = [script];\n }\n\n for (let s of script) {\n for (let entry of this.table.scriptList) {\n if (entry.tag === s) {\n return entry;\n }\n }\n }\n\n return null;\n }\n\n selectScript(script, language, direction) {\n let changed = false;\n let entry;\n if (!this.script || script !== this.scriptTag) {\n entry = this.findScript(script);\n if (!entry) {\n entry = this.findScript(DEFAULT_SCRIPTS);\n }\n\n if (!entry) {\n return this.scriptTag;\n }\n\n this.scriptTag = entry.tag;\n this.script = entry.script;\n this.language = null;\n this.languageTag = null;\n changed = true;\n }\n\n if (!direction || direction !== this.direction) {\n this.direction = direction || Script.direction(script);\n }\n\n if (language && language.length < 4) {\n language += ' '.repeat(4 - language.length);\n }\n\n if (!language || language !== this.languageTag) {\n this.language = null;\n\n for (let lang of this.script.langSysRecords) {\n if (lang.tag === language) {\n this.language = lang.langSys;\n this.languageTag = lang.tag;\n break;\n }\n }\n\n if (!this.language) {\n this.language = this.script.defaultLangSys;\n this.languageTag = null;\n }\n\n changed = true;\n }\n\n // Build a feature lookup table\n if (changed) {\n this.features = {};\n if (this.language) {\n for (let featureIndex of this.language.featureIndexes) {\n let record = this.table.featureList[featureIndex];\n let substituteFeature = this.substituteFeatureForVariations(featureIndex);\n this.features[record.tag] = substituteFeature || record.feature;\n }\n }\n }\n\n return this.scriptTag;\n }\n\n lookupsForFeatures(userFeatures = [], exclude) {\n let lookups = [];\n for (let tag of userFeatures) {\n let feature = this.features[tag];\n if (!feature) {\n continue;\n }\n\n for (let lookupIndex of feature.lookupListIndexes) {\n if (exclude && exclude.indexOf(lookupIndex) !== -1) {\n continue;\n }\n\n lookups.push({\n feature: tag,\n index: lookupIndex,\n lookup: this.table.lookupList.get(lookupIndex)\n });\n }\n }\n\n lookups.sort((a, b) => a.index - b.index);\n return lookups;\n }\n\n substituteFeatureForVariations(featureIndex) {\n if (this.variationsIndex === -1) {\n return null;\n }\n\n let record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n let substitutions = record.featureTableSubstitution.substitutions;\n for (let substitution of substitutions) {\n if (substitution.featureIndex === featureIndex) {\n return substitution.alternateFeatureTable;\n }\n }\n\n return null;\n }\n\n findVariationsIndex(coords) {\n let variations = this.table.featureVariations;\n if (!variations) {\n return -1;\n }\n\n let records = variations.featureVariationRecords;\n for (let i = 0; i < records.length; i++) {\n let conditions = records[i].conditionSet.conditionTable;\n if (this.variationConditionsMatch(conditions, coords)) {\n return i;\n }\n }\n\n return -1;\n }\n\n variationConditionsMatch(conditions, coords) {\n return conditions.every(condition => {\n let coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n });\n }\n\n applyFeatures(userFeatures, glyphs, advances) {\n let lookups = this.lookupsForFeatures(userFeatures);\n this.applyLookups(lookups, glyphs, advances);\n }\n\n applyLookups(lookups, glyphs, positions) {\n this.glyphs = glyphs;\n this.positions = positions;\n this.glyphIterator = new GlyphIterator(glyphs);\n\n for (let { feature, lookup } of lookups) {\n this.currentFeature = feature;\n this.glyphIterator.reset(lookup.flags);\n\n while (this.glyphIterator.index < glyphs.length) {\n if (!(feature in this.glyphIterator.cur.features)) {\n this.glyphIterator.next();\n continue;\n }\n\n for (let table of lookup.subTables) {\n let res = this.applyLookup(lookup.lookupType, table);\n if (res) {\n break;\n }\n }\n\n this.glyphIterator.next();\n }\n }\n }\n\n applyLookup(lookup, table) {\n throw new Error(\"applyLookup must be implemented by subclasses\");\n }\n\n applyLookupList(lookupRecords) {\n let options = this.glyphIterator.options;\n let glyphIndex = this.glyphIterator.index;\n\n for (let lookupRecord of lookupRecords) {\n // Reset flags and find glyph index for this lookup record\n this.glyphIterator.reset(options, glyphIndex);\n this.glyphIterator.increment(lookupRecord.sequenceIndex);\n\n // Get the lookup and setup flags for subtables\n let lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);\n\n // Apply lookup subtables until one matches\n for (let table of lookup.subTables) {\n if (this.applyLookup(lookup.lookupType, table)) {\n break;\n }\n }\n }\n\n this.glyphIterator.reset(options, glyphIndex);\n return true;\n }\n\n coverageIndex(coverage, glyph) {\n if (glyph == null) {\n glyph = this.glyphIterator.cur.id;\n }\n\n switch (coverage.version) {\n case 1:\n return coverage.glyphs.indexOf(glyph);\n\n case 2:\n for (let range of coverage.rangeRecords) {\n if (range.start <= glyph && glyph <= range.end) {\n return range.startCoverageIndex + glyph - range.start;\n }\n }\n\n break;\n }\n\n return -1;\n }\n\n match(sequenceIndex, sequence, fn, matched) {\n let pos = this.glyphIterator.index;\n let glyph = this.glyphIterator.increment(sequenceIndex);\n let idx = 0;\n\n while (idx < sequence.length && glyph && fn(sequence[idx], glyph)) {\n if (matched) {\n matched.push(this.glyphIterator.index);\n }\n\n idx++;\n glyph = this.glyphIterator.next();\n }\n\n this.glyphIterator.index = pos;\n if (idx < sequence.length) {\n return false;\n }\n\n return matched || true;\n }\n\n sequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph) => component === glyph.id);\n }\n\n sequenceMatchIndices(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph) => {\n // If the current feature doesn't apply to this glyph,\n if (!(this.currentFeature in glyph.features)) {\n return false;\n }\n\n return component === glyph.id;\n }, []);\n }\n\n coverageSequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (coverage, glyph) =>\n this.coverageIndex(coverage, glyph.id) >= 0\n );\n }\n\n getClassID(glyph, classDef) {\n switch (classDef.version) {\n case 1: // Class array\n let i = glyph - classDef.startGlyph;\n if (i >= 0 && i < classDef.classValueArray.length) {\n return classDef.classValueArray[i];\n }\n\n break;\n\n case 2:\n for (let range of classDef.classRangeRecord) {\n if (range.start <= glyph && glyph <= range.end) {\n return range.class;\n }\n }\n\n break;\n }\n\n return 0;\n }\n\n classSequenceMatches(sequenceIndex, sequence, classDef) {\n return this.match(sequenceIndex, sequence, (classID, glyph) =>\n classID === this.getClassID(glyph.id, classDef)\n );\n }\n\n applyContext(table) {\n let index, set;\n switch (table.version) {\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n set = table.ruleSets[index];\n for (let rule of set) {\n if (this.sequenceMatches(1, rule.input)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 2:\n if (this.coverageIndex(table.coverage) === -1) {\n return false;\n }\n\n index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n if (index === -1) {\n return false;\n }\n\n set = table.classSet[index];\n for (let rule of set) {\n if (this.classSequenceMatches(1, rule.classes, table.classDef)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 3:\n if (this.coverageSequenceMatches(0, table.coverages)) {\n return this.applyLookupList(table.lookupRecords);\n }\n\n break;\n }\n\n return false;\n }\n\n applyChainingContext(table) {\n let index;\n switch (table.version) {\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n let set = table.chainRuleSets[index];\n for (let rule of set) {\n if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack)\n && this.sequenceMatches(1, rule.input)\n && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 2:\n if (this.coverageIndex(table.coverage) === -1) {\n return false;\n }\n\n index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n let rules = table.chainClassSet[index];\n if (!rules) {\n return false;\n }\n\n for (let rule of rules) {\n if (this.classSequenceMatches(-rule.backtrack.length, rule.backtrack, table.backtrackClassDef) &&\n this.classSequenceMatches(1, rule.input, table.inputClassDef) &&\n this.classSequenceMatches(1 + rule.input.length, rule.lookahead, table.lookaheadClassDef)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 3:\n if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) &&\n this.coverageSequenceMatches(0, table.inputCoverage) &&\n this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) {\n return this.applyLookupList(table.lookupRecords);\n }\n\n break;\n }\n\n return false;\n }\n}\n","import {isMark} from 'unicode-properties';\nimport OTProcessor from './OTProcessor';\n\nexport default class GlyphInfo {\n constructor(font, id, codePoints = [], features) {\n this._font = font;\n this.codePoints = codePoints;\n this.id = id;\n\n this.features = {};\n if (Array.isArray(features)) {\n for (let i = 0; i < features.length; i++) {\n let feature = features[i];\n this.features[feature] = true;\n }\n } else if (typeof features === 'object') {\n Object.assign(this.features, features);\n }\n\n this.ligatureID = null;\n this.ligatureComponent = null;\n this.isLigated = false;\n this.cursiveAttachment = null;\n this.markAttachment = null;\n this.shaperInfo = null;\n this.substituted = false;\n this.isMultiplied = false;\n }\n\n get id() {\n return this._id;\n }\n\n set id(id) {\n this._id = id;\n this.substituted = true;\n\n let GDEF = this._font.GDEF;\n if (GDEF && GDEF.glyphClassDef) {\n // TODO: clean this up\n let classID = OTProcessor.prototype.getClassID(id, GDEF.glyphClassDef);\n this.isBase = classID === 1;\n this.isLigature = classID === 2;\n this.isMark = classID === 3;\n this.markAttachmentType = GDEF.markAttachClassDef ? OTProcessor.prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n } else {\n this.isMark = this.codePoints.length > 0 && this.codePoints.every(isMark);\n this.isBase = !this.isMark;\n this.isLigature = this.codePoints.length > 1;\n this.markAttachmentType = 0;\n }\n }\n\n copy() {\n return new GlyphInfo(this._font, this.id, this.codePoints, this.features);\n }\n}\n","import DefaultShaper from './DefaultShaper';\nimport GlyphInfo from '../GlyphInfo';\n\n/**\n * This is a shaper for the Hangul script, used by the Korean language.\n * It does the following:\n * - decompose if unsupported by the font:\n * -> \n * -> \n * -> \n *\n * - compose if supported by the font:\n * -> \n * -> \n * -> \n *\n * - reorder tone marks (S is any valid syllable):\n * -> \n *\n * - apply ljmo, vjmo, and tjmo OpenType features to decomposed Jamo sequences.\n *\n * This logic is based on the following documents:\n * - http://www.microsoft.com/typography/OpenTypeDev/hangul/intro.htm\n * - http://ktug.org/~nomos/harfbuzz-hangul/hangulshaper.pdf\n */\nexport default class HangulShaper extends DefaultShaper {\n static zeroMarkWidths = 'NONE';\n static planFeatures(plan) {\n plan.add(['ljmo', 'vjmo', 'tjmo'], false);\n }\n\n static assignFeatures(plan, glyphs) {\n let state = 0;\n let i = 0;\n while (i < glyphs.length) {\n let action;\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let type = getType(code);\n\n [ action, state ] = STATE_TABLE[state][type];\n\n switch (action) {\n case DECOMPOSE:\n // Decompose the composed syllable if it is not supported by the font.\n if (!plan.font.hasGlyphForCodePoint(code)) {\n i = decompose(glyphs, i, plan.font);\n }\n break;\n\n case COMPOSE:\n // Found a decomposed syllable. Try to compose if supported by the font.\n i = compose(glyphs, i, plan.font);\n break;\n\n case TONE_MARK:\n // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n reorderToneMark(glyphs, i, plan.font);\n break;\n\n case INVALID:\n // Tone mark has no valid syllable to attach to, so insert a dotted circle\n i = insertDottedCircle(glyphs, i, plan.font);\n break;\n }\n\n i++;\n }\n }\n}\n\nconst HANGUL_BASE = 0xac00;\nconst HANGUL_END = 0xd7a4;\nconst HANGUL_COUNT = HANGUL_END - HANGUL_BASE + 1;\nconst L_BASE = 0x1100; // lead\nconst V_BASE = 0x1161; // vowel\nconst T_BASE = 0x11a7; // trail\nconst L_COUNT = 19;\nconst V_COUNT = 21;\nconst T_COUNT = 28;\nconst L_END = L_BASE + L_COUNT - 1;\nconst V_END = V_BASE + V_COUNT - 1;\nconst T_END = T_BASE + T_COUNT - 1;\nconst DOTTED_CIRCLE = 0x25cc;\n\nconst isL = code => 0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\nconst isV = code => 0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\nconst isT = code => 0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\nconst isTone = code => 0x302e <= code && code <= 0x302f;\nconst isLVT = code => HANGUL_BASE <= code && code <= HANGUL_END;\nconst isLV = code => (code - HANGUL_BASE) < HANGUL_COUNT && (code - HANGUL_BASE) % T_COUNT === 0;\nconst isCombiningL = code => L_BASE <= code && code <= L_END;\nconst isCombiningV = code => V_BASE <= code && code <= V_END;\nconst isCombiningT = code => T_BASE + 1 && 1 <= code && code <= T_END;\n\n// Character categories\nconst X = 0; // Other character\nconst L = 1; // Leading consonant\nconst V = 2; // Medial vowel\nconst T = 3; // Trailing consonant\nconst LV = 4; // Composed syllable\nconst LVT = 5; // Composed syllable\nconst M = 6; // Tone mark\n\n// This function classifies a character using the above categories.\nfunction getType(code) {\n if (isL(code)) { return L; }\n if (isV(code)) { return V; }\n if (isT(code)) { return T; }\n if (isLV(code)) { return LV; }\n if (isLVT(code)) { return LVT; }\n if (isTone(code)) { return M; }\n return X;\n}\n\n// State machine actions\nconst NO_ACTION = 0;\nconst DECOMPOSE = 1;\nconst COMPOSE = 2;\nconst TONE_MARK = 4;\nconst INVALID = 5;\n\n// Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\nconst STATE_TABLE = [\n // X L V T LV LVT M\n // State 0: start state\n [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ INVALID, 0 ] ],\n\n // State 1: \n [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ COMPOSE, 2 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ INVALID, 0 ] ],\n\n // State 2: or \n [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ COMPOSE, 3 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ TONE_MARK, 0 ] ],\n\n // State 3: or \n [ [ NO_ACTION, 0 ], [ NO_ACTION, 1 ], [ NO_ACTION, 0 ], [ NO_ACTION, 0 ], [ DECOMPOSE, 2 ], [ DECOMPOSE, 3 ], [ TONE_MARK, 0 ] ]\n];\n\nfunction getGlyph(font, code, features) {\n return new GlyphInfo(font, font.glyphForCodePoint(code).id, [code], features);\n}\n\nfunction decompose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n\n let s = code - HANGUL_BASE;\n let t = T_BASE + s % T_COUNT;\n s = s / T_COUNT | 0;\n let l = L_BASE + s / V_COUNT | 0;\n let v = V_BASE + s % V_COUNT;\n\n // Don't decompose if all of the components are not available\n if (!font.hasGlyphForCodePoint(l) ||\n !font.hasGlyphForCodePoint(v) ||\n (t !== T_BASE && !font.hasGlyphForCodePoint(t))) {\n return i;\n }\n\n // Replace the current glyph with decomposed L, V, and T glyphs,\n // and apply the proper OpenType features to each component.\n let ljmo = getGlyph(font, l, glyph.features);\n ljmo.features.ljmo = true;\n\n let vjmo = getGlyph(font, v, glyph.features);\n vjmo.features.vjmo = true;\n\n let insert = [ ljmo, vjmo ];\n\n if (t > T_BASE) {\n let tjmo = getGlyph(font, t, glyph.features);\n tjmo.features.tjmo = true;\n insert.push(tjmo);\n }\n\n glyphs.splice(i, 1, ...insert);\n return i + insert.length - 1;\n}\n\nfunction compose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n let type = getType(code);\n\n let prev = glyphs[i - 1].codePoints[0];\n let prevType = getType(prev);\n\n // Figure out what type of syllable we're dealing with\n let lv, ljmo, vjmo, tjmo;\n if (prevType === LV && type === T) {\n // \n lv = prev;\n tjmo = glyph;\n } else {\n if (type === V) {\n // \n ljmo = glyphs[i - 1];\n vjmo = glyph;\n } else {\n // \n ljmo = glyphs[i - 2];\n vjmo = glyphs[i - 1];\n tjmo = glyph;\n }\n\n let l = ljmo.codePoints[0];\n let v = vjmo.codePoints[0];\n\n // Make sure L and V are combining characters\n if (isCombiningL(l) && isCombiningV(v)) {\n lv = HANGUL_BASE + ((l - L_BASE) * V_COUNT + (v - V_BASE)) * T_COUNT;\n }\n }\n\n let t = (tjmo && tjmo.codePoints[0]) || T_BASE;\n if ((lv != null) && (t === T_BASE || isCombiningT(t))) {\n let s = lv + (t - T_BASE);\n\n // Replace with a composed glyph if supported by the font,\n // otherwise apply the proper OpenType features to each component.\n if (font.hasGlyphForCodePoint(s)) {\n let del = prevType === V ? 3 : 2;\n glyphs.splice(i - del + 1, del, getGlyph(font, s, glyph.features));\n return i - del + 1;\n }\n }\n\n // Didn't compose (either a non-combining component or unsupported by font).\n if (ljmo) { ljmo.features.ljmo = true; }\n if (vjmo) { vjmo.features.vjmo = true; }\n if (tjmo) { tjmo.features.tjmo = true; }\n\n if (prevType === LV) {\n // Sequence was originally , which got combined earlier.\n // Either the T was non-combining, or the LVT glyph wasn't supported.\n // Decompose the glyph again and apply OT features.\n decompose(glyphs, i - 1, font);\n return i + 1;\n }\n\n return i;\n}\n\nfunction getLength(code) {\n switch (getType(code)) {\n case LV:\n case LVT:\n return 1;\n case V:\n return 2;\n case T:\n return 3;\n }\n}\n\nfunction reorderToneMark(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n\n // Move tone mark to the beginning of the previous syllable, unless it is zero width\n if (font.glyphForCodePoint(code).advanceWidth === 0) { return; }\n\n let prev = glyphs[i - 1].codePoints[0];\n let len = getLength(prev);\n\n glyphs.splice(i, 1);\n return glyphs.splice(i - len, 0, glyph);\n}\n\nfunction insertDottedCircle(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n\n if (font.hasGlyphForCodePoint(DOTTED_CIRCLE)) {\n let dottedCircle = getGlyph(font, DOTTED_CIRCLE, glyph.features);\n\n // If the tone mark is zero width, insert the dotted circle before, otherwise after\n let idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n glyphs.splice(idx, 0, dottedCircle);\n i++;\n }\n\n return i;\n}\n","{\"stateTable\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],\"accepting\":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],\"tags\":[[],[\"broken_cluster\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"standalone_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"consonant_syllable\"],[\"broken_cluster\"],[\"symbol_cluster\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"symbol_cluster\"],[],[\"symbol_cluster\"],[\"symbol_cluster\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"symbol_cluster\"],[\"symbol_cluster\"],[\"symbol_cluster\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[\"broken_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"broken_cluster\"],[\"symbol_cluster\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[],[],[\"broken_cluster\"],[],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[],[],[\"consonant_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[],[],[\"vowel_syllable\"],[],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[],[\"standalone_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[],[],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[],[],[],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[],[],[\"consonant_syllable\",\"broken_cluster\"],[\"consonant_syllable\",\"broken_cluster\"],[],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[],[],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"consonant_syllable\"],[],[\"consonant_syllable\"],[\"consonant_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"vowel_syllable\"],[],[\"vowel_syllable\"],[\"vowel_syllable\"],[\"broken_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"standalone_cluster\"],[\"standalone_cluster\"],[],[\"consonant_syllable\"],[\"vowel_syllable\"],[\"standalone_cluster\"]]}","{\"categories\":[\"O\",\"IND\",\"S\",\"GB\",\"B\",\"FM\",\"CGJ\",\"VMAbv\",\"VMPst\",\"VAbv\",\"VPst\",\"CMBlw\",\"VPre\",\"VBlw\",\"H\",\"VMBlw\",\"CMAbv\",\"MBlw\",\"CS\",\"R\",\"SUB\",\"MPst\",\"MPre\",\"FAbv\",\"FPst\",\"FBlw\",\"null\",\"SMAbv\",\"SMBlw\",\"VMPre\",\"ZWNJ\",\"ZWJ\",\"WJ\",\"M\",\"VS\",\"N\",\"HN\",\"MAbv\"],\"decompositions\":{\"2507\":[2503,2494],\"2508\":[2503,2519],\"2888\":[2887,2902],\"2891\":[2887,2878],\"2892\":[2887,2903],\"3018\":[3014,3006],\"3019\":[3015,3006],\"3020\":[3014,3031],\"3144\":[3142,3158],\"3264\":[3263,3285],\"3271\":[3270,3285],\"3272\":[3270,3286],\"3274\":[3270,3266],\"3275\":[3270,3266,3285],\"3402\":[3398,3390],\"3403\":[3399,3390],\"3404\":[3398,3415],\"3546\":[3545,3530],\"3548\":[3545,3535],\"3549\":[3545,3535,3530],\"3550\":[3545,3551],\"3635\":[3661,3634],\"3763\":[3789,3762],\"3955\":[3953,3954],\"3957\":[3953,3956],\"3958\":[4018,3968],\"3959\":[4018,3953,3968],\"3960\":[4019,3968],\"3961\":[4019,3953,3968],\"3969\":[3953,3968],\"6971\":[6970,6965],\"6973\":[6972,6965],\"6976\":[6974,6965],\"6977\":[6975,6965],\"6979\":[6978,6965],\"69934\":[69937,69927],\"69935\":[69938,69927],\"70475\":[70471,70462],\"70476\":[70471,70487],\"70843\":[70841,70842],\"70844\":[70841,70832],\"70846\":[70841,70845],\"71098\":[71096,71087],\"71099\":[71097,71087]},\"stateTable\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],\"accepting\":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\"tags\":[[],[\"broken_cluster\"],[\"independent_cluster\"],[\"symbol_cluster\"],[\"standard_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"numeral_cluster\"],[\"broken_cluster\"],[\"independent_cluster\"],[\"symbol_cluster\"],[\"symbol_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"virama_terminated_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"broken_cluster\"],[\"broken_cluster\"],[\"numeral_cluster\"],[\"number_joiner_terminated_cluster\"],[\"standard_cluster\"],[\"standard_cluster\"],[\"numeral_cluster\"]]}","// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nexport const CATEGORIES = {\n X: 1 << 0,\n C: 1 << 1,\n V: 1 << 2,\n N: 1 << 3,\n H: 1 << 4,\n ZWNJ: 1 << 5,\n ZWJ: 1 << 6,\n M: 1 << 7,\n SM: 1 << 8,\n VD: 1 << 9,\n A: 1 << 10,\n Placeholder: 1 << 11,\n Dotted_Circle: 1 << 12,\n RS: 1 << 13, // Register Shifter, used in Khmer OT spec.\n Coeng: 1 << 14, // Khmer-style Virama.\n Repha: 1 << 15, // Atomically-encoded logical or visual repha.\n Ra: 1 << 16,\n CM: 1 << 17, // Consonant-Medial.\n Symbol: 1 << 18 // Avagraha, etc that take marks (SM,A,VD).\n};\n\n// Visual positions in a syllable from left to right.\nexport const POSITIONS = {\n Start: 1 << 0,\n\n Ra_To_Become_Reph: 1 << 1,\n Pre_M: 1 << 2,\n Pre_C: 1 << 3,\n\n Base_C: 1 << 4,\n After_Main: 1 << 5,\n\n Above_C: 1 << 6,\n\n Before_Sub: 1 << 7,\n Below_C: 1 << 8,\n After_Sub: 1 << 9,\n\n Before_Post: 1 << 10,\n Post_C: 1 << 11,\n After_Post: 1 << 12,\n\n Final_C: 1 << 13,\n SMVD: 1 << 14,\n\n End: 1 << 15\n};\n\nexport const CONSONANT_FLAGS = CATEGORIES.C | CATEGORIES.Ra | CATEGORIES.CM | CATEGORIES.V | CATEGORIES.Placeholder | CATEGORIES.Dotted_Circle;\nexport const JOINER_FLAGS = CATEGORIES.ZWJ | CATEGORIES.ZWNJ;\nexport const HALANT_OR_COENG_FLAGS = CATEGORIES.H | CATEGORIES.Coeng;\n\nexport const INDIC_CONFIGS = {\n Default: {\n hasOldSpec: false,\n virama: 0,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Devanagari: {\n hasOldSpec: true,\n virama: 0x094D,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Bengali: {\n hasOldSpec: true,\n virama: 0x09CD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Gurmukhi: {\n hasOldSpec: true,\n virama: 0x0A4D,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Gujarati: {\n hasOldSpec: true,\n virama: 0x0ACD,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Oriya: {\n hasOldSpec: true,\n virama: 0x0B4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Main,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Tamil: {\n hasOldSpec: true,\n virama: 0x0BCD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n\n Telugu: {\n hasOldSpec: true,\n virama: 0x0C4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Explicit',\n blwfMode: 'Post_Only'\n },\n\n Kannada: {\n hasOldSpec: true,\n virama: 0x0CCD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Post_Only'\n },\n\n Malayalam: {\n hasOldSpec: true,\n virama: 0x0D4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Main,\n rephMode: 'Log_Repha',\n blwfMode: 'Pre_And_Post'\n },\n\n // Handled by UniversalShaper\n // Sinhala: {\n // hasOldSpec: false,\n // virama: 0x0DCA,\n // basePos: 'Last_Sinhala',\n // rephPos: POSITIONS.After_Main,\n // rephMode: 'Explicit',\n // blwfMode: 'Pre_And_Post'\n // },\n\n Khmer: {\n hasOldSpec: false,\n virama: 0x17D2,\n basePos: 'First',\n rephPos: POSITIONS.Ra_To_Become_Reph,\n rephMode: 'Vis_Repha',\n blwfMode: 'Pre_And_Post'\n }\n};\n\n// Additional decompositions that aren't in Unicode\nexport const INDIC_DECOMPOSITIONS = {\n // Khmer\n 0x17BE: [0x17C1, 0x17BE],\n 0x17BF: [0x17C1, 0x17BF],\n 0x17C0: [0x17C1, 0x17C0],\n 0x17C4: [0x17C1, 0x17C4],\n 0x17C5: [0x17C1, 0x17C5]\n};\n","import DefaultShaper from './DefaultShaper';\nimport StateMachine from 'dfa';\nimport UnicodeTrie from 'unicode-trie';\nimport {getCategory} from 'unicode-properties';\nimport * as Script from '../../layout/Script';\nimport GlyphInfo from '../GlyphInfo';\nimport indicMachine from './indic.json';\nimport useData from './use.json';\nimport {\n CATEGORIES,\n POSITIONS,\n CONSONANT_FLAGS,\n JOINER_FLAGS,\n HALANT_OR_COENG_FLAGS, INDIC_CONFIGS,\n INDIC_DECOMPOSITIONS\n} from './indic-data';\nimport { decodeBase64 } from '../../utils';\n\nconst {decompositions} = useData;\nconst trie = new UnicodeTrie(decodeBase64(require('fs').readFileSync(__dirname + '/indic.trie', 'base64')));\nconst stateMachine = new StateMachine(indicMachine);\n\n/**\n * The IndicShaper supports indic scripts e.g. Devanagari, Kannada, etc.\n * Based on code from Harfbuzz: https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-indic.cc\n */\nexport default class IndicShaper extends DefaultShaper {\n static zeroMarkWidths = 'NONE';\n static planFeatures(plan) {\n plan.addStage(setupSyllables);\n\n plan.addStage(['locl', 'ccmp']);\n\n plan.addStage(initialReordering);\n\n plan.addStage('nukt');\n plan.addStage('akhn');\n plan.addStage('rphf', false);\n plan.addStage('rkrf');\n plan.addStage('pref', false);\n plan.addStage('blwf', false);\n plan.addStage('abvf', false);\n plan.addStage('half', false);\n plan.addStage('pstf', false);\n plan.addStage('vatu');\n plan.addStage('cjct');\n plan.addStage('cfar', false);\n\n plan.addStage(finalReordering);\n\n plan.addStage({\n local: ['init'],\n global: ['pres', 'abvs', 'blws', 'psts', 'haln', 'dist', 'abvm', 'blwm', 'calt', 'clig']\n });\n\n // Setup the indic config for the selected script\n plan.unicodeScript = Script.fromOpenType(plan.script);\n plan.indicConfig = INDIC_CONFIGS[plan.unicodeScript] || INDIC_CONFIGS.Default;\n plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2';\n\n // TODO: turn off kern (Khmer) and liga features.\n }\n\n static assignFeatures(plan, glyphs) {\n // Decompose split matras\n // TODO: do this in a more general unicode normalizer\n for (let i = glyphs.length - 1; i >= 0; i--) {\n let codepoint = glyphs[i].codePoints[0];\n let d = INDIC_DECOMPOSITIONS[codepoint] || decompositions[codepoint];\n if (d) {\n let decomposed = d.map(c => {\n let g = plan.font.glyphForCodePoint(c);\n return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n });\n\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n\nfunction indicCategory(glyph) {\n return trie.get(glyph.codePoints[0]) >> 8;\n}\n\nfunction indicPosition(glyph) {\n return 1 << (trie.get(glyph.codePoints[0]) & 0xff);\n}\n\nclass IndicInfo {\n constructor(category, position, syllableType, syllable) {\n this.category = category;\n this.position = position;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\n\nfunction setupSyllables(font, glyphs) {\n let syllable = 0;\n let last = 0;\n for (let [start, end, tags] of stateMachine.match(glyphs.map(indicCategory))) {\n if (start > last) {\n ++syllable;\n for (let i = last; i < start; i++) {\n glyphs[i].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n }\n }\n\n ++syllable;\n\n // Create shaper info\n for (let i = start; i <= end; i++) {\n glyphs[i].shaperInfo = new IndicInfo(\n 1 << indicCategory(glyphs[i]),\n indicPosition(glyphs[i]),\n tags[0],\n syllable\n );\n }\n\n last = end + 1;\n }\n\n if (last < glyphs.length) {\n ++syllable;\n for (let i = last; i < glyphs.length; i++) {\n glyphs[i].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n }\n }\n}\n\nfunction isConsonant(glyph) {\n return glyph.shaperInfo.category & CONSONANT_FLAGS;\n}\n\nfunction isJoiner(glyph) {\n return glyph.shaperInfo.category & JOINER_FLAGS;\n}\n\nfunction isHalantOrCoeng(glyph) {\n return glyph.shaperInfo.category & HALANT_OR_COENG_FLAGS;\n}\n\nfunction wouldSubstitute(glyphs, feature) {\n for (let glyph of glyphs) {\n glyph.features = {[feature]: true};\n }\n\n let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n GSUB.applyFeatures([feature], glyphs);\n\n return glyphs.length === 1;\n}\n\nfunction consonantPosition(font, consonant, virama) {\n let glyphs = [virama, consonant, virama];\n if (wouldSubstitute(glyphs.slice(0, 2), 'blwf') || wouldSubstitute(glyphs.slice(1, 3), 'blwf')) {\n return POSITIONS.Below_C;\n } else if (wouldSubstitute(glyphs.slice(0, 2), 'pstf') || wouldSubstitute(glyphs.slice(1, 3), 'pstf')) {\n return POSITIONS.Post_C;\n } else if (wouldSubstitute(glyphs.slice(0, 2), 'pref') || wouldSubstitute(glyphs.slice(1, 3), 'pref')) {\n return POSITIONS.Post_C;\n }\n\n return POSITIONS.Base_C;\n}\n\nfunction initialReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n let virama = font.glyphForCodePoint(indicConfig.virama).id;\n if (virama) {\n let info = new GlyphInfo(font, virama, [indicConfig.virama]);\n for (let i = 0; i < glyphs.length; i++) {\n if (glyphs[i].shaperInfo.position === POSITIONS.Base_C) {\n glyphs[i].shaperInfo.position = consonantPosition(font, glyphs[i].copy(), info);\n }\n }\n }\n\n for (let start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n let {category, syllableType} = glyphs[start].shaperInfo;\n\n if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') {\n continue;\n }\n\n if (syllableType === 'broken_cluster' && dottedCircle) {\n let g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n g.shaperInfo = new IndicInfo(\n 1 << indicCategory(g),\n indicPosition(g),\n glyphs[start].shaperInfo.syllableType,\n glyphs[start].shaperInfo.syllable\n );\n\n // Insert after possible Repha.\n let i = start;\n while (i < end && glyphs[i].shaperInfo.category === CATEGORIES.Repha) {\n i++;\n }\n\n glyphs.splice(i++, 0, g);\n end++;\n }\n\n // 1. Find base consonant:\n //\n // The shaping engine finds the base consonant of the syllable, using the\n // following algorithm: starting from the end of the syllable, move backwards\n // until a consonant is found that does not have a below-base or post-base\n // form (post-base forms have to follow below-base forms), or that is not a\n // pre-base reordering Ra, or arrive at the first consonant. The consonant\n // stopped at will be the base.\n\n let base = end;\n let limit = start;\n let hasReph = false;\n\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n if (indicConfig.rephPos !== POSITIONS.Ra_To_Become_Reph &&\n features.rphf &&\n start + 3 <= end && (\n (indicConfig.rephMode === 'Implicit' && !isJoiner(glyphs[start + 2])) ||\n (indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === CATEGORIES.ZWJ)\n )\n ) {\n // See if it matches the 'rphf' feature.\n let g = [glyphs[start].copy(), glyphs[start + 1].copy(), glyphs[start + 2].copy()];\n if (wouldSubstitute(g.slice(0, 2), 'rphf') || (indicConfig.rephMode === 'Explicit' && wouldSubstitute(g, 'rphf'))) {\n limit += 2;\n while (limit < end && isJoiner(glyphs[limit])) {\n limit++;\n }\n base = start;\n hasReph = true;\n }\n } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === CATEGORIES.Repha) {\n limit++;\n while (limit < end && isJoiner(glyphs[limit])) {\n limit++;\n }\n base = start;\n hasReph = true;\n }\n\n switch (indicConfig.basePos) {\n case 'Last': {\n // starting from the end of the syllable, move backwards\n let i = end;\n let seenBelow = false;\n\n do {\n let info = glyphs[--i].shaperInfo;\n\n // until a consonant is found\n if (isConsonant(glyphs[i])) {\n // that does not have a below-base or post-base form\n // (post-base forms have to follow below-base forms),\n if (info.position !== POSITIONS.Below_C && (info.position !== POSITIONS.Post_C || seenBelow)) {\n base = i;\n break;\n }\n\n // or that is not a pre-base reordering Ra,\n //\n // IMPLEMENTATION NOTES:\n //\n // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n // by the logic above already.\n //\n\n // or arrive at the first consonant. The consonant stopped at will\n // be the base.\n if (info.position === POSITIONS.Below_C) {\n seenBelow = true;\n }\n\n base = i;\n } else if (start < i && info.category === CATEGORIES.ZWJ && glyphs[i - 1].shaperInfo.category === CATEGORIES.H) {\n // A ZWJ after a Halant stops the base search, and requests an explicit\n // half form.\n // A ZWJ before a Halant, requests a subjoined form instead, and hence\n // search continues. This is particularly important for Bengali\n // sequence Ra,H,Ya that should form Ya-Phalaa by subjoining Ya.\n break;\n }\n } while (i > limit);\n break;\n }\n\n case 'First': {\n // The first consonant is always the base.\n base = start;\n\n // Mark all subsequent consonants as below.\n for (let i = base + 1; i < end; i++) {\n if (isConsonant(glyphs[i])) {\n glyphs[i].shaperInfo.position = POSITIONS.Below_C;\n }\n }\n }\n }\n\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n //\n // Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n if (hasReph && base === start && limit - base <= 2) {\n hasReph = false;\n }\n\n // 2. Decompose and reorder Matras:\n //\n // Each matra and any syllable modifier sign in the cluster are moved to the\n // appropriate position relative to the consonant(s) in the cluster. The\n // shaping engine decomposes two- or three-part matras into their constituent\n // parts before any repositioning. Matra characters are classified by which\n // consonant in a conjunct they have affinity for and are reordered to the\n // following positions:\n //\n // o Before first half form in the syllable\n // o After subjoined consonants\n // o After post-form consonant\n // o After main consonant (for above marks)\n //\n // IMPLEMENTATION NOTES:\n //\n // The normalize() routine has already decomposed matras for us, so we don't\n // need to worry about that.\n\n // 3. Reorder marks to canonical order:\n //\n // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n // if necessary, so that the nukta is first.\n //\n // IMPLEMENTATION NOTES:\n //\n // We don't need to do this: the normalize() routine already did this for us.\n\n // Reorder characters\n\n for (let i = start; i < base; i++) {\n let info = glyphs[i].shaperInfo;\n info.position = Math.min(POSITIONS.Pre_C, info.position);\n }\n\n if (base < end) {\n glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n }\n\n // Mark final consonants. A final consonant is one appearing after a matra,\n // like in Khmer.\n for (let i = base + 1; i < end; i++) {\n if (glyphs[i].shaperInfo.category === CATEGORIES.M) {\n for (let j = i + 1; j < end; j++) {\n if (isConsonant(glyphs[j])) {\n glyphs[j].shaperInfo.position = POSITIONS.Final_C;\n break;\n }\n }\n break;\n }\n }\n\n // Handle beginning Ra\n if (hasReph) {\n glyphs[start].shaperInfo.position = POSITIONS.Ra_To_Become_Reph;\n }\n\n // For old-style Indic script tags, move the first post-base Halant after\n // last consonant.\n //\n // Reports suggest that in some scripts Uniscribe does this only if there\n // is *not* a Halant after last consonant already (eg. Kannada), while it\n // does it unconditionally in other scripts (eg. Malayalam). We don't\n // currently know about other scripts, so we single out Malayalam for now.\n //\n // Kannada test case:\n // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n // With some versions of Lohit Kannada.\n // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n //\n // Malayalam test case:\n // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n if (plan.isOldSpec) {\n let disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n for (let i = base + 1; i < end; i++) {\n if (glyphs[i].shaperInfo.category === CATEGORIES.H) {\n let j;\n for (j = end - 1; j > i; j--) {\n if (isConsonant(glyphs[j]) || (disallowDoubleHalants && glyphs[j].shaperInfo.category === CATEGORIES.H)) {\n break;\n }\n }\n\n if (glyphs[j].shaperInfo.category !== CATEGORIES.H && j > i) {\n // Move Halant to after last consonant.\n let t = glyphs[i];\n glyphs.splice(i, 0, ...glyphs.splice(i + 1, j - i));\n glyphs[j] = t;\n }\n\n break;\n }\n }\n }\n\n // Attach misc marks to previous char to move with them.\n let lastPos = POSITIONS.Start;\n for (let i = start; i < end; i++) {\n let info = glyphs[i].shaperInfo;\n if (info.category & (JOINER_FLAGS | CATEGORIES.N | CATEGORIES.RS | CATEGORIES.CM | HALANT_OR_COENG_FLAGS & info.category)) {\n info.position = lastPos;\n if (info.category === CATEGORIES.H && info.position === POSITIONS.Pre_M) {\n // Uniscribe doesn't move the Halant with Left Matra.\n // TEST: U+092B,U+093F,U+094DE\n // We follow. This is important for the Sinhala\n // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n // where U+0DD9 is a left matra and U+0DCA is the virama.\n // We don't want to move the virama with the left matra.\n // TEST: U+0D9A,U+0DDA\n for (let j = i; j > start; j--) {\n if (glyphs[j - 1].shaperInfo.position !== POSITIONS.Pre_M) {\n info.position = glyphs[j - 1].shaperInfo.position;\n break;\n }\n }\n }\n } else if (info.position !== POSITIONS.SMVD) {\n lastPos = info.position;\n }\n }\n\n // For post-base consonants let them own anything before them\n // since the last consonant or matra.\n let last = base;\n for (let i = base + 1; i < end; i++) {\n if (isConsonant(glyphs[i])) {\n for (let j = last + 1; j < i; j++) {\n if (glyphs[j].shaperInfo.position < POSITIONS.SMVD) {\n glyphs[j].shaperInfo.position = glyphs[i].shaperInfo.position;\n }\n }\n last = i;\n } else if (glyphs[i].shaperInfo.category === CATEGORIES.M) {\n last = i;\n }\n }\n\n let arr = glyphs.slice(start, end);\n arr.sort((a, b) => a.shaperInfo.position - b.shaperInfo.position);\n glyphs.splice(start, arr.length, ...arr);\n\n // Find base again\n for (let i = start; i < end; i++) {\n if (glyphs[i].shaperInfo.position === POSITIONS.Base_C) {\n base = i;\n break;\n }\n }\n\n // Setup features now\n\n // Reph\n for (let i = start; i < end && glyphs[i].shaperInfo.position === POSITIONS.Ra_To_Become_Reph; i++) {\n glyphs[i].features.rphf = true;\n }\n\n // Pre-base\n let blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n for (let i = start; i < base; i++) {\n glyphs[i].features.half = true;\n if (blwf) {\n glyphs[i].features.blwf = true;\n }\n }\n\n // Post-base\n for (let i = base + 1; i < end; i++) {\n glyphs[i].features.abvf = true;\n glyphs[i].features.pstf = true;\n glyphs[i].features.blwf = true;\n }\n\n if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n // Old-spec eye-lash Ra needs special handling. From the\n // spec:\n //\n // \"The feature 'below-base form' is applied to consonants\n // having below-base forms and following the base consonant.\n // The exception is vattu, which may appear below half forms\n // as well as below the base glyph. The feature 'below-base\n // form' will be applied to all such occurrences of Ra as well.\"\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n // with Sanskrit 2003 font.\n //\n // However, note that Ra,Halant,ZWJ is the correct way to\n // request eyelash form of Ra, so we wouldbn't inhibit it\n // in that sequence.\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n for (let i = start; i + 1 < base; i++) {\n if (glyphs[i].shaperInfo.category === CATEGORIES.Ra &&\n glyphs[i + 1].shaperInfo.category === CATEGORIES.H &&\n (i + 1 === base || glyphs[i + 2].shaperInfo.category === CATEGORIES.ZWJ)\n ) {\n glyphs[i].features.blwf = true;\n glyphs[i + 1].features.blwf = true;\n }\n }\n }\n\n let prefLen = 2;\n if (features.pref && base + prefLen < end) {\n // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n for (let i = base + 1; i + prefLen - 1 < end; i++) {\n let g = [glyphs[i].copy(), glyphs[i + 1].copy()];\n if (wouldSubstitute(g, 'pref')) {\n for (let j = 0; j < prefLen; j++) {\n glyphs[i++].features.pref = true;\n }\n\n // Mark the subsequent stuff with 'cfar'. Used in Khmer.\n // Read the feature spec.\n // This allows distinguishing the following cases with MS Khmer fonts:\n // U+1784,U+17D2,U+179A,U+17D2,U+1782\n // U+1784,U+17D2,U+1782,U+17D2,U+179A\n if (features.cfar) {\n for (; i < end; i++) {\n glyphs[i].features.cfar = true;\n }\n }\n\n break;\n }\n }\n }\n\n // Apply ZWJ/ZWNJ effects\n for (let i = start + 1; i < end; i++) {\n if (isJoiner(glyphs[i])) {\n let nonJoiner = glyphs[i].shaperInfo.category === CATEGORIES.ZWNJ;\n let j = i;\n\n do {\n j--;\n\n // ZWJ/ZWNJ should disable CJCT. They do that by simply\n // being there, since we don't skip them for the CJCT\n // feature (ie. F_MANUAL_ZWJ)\n\n // A ZWNJ disables HALF.\n if (nonJoiner) {\n delete glyphs[j].features.half;\n }\n } while (j > start && !isConsonant(glyphs[j]));\n }\n }\n }\n}\n\nfunction finalReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n\n for (let start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n // 4. Final reordering:\n //\n // After the localized forms and basic shaping forms GSUB features have been\n // applied (see below), the shaping engine performs some final glyph\n // reordering before applying all the remaining font features to the entire\n // cluster.\n\n let tryPref = !!features.pref;\n\n // Find base again\n let base = start;\n for (; base < end; base++) {\n if (glyphs[base].shaperInfo.position >= POSITIONS.Base_C) {\n if (tryPref && base + 1 < end) {\n for (let i = base + 1; i < end; i++) {\n if (glyphs[i].features.pref) {\n if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n // Ok, this was a 'pref' candidate but didn't form any.\n // Base is around here...\n base = i;\n while (base < end && isHalantOrCoeng(glyphs[base])) {\n base++;\n }\n glyphs[base].shaperInfo.position = POSITIONS.BASE_C;\n tryPref = false;\n }\n break;\n }\n }\n }\n\n // For Malayalam, skip over unformed below- (but NOT post-) forms.\n if (plan.unicodeScript === 'Malayalam') {\n for (let i = base + 1; i < end; i++) {\n while (i < end && isJoiner(glyphs[i])) {\n i++;\n }\n\n if (i === end || !isHalantOrCoeng(glyphs[i])) {\n break;\n }\n\n i++; // Skip halant.\n while (i < end && isJoiner(glyphs[i])) {\n i++;\n }\n\n if (i < end && isConsonant(glyphs[i]) && glyphs[i].shaperInfo.position === POSITIONS.Below_C) {\n base = i;\n glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n }\n }\n }\n\n if (start < base && glyphs[base].shaperInfo.position > POSITIONS.Base_C) {\n base--;\n }\n break;\n }\n }\n\n if (base === end && start < base && glyphs[base - 1].shaperInfo.category === CATEGORIES.ZWJ) {\n base--;\n }\n\n if (base < end) {\n while (start < base && glyphs[base].shaperInfo.category & (CATEGORIES.N | HALANT_OR_COENG_FLAGS)) {\n base--;\n }\n }\n\n // o Reorder matras:\n //\n // If a pre-base matra character had been reordered before applying basic\n // features, the glyph can be moved closer to the main consonant based on\n // whether half-forms had been formed. Actual position for the matra is\n // defined as “after last standalone halant glyph, after initial matra\n // position and before the main consonant”. If ZWJ or ZWNJ follow this\n // halant, position is moved after it.\n //\n\n if (start + 1 < end && start < base) { // Otherwise there can't be any pre-base matra characters.\n // If we lost track of base, alas, position before last thingy.\n let newPos = base === end ? base - 2 : base - 1;\n\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while (newPos > start && !(glyphs[newPos].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n newPos--;\n }\n\n // If we found no Halant we are done.\n // Otherwise only proceed if the Halant does\n // not belong to the Matra itself!\n if (isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n // If ZWJ or ZWNJ follow this halant, position is moved after it.\n if (newPos + 1 < end && isJoiner(glyphs[newPos + 1])) {\n newPos++;\n }\n } else {\n newPos = start; // No move.\n }\n }\n\n if (start < newPos && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n // Now go see if there's actually any matras...\n for (let i = newPos; i > start; i--) {\n if (glyphs[i - 1].shaperInfo.position === POSITIONS.Pre_M) {\n let oldPos = i - 1;\n if (oldPos < base && base <= newPos) { // Shouldn't actually happen.\n base--;\n }\n\n let tmp = glyphs[oldPos];\n glyphs.splice(oldPos, 0, ...glyphs.splice(oldPos + 1, newPos - oldPos));\n glyphs[newPos] = tmp;\n\n newPos--;\n }\n }\n }\n }\n\n // o Reorder reph:\n //\n // Reph’s original position is always at the beginning of the syllable,\n // (i.e. it is not reordered at the character reordering stage). However,\n // it will be reordered according to the basic-forms shaping results.\n // Possible positions for reph, depending on the script, are; after main,\n // before post-base consonant forms, and after post-base consonant forms.\n\n // Two cases:\n //\n // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n // we should only move it if the sequence ligated to the repha form.\n //\n // - If repha is encoded separately and in the logical position, we should only\n // move it if it did NOT ligate. If it ligated, it's probably the font trying\n // to make it work without the reordering.\n if (start + 1 < end &&\n glyphs[start].shaperInfo.position === POSITIONS.Ra_To_Become_Reph &&\n (glyphs[start].shaperInfo.category === CATEGORIES.Repha) !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)\n ) {\n let newRephPos;\n let rephPos = indicConfig.rephPos;\n let found = false;\n\n // 1. If reph should be positioned after post-base consonant forms,\n // proceed to step 5.\n if (rephPos !== POSITIONS.After_Post) {\n // 2. If the reph repositioning class is not after post-base: target\n // position is after the first explicit halant glyph between the\n // first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n // are following this halant, position is moved after it. If such\n // position is found, this is the target position. Otherwise,\n // proceed to the next step.\n //\n // Note: in old-implementation fonts, where classifications were\n // fixed in shaping engine, there was no case where reph position\n // will be found on this step.\n newRephPos = start + 1;\n while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n newRephPos++;\n }\n\n if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n newRephPos++;\n }\n\n found = true;\n }\n\n // 3. If reph should be repositioned after the main consonant: find the\n // first consonant not ligated with main, or find the first\n // consonant that is not a potential pre-base reordering Ra.\n if (!found && rephPos === POSITIONS.After_Main) {\n newRephPos = base;\n while (newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= POSITIONS.After_Main) {\n newRephPos++;\n }\n\n found = newRephPos < end;\n }\n\n // 4. If reph should be positioned before post-base consonant, find\n // first post-base classified consonant not ligated with main. If no\n // consonant is found, the target position should be before the\n // first matra, syllable modifier sign or vedic sign.\n //\n // This is our take on what step 4 is trying to say (and failing, BADLY).\n if (!found && rephPos === POSITIONS.After_Sub) {\n newRephPos = base;\n while (newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & (POSITIONS.Post_C | POSITIONS.After_Post | POSITIONS.SMVD))) {\n newRephPos++;\n }\n\n found = newRephPos < end;\n }\n }\n\n // 5. If no consonant is found in steps 3 or 4, move reph to a position\n // immediately before the first post-base matra, syllable modifier\n // sign or vedic sign that has a reordering class after the intended\n // reph position. For example, if the reordering position for reph\n // is post-main, it will skip above-base matras that also have a\n // post-main position.\n if (!found) {\n // Copied from step 2.\n newRephPos = start + 1;\n while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n newRephPos++;\n }\n\n if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n newRephPos++;\n }\n\n found = true;\n }\n }\n\n // 6. Otherwise, reorder reph to the end of the syllable.\n if (!found) {\n newRephPos = end - 1;\n while (newRephPos > start && glyphs[newRephPos].shaperInfo.position === POSITIONS.SMVD) {\n newRephPos--;\n }\n\n // If the Reph is to be ending up after a Matra,Halant sequence,\n // position it before that Halant so it can interact with the Matra.\n // However, if it's a plain Consonant,Halant we shouldn't do that.\n // Uniscribe doesn't do this.\n // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n if (isHalantOrCoeng(glyphs[newRephPos])) {\n for (let i = base + 1; i < newRephPos; i++) {\n if (glyphs[i].shaperInfo.category === CATEGORIES.M) {\n newRephPos--;\n }\n }\n }\n }\n\n let reph = glyphs[start];\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, newRephPos - start));\n glyphs[newRephPos] = reph;\n\n if (start < base && base <= newRephPos) {\n base--;\n }\n }\n\n // o Reorder pre-base reordering consonants:\n //\n // If a pre-base reordering consonant is found, reorder it according to\n // the following rules:\n if (tryPref && base + 1 < end) {\n for (let i = base + 1; i < end; i++) {\n if (glyphs[i].features.pref) {\n // 1. Only reorder a glyph produced by substitution during application\n // of the feature. (Note that a font may shape a Ra consonant with\n // the feature generally but block it in certain contexts.)\n\n // Note: We just check that something got substituted. We don't check that\n // the feature actually did it...\n //\n // Reorder pref only if it ligated.\n if (glyphs[i].isLigated && !glyphs[i].isMultiplied) {\n // 2. Try to find a target position the same way as for pre-base matra.\n // If it is found, reorder pre-base consonant glyph.\n //\n // 3. If position is not found, reorder immediately before main\n // consonant.\n let newPos = base;\n\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while (newPos > start && !(glyphs[newPos - 1].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n newPos--;\n }\n\n // In Khmer coeng model, a H,Ra can go *after* matras. If it goes after a\n // split matra, it should be reordered to *before* the left part of such matra.\n if (newPos > start && glyphs[newPos - 1].shaperInfo.category === CATEGORIES.M) {\n let oldPos = i;\n for (let j = base + 1; j < oldPos; j++) {\n if (glyphs[j].shaperInfo.category === CATEGORIES.M) {\n newPos--;\n break;\n }\n }\n }\n }\n\n if (newPos > start && isHalantOrCoeng(glyphs[newPos - 1])) {\n // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n if (newPos < end && isJoiner(glyphs[newPos])) {\n newPos++;\n }\n }\n\n let oldPos = i;\n let tmp = glyphs[oldPos];\n glyphs.splice(newPos + 1, 0, ...glyphs.splice(newPos, oldPos - newPos));\n glyphs[newPos] = tmp;\n\n if (newPos <= base && base < oldPos) {\n base++;\n }\n }\n\n break;\n }\n }\n }\n\n // Apply 'init' to the Left Matra if it's a word start.\n if (glyphs[start].shaperInfo.position === POSITIONS.Pre_M && (!start || !/Cf|Mn/.test(getCategory(glyphs[start - 1].codePoints[0])))) {\n glyphs[start].features.init = true;\n }\n }\n}\n\nfunction nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\n","import DefaultShaper from './DefaultShaper';\nimport StateMachine from 'dfa';\nimport UnicodeTrie from 'unicode-trie';\nimport GlyphInfo from '../GlyphInfo';\nimport useData from './use.json';\nimport { decodeBase64 } from '../../utils';\n\nconst {categories, decompositions} = useData;\nconst trie = new UnicodeTrie(decodeBase64(require('fs').readFileSync(__dirname + '/use.trie', 'base64')));\nconst stateMachine = new StateMachine(useData);\n\n/**\n * This shaper is an implementation of the Universal Shaping Engine, which\n * uses Unicode data to shape a number of scripts without a dedicated shaping engine.\n * See https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm.\n */\nexport default class UniversalShaper extends DefaultShaper {\n static zeroMarkWidths = 'BEFORE_GPOS';\n static planFeatures(plan) {\n plan.addStage(setupSyllables);\n\n // Default glyph pre-processing group\n plan.addStage(['locl', 'ccmp', 'nukt', 'akhn']);\n\n // Reordering group\n plan.addStage(clearSubstitutionFlags);\n plan.addStage(['rphf'], false);\n plan.addStage(recordRphf);\n plan.addStage(clearSubstitutionFlags);\n plan.addStage(['pref']);\n plan.addStage(recordPref);\n\n // Orthographic unit shaping group\n plan.addStage(['rkrf', 'abvf', 'blwf', 'half', 'pstf', 'vatu', 'cjct']);\n plan.addStage(reorder);\n\n // Topographical features\n // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n\n // Standard topographic presentation and positional feature application\n plan.addStage(['abvs', 'blws', 'pres', 'psts', 'dist', 'abvm', 'blwm']);\n }\n\n static assignFeatures(plan, glyphs) {\n // Decompose split vowels\n // TODO: do this in a more general unicode normalizer\n for (let i = glyphs.length - 1; i >= 0; i--) {\n let codepoint = glyphs[i].codePoints[0];\n if (decompositions[codepoint]) {\n let decomposed = decompositions[codepoint].map(c => {\n let g = plan.font.glyphForCodePoint(c);\n return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n });\n\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n\nfunction useCategory(glyph) {\n return trie.get(glyph.codePoints[0]);\n}\n\nclass USEInfo {\n constructor(category, syllableType, syllable) {\n this.category = category;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\n\nfunction setupSyllables(font, glyphs) {\n let syllable = 0;\n for (let [start, end, tags] of stateMachine.match(glyphs.map(useCategory))) {\n ++syllable;\n\n // Create shaper info\n for (let i = start; i <= end; i++) {\n glyphs[i].shaperInfo = new USEInfo(categories[useCategory(glyphs[i])], tags[0], syllable);\n }\n\n // Assign rphf feature\n let limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n for (let i = start; i < start + limit; i++) {\n glyphs[i].features.rphf = true;\n }\n }\n}\n\nfunction clearSubstitutionFlags(font, glyphs) {\n for (let glyph of glyphs) {\n glyph.substituted = false;\n }\n}\n\nfunction recordRphf(font, glyphs) {\n for (let glyph of glyphs) {\n if (glyph.substituted && glyph.features.rphf) {\n // Mark a substituted repha.\n glyph.shaperInfo.category = 'R';\n }\n }\n}\n\nfunction recordPref(font, glyphs) {\n for (let glyph of glyphs) {\n if (glyph.substituted) {\n // Mark a substituted pref as VPre, as they behave the same way.\n glyph.shaperInfo.category = 'VPre';\n }\n }\n}\n\nfunction reorder(font, glyphs) {\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n\n for (let start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n let i, j;\n let info = glyphs[start].shaperInfo;\n let type = info.syllableType;\n\n // Only a few syllable types need reordering.\n if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') {\n continue;\n }\n\n // Insert a dotted circle glyph in broken clusters.\n if (type === 'broken_cluster' && dottedCircle) {\n let g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n g.shaperInfo = info;\n\n // Insert after possible Repha.\n for (i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++);\n glyphs.splice(++i, 0, g);\n end++;\n }\n\n // Move things forward.\n if (info.category === 'R' && end - start > 1) {\n // Got a repha. Reorder it to after first base, before first halant.\n for (i = start + 1; i < end; i++) {\n info = glyphs[i].shaperInfo;\n if (isBase(info) || isHalant(glyphs[i])) {\n // If we hit a halant, move before it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n if (isHalant(glyphs[i])) {\n i--;\n }\n\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, i - start), glyphs[i]);\n break;\n }\n }\n }\n\n // Move things back.\n for (i = start, j = end; i < end; i++) {\n info = glyphs[i].shaperInfo;\n if (isBase(info) || isHalant(glyphs[i])) {\n // If we hit a halant, move after it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n j = isHalant(glyphs[i]) ? i + 1 : i;\n } else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) {\n glyphs.splice(j, 1, glyphs[i], ...glyphs.splice(j, i - j));\n }\n }\n }\n}\n\nfunction nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\n\nfunction isHalant(glyph) {\n return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\n\nfunction isBase(info) {\n return info.category === 'B' || info.category === 'GB';\n}\n","import DefaultShaper from './DefaultShaper';\nimport ArabicShaper from './ArabicShaper';\nimport HangulShaper from './HangulShaper';\nimport IndicShaper from './IndicShaper';\nimport UniversalShaper from './UniversalShaper';\n\nconst SHAPERS = {\n arab: ArabicShaper, // Arabic\n mong: ArabicShaper, // Mongolian\n syrc: ArabicShaper, // Syriac\n 'nko ': ArabicShaper, // N'Ko\n phag: ArabicShaper, // Phags Pa\n mand: ArabicShaper, // Mandaic\n mani: ArabicShaper, // Manichaean\n phlp: ArabicShaper, // Psalter Pahlavi\n\n hang: HangulShaper, // Hangul\n\n bng2: IndicShaper, // Bengali\n beng: IndicShaper, // Bengali\n dev2: IndicShaper, // Devanagari\n deva: IndicShaper, // Devanagari\n gjr2: IndicShaper, // Gujarati\n gujr: IndicShaper, // Gujarati\n guru: IndicShaper, // Gurmukhi\n gur2: IndicShaper, // Gurmukhi\n knda: IndicShaper, // Kannada\n knd2: IndicShaper, // Kannada\n mlm2: IndicShaper, // Malayalam\n mlym: IndicShaper, // Malayalam\n ory2: IndicShaper, // Oriya\n orya: IndicShaper, // Oriya\n taml: IndicShaper, // Tamil\n tml2: IndicShaper, // Tamil\n telu: IndicShaper, // Telugu\n tel2: IndicShaper, // Telugu\n khmr: IndicShaper, // Khmer\n\n bali: UniversalShaper, // Balinese\n batk: UniversalShaper, // Batak\n brah: UniversalShaper, // Brahmi\n bugi: UniversalShaper, // Buginese\n buhd: UniversalShaper, // Buhid\n cakm: UniversalShaper, // Chakma\n cham: UniversalShaper, // Cham\n dupl: UniversalShaper, // Duployan\n egyp: UniversalShaper, // Egyptian Hieroglyphs\n gran: UniversalShaper, // Grantha\n hano: UniversalShaper, // Hanunoo\n java: UniversalShaper, // Javanese\n kthi: UniversalShaper, // Kaithi\n kali: UniversalShaper, // Kayah Li\n khar: UniversalShaper, // Kharoshthi\n khoj: UniversalShaper, // Khojki\n sind: UniversalShaper, // Khudawadi\n lepc: UniversalShaper, // Lepcha\n limb: UniversalShaper, // Limbu\n mahj: UniversalShaper, // Mahajani\n // mand: UniversalShaper, // Mandaic\n // mani: UniversalShaper, // Manichaean\n mtei: UniversalShaper, // Meitei Mayek\n modi: UniversalShaper, // Modi\n // mong: UniversalShaper, // Mongolian\n // 'nko ': UniversalShaper, // N’Ko\n hmng: UniversalShaper, // Pahawh Hmong\n // phag: UniversalShaper, // Phags-pa\n // phlp: UniversalShaper, // Psalter Pahlavi\n rjng: UniversalShaper, // Rejang\n saur: UniversalShaper, // Saurashtra\n shrd: UniversalShaper, // Sharada\n sidd: UniversalShaper, // Siddham\n sinh: IndicShaper, // Sinhala\n sund: UniversalShaper, // Sundanese\n sylo: UniversalShaper, // Syloti Nagri\n tglg: UniversalShaper, // Tagalog\n tagb: UniversalShaper, // Tagbanwa\n tale: UniversalShaper, // Tai Le\n lana: UniversalShaper, // Tai Tham\n tavt: UniversalShaper, // Tai Viet\n takr: UniversalShaper, // Takri\n tibt: UniversalShaper, // Tibetan\n tfng: UniversalShaper, // Tifinagh\n tirh: UniversalShaper, // Tirhuta\n\n latn: DefaultShaper, // Latin\n DFLT: DefaultShaper // Default\n};\n\nexport function choose(script) {\n if (!Array.isArray(script)) {\n script = [script];\n }\n\n for (let s of script) {\n let shaper = SHAPERS[s];\n if (shaper) {\n return shaper;\n }\n }\n\n return DefaultShaper;\n}\n","import OTProcessor from './OTProcessor';\nimport GlyphInfo from './GlyphInfo';\n\nexport default class GSUBProcessor extends OTProcessor {\n applyLookup(lookupType, table) {\n switch (lookupType) {\n case 1: { // Single Substitution\n let index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n let glyph = this.glyphIterator.cur;\n switch (table.version) {\n case 1:\n glyph.id = (glyph.id + table.deltaGlyphID) & 0xffff;\n break;\n\n case 2:\n glyph.id = table.substitute.get(index);\n break;\n }\n\n return true;\n }\n\n case 2: { // Multiple Substitution\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let sequence = table.sequences.get(index);\n\n if (sequence.length === 0) {\n // If the sequence length is zero, delete the glyph.\n // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n this.glyphs.splice(this.glyphIterator.index, 1);\n return true;\n }\n\n this.glyphIterator.cur.id = sequence[0];\n this.glyphIterator.cur.ligatureComponent = 0;\n\n let features = this.glyphIterator.cur.features;\n let curGlyph = this.glyphIterator.cur;\n let replacement = sequence.slice(1).map((gid, i) => {\n let glyph = new GlyphInfo(this.font, gid, undefined, features);\n glyph.shaperInfo = curGlyph.shaperInfo;\n glyph.isLigated = curGlyph.isLigated;\n glyph.ligatureComponent = i + 1;\n glyph.substituted = true;\n glyph.isMultiplied = true;\n return glyph;\n });\n\n this.glyphs.splice(this.glyphIterator.index + 1, 0, ...replacement);\n return true;\n }\n\n return false;\n }\n\n case 3: { // Alternate Substitution\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let USER_INDEX = 0; // TODO\n this.glyphIterator.cur.id = table.alternateSet.get(index)[USER_INDEX];\n return true;\n }\n\n return false;\n }\n\n case 4: { // Ligature Substitution\n let index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n for (let ligature of table.ligatureSets.get(index)) {\n let matched = this.sequenceMatchIndices(1, ligature.components);\n if (!matched) {\n continue;\n }\n\n let curGlyph = this.glyphIterator.cur;\n\n // Concatenate all of the characters the new ligature will represent\n let characters = curGlyph.codePoints.slice();\n for (let index of matched) {\n characters.push(...this.glyphs[index].codePoints);\n }\n\n // Create the replacement ligature glyph\n let ligatureGlyph = new GlyphInfo(this.font, ligature.glyph, characters, curGlyph.features);\n ligatureGlyph.shaperInfo = curGlyph.shaperInfo;\n ligatureGlyph.isLigated = true;\n ligatureGlyph.substituted = true;\n\n // From Harfbuzz:\n // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n // the ligature to keep its old ligature id. This will allow it to attach to\n // a base ligature in GPOS. Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n // and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n // ligature id and component value of 2. Then if SHADDA,FATHA form a ligature\n // later, we don't want them to lose their ligature id/component, otherwise\n // GPOS will fail to correctly position the mark ligature on top of the\n // LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n //\n // - If a ligature is formed of components that some of which are also ligatures\n // themselves, and those ligature components had marks attached to *their*\n // components, we have to attach the marks to the new ligature component\n // positions! Now *that*'s tricky! And these marks may be following the\n // last component of the whole sequence, so we should loop forward looking\n // for them and update them.\n //\n // Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n // 'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n // id and component == 1. Now, during 'liga', the LAM and the LAM-HEH ligature\n // form a LAM-LAM-HEH ligature. We need to reassign the SHADDA and FATHA to\n // the new ligature with a component value of 2.\n //\n // This in fact happened to a font... See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n let isMarkLigature = curGlyph.isMark;\n for (let i = 0; i < matched.length && isMarkLigature; i++) {\n isMarkLigature = this.glyphs[matched[i]].isMark;\n }\n\n ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n\n let lastLigID = curGlyph.ligatureID;\n let lastNumComps = curGlyph.codePoints.length;\n let curComps = lastNumComps;\n let idx = this.glyphIterator.index + 1;\n\n // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n // This allows GPOS to attach marks to the correct ligature components.\n for (let matchIndex of matched) {\n // Don't assign new ligature components for mark ligatures (see above)\n if (isMarkLigature) {\n idx = matchIndex;\n } else {\n while (idx < matchIndex) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n this.glyphs[idx].ligatureComponent = ligatureComponent;\n idx++;\n }\n }\n\n lastLigID = this.glyphs[idx].ligatureID;\n lastNumComps = this.glyphs[idx].codePoints.length;\n curComps += lastNumComps;\n idx++; // skip base glyph\n }\n\n // Adjust ligature components for any marks following\n if (lastLigID && !isMarkLigature) {\n for (let i = idx; i < this.glyphs.length; i++) {\n if (this.glyphs[i].ligatureID === lastLigID) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[i].ligatureComponent || 1, lastNumComps);\n this.glyphs[i].ligatureComponent = ligatureComponent;\n } else {\n break;\n }\n }\n }\n\n // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n for (let i = matched.length - 1; i >= 0; i--) {\n this.glyphs.splice(matched[i], 1);\n }\n\n this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n return true;\n }\n\n return false;\n }\n\n case 5: // Contextual Substitution\n return this.applyContext(table);\n\n case 6: // Chaining Contextual Substitution\n return this.applyChainingContext(table);\n\n case 7: // Extension Substitution\n return this.applyLookup(table.lookupType, table.extension);\n\n default:\n throw new Error(`GSUB lookupType ${lookupType} is not supported`);\n }\n }\n}\n","import OTProcessor from './OTProcessor';\n\nexport default class GPOSProcessor extends OTProcessor {\n applyPositionValue(sequenceIndex, value) {\n let position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n if (value.xAdvance != null) {\n position.xAdvance += value.xAdvance;\n }\n\n if (value.yAdvance != null) {\n position.yAdvance += value.yAdvance;\n }\n\n if (value.xPlacement != null) {\n position.xOffset += value.xPlacement;\n }\n\n if (value.yPlacement != null) {\n position.yOffset += value.yPlacement;\n }\n\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (value.xPlaDevice) {\n position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n }\n\n if (value.yPlaDevice) {\n position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n }\n\n if (value.xAdvDevice) {\n position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n }\n\n if (value.yAdvDevice) {\n position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n }\n }\n\n // TODO: device tables\n }\n\n applyLookup(lookupType, table) {\n switch (lookupType) {\n case 1: { // Single positioning value\n let index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n switch (table.version) {\n case 1:\n this.applyPositionValue(0, table.value);\n break;\n\n case 2:\n this.applyPositionValue(0, table.values.get(index));\n break;\n }\n\n return true;\n }\n\n case 2: { // Pair Adjustment Positioning\n let nextGlyph = this.glyphIterator.peek();\n if (!nextGlyph) {\n return false;\n }\n\n let index = this.coverageIndex(table.coverage);\n if (index === -1) {\n return false;\n }\n\n switch (table.version) {\n case 1: // Adjustments for glyph pairs\n let set = table.pairSets.get(index);\n\n for (let pair of set) {\n if (pair.secondGlyph === nextGlyph.id) {\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n\n return false;\n\n case 2: // Class pair adjustment\n let class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n let class2 = this.getClassID(nextGlyph.id, table.classDef2);\n if (class1 === -1 || class2 === -1) {\n return false;\n }\n\n var pair = table.classRecords.get(class1).get(class2);\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n\n case 3: { // Cursive Attachment Positioning\n let nextIndex = this.glyphIterator.peekIndex();\n let nextGlyph = this.glyphs[nextIndex];\n if (!nextGlyph) {\n return false;\n }\n\n let curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n if (!curRecord || !curRecord.exitAnchor) {\n return false;\n }\n\n let nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, nextGlyph.id)];\n if (!nextRecord || !nextRecord.entryAnchor) {\n return false;\n }\n\n let entry = this.getAnchor(nextRecord.entryAnchor);\n let exit = this.getAnchor(curRecord.exitAnchor);\n\n let cur = this.positions[this.glyphIterator.index];\n let next = this.positions[nextIndex];\n let d;\n\n switch (this.direction) {\n case 'ltr':\n cur.xAdvance = exit.x + cur.xOffset;\n\n d = entry.x + next.xOffset;\n next.xAdvance -= d;\n next.xOffset -= d;\n break;\n\n case 'rtl':\n d = exit.x + cur.xOffset;\n cur.xAdvance -= d;\n cur.xOffset -= d;\n next.xAdvance = entry.x + next.xOffset;\n break;\n }\n\n if (this.glyphIterator.flags.rightToLeft) {\n this.glyphIterator.cur.cursiveAttachment = nextIndex;\n cur.yOffset = entry.y - exit.y;\n } else {\n nextGlyph.cursiveAttachment = this.glyphIterator.index;\n cur.yOffset = exit.y - entry.y;\n }\n\n return true;\n }\n\n case 4: { // Mark to base positioning\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) {\n return false;\n }\n\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while (--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0));\n\n if (baseGlyphIndex < 0) {\n return false;\n }\n\n let baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n if (baseIndex === -1) {\n return false;\n }\n\n let markRecord = table.markArray[markIndex];\n let baseAnchor = table.baseArray[baseIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n\n case 5: { // Mark to ligature positioning\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) {\n return false;\n }\n\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while (--baseGlyphIndex >= 0 && this.glyphs[baseGlyphIndex].isMark);\n\n if (baseGlyphIndex < 0) {\n return false;\n }\n\n let ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[baseGlyphIndex].id);\n if (ligIndex === -1) {\n return false;\n }\n\n let ligAttach = table.ligatureArray[ligIndex];\n let markGlyph = this.glyphIterator.cur;\n let ligGlyph = this.glyphs[baseGlyphIndex];\n let compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && (markGlyph.ligatureComponent > 0)\n ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1\n : ligGlyph.codePoints.length - 1;\n\n let markRecord = table.markArray[markIndex];\n let baseAnchor = ligAttach[compIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n\n case 6: { // Mark to mark positioning\n let mark1Index = this.coverageIndex(table.mark1Coverage);\n if (mark1Index === -1) {\n return false;\n }\n\n // get the previous mark to attach to\n let prevIndex = this.glyphIterator.peekIndex(-1);\n let prev = this.glyphs[prevIndex];\n if (!prev || !prev.isMark) {\n return false;\n }\n\n let cur = this.glyphIterator.cur;\n\n // The following logic was borrowed from Harfbuzz\n let good = false;\n if (cur.ligatureID === prev.ligatureID) {\n if (!cur.ligatureID) { // Marks belonging to the same base\n good = true;\n } else if (cur.ligatureComponent === prev.ligatureComponent) { // Marks belonging to the same ligature component\n good = true;\n }\n } else {\n // If ligature ids don't match, it may be the case that one of the marks\n // itself is a ligature, in which case match.\n if ((cur.ligatureID && !cur.ligatureComponent) || (prev.ligatureID && !prev.ligatureComponent)) {\n good = true;\n }\n }\n\n if (!good) {\n return false;\n }\n\n let mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n if (mark2Index === -1) {\n return false;\n }\n\n let markRecord = table.mark1Array[mark1Index];\n let baseAnchor = table.mark2Array[mark2Index][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, prevIndex);\n return true;\n }\n\n case 7: // Contextual positioning\n return this.applyContext(table);\n\n case 8: // Chaining contextual positioning\n return this.applyChainingContext(table);\n\n case 9: // Extension positioning\n return this.applyLookup(table.lookupType, table.extension);\n\n default:\n throw new Error(`Unsupported GPOS table: ${lookupType}`);\n }\n }\n\n applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n let baseCoords = this.getAnchor(baseAnchor);\n let markCoords = this.getAnchor(markRecord.markAnchor);\n\n let basePos = this.positions[baseGlyphIndex];\n let markPos = this.positions[this.glyphIterator.index];\n\n markPos.xOffset = baseCoords.x - markCoords.x;\n markPos.yOffset = baseCoords.y - markCoords.y;\n this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n }\n\n getAnchor(anchor) {\n // TODO: contour point, device tables\n let x = anchor.xCoordinate;\n let y = anchor.yCoordinate;\n\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (anchor.xDeviceTable) {\n x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n }\n\n if (anchor.yDeviceTable) {\n y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n }\n }\n\n return { x, y };\n }\n\n applyFeatures(userFeatures, glyphs, advances) {\n super.applyFeatures(userFeatures, glyphs, advances);\n\n for (var i = 0; i < this.glyphs.length; i++) {\n this.fixCursiveAttachment(i);\n }\n\n this.fixMarkAttachment();\n }\n\n fixCursiveAttachment(i) {\n let glyph = this.glyphs[i];\n if (glyph.cursiveAttachment != null) {\n let j = glyph.cursiveAttachment;\n\n glyph.cursiveAttachment = null;\n this.fixCursiveAttachment(j);\n\n this.positions[i].yOffset += this.positions[j].yOffset;\n }\n }\n\n fixMarkAttachment() {\n for (let i = 0; i < this.glyphs.length; i++) {\n let glyph = this.glyphs[i];\n if (glyph.markAttachment != null) {\n let j = glyph.markAttachment;\n\n this.positions[i].xOffset += this.positions[j].xOffset;\n this.positions[i].yOffset += this.positions[j].yOffset;\n\n if (this.direction === 'ltr') {\n for (let k = j; k < i; k++) {\n this.positions[i].xOffset -= this.positions[k].xAdvance;\n this.positions[i].yOffset -= this.positions[k].yAdvance;\n }\n } else {\n for (let k = j + 1; k < i + 1; k++) {\n this.positions[i].xOffset += this.positions[k].xAdvance;\n this.positions[i].yOffset += this.positions[k].yAdvance;\n }\n }\n }\n }\n }\n}\n","import ShapingPlan from './ShapingPlan';\nimport * as Shapers from './shapers';\nimport GlyphInfo from './GlyphInfo';\nimport GSUBProcessor from './GSUBProcessor';\nimport GPOSProcessor from './GPOSProcessor';\n\nexport default class OTLayoutEngine {\n constructor(font) {\n this.font = font;\n this.glyphInfos = null;\n this.plan = null;\n this.GSUBProcessor = null;\n this.GPOSProcessor = null;\n this.fallbackPosition = true;\n\n if (font.GSUB) {\n this.GSUBProcessor = new GSUBProcessor(font, font.GSUB);\n }\n\n if (font.GPOS) {\n this.GPOSProcessor = new GPOSProcessor(font, font.GPOS);\n }\n }\n\n setup(glyphRun) {\n // Map glyphs to GlyphInfo objects so data can be passed between\n // GSUB and GPOS without mutating the real (shared) Glyph objects.\n this.glyphInfos = glyphRun.glyphs.map(glyph => new GlyphInfo(this.font, glyph.id, [...glyph.codePoints]));\n\n // Select a script based on what is available in GSUB/GPOS.\n let script = null;\n if (this.GPOSProcessor) {\n script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n }\n\n if (this.GSUBProcessor) {\n script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n }\n\n // Choose a shaper based on the script, and setup a shaping plan.\n // This determines which features to apply to which glyphs.\n this.shaper = Shapers.choose(script);\n this.plan = new ShapingPlan(this.font, script, glyphRun.direction);\n this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);\n\n // Assign chosen features to output glyph run\n for (let key in this.plan.allFeatures) {\n glyphRun.features[key] = true;\n }\n }\n\n substitute(glyphRun) {\n if (this.GSUBProcessor) {\n this.plan.process(this.GSUBProcessor, this.glyphInfos);\n\n // Map glyph infos back to normal Glyph objects\n glyphRun.glyphs = this.glyphInfos.map(glyphInfo => this.font.getGlyph(glyphInfo.id, glyphInfo.codePoints));\n }\n }\n\n position(glyphRun) {\n if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') {\n this.zeroMarkAdvances(glyphRun.positions);\n }\n\n if (this.GPOSProcessor) {\n this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n }\n\n if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') {\n this.zeroMarkAdvances(glyphRun.positions);\n }\n\n // Reverse the glyphs and positions if the script is right-to-left\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n glyphRun.positions.reverse();\n }\n\n return this.GPOSProcessor && this.GPOSProcessor.features;\n }\n\n zeroMarkAdvances(positions) {\n for (let i = 0; i < this.glyphInfos.length; i++) {\n if (this.glyphInfos[i].isMark) {\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n }\n\n cleanup() {\n this.glyphInfos = null;\n this.plan = null;\n this.shaper = null;\n }\n\n getAvailableFeatures(script, language) {\n let features = [];\n\n if (this.GSUBProcessor) {\n this.GSUBProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GSUBProcessor.features));\n }\n\n if (this.GPOSProcessor) {\n this.GPOSProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GPOSProcessor.features));\n }\n\n return features;\n }\n}\n","import KernProcessor from './KernProcessor';\nimport UnicodeLayoutEngine from './UnicodeLayoutEngine';\nimport GlyphRun from './GlyphRun';\nimport GlyphPosition from './GlyphPosition';\nimport * as Script from './Script';\nimport AATLayoutEngine from '../aat/AATLayoutEngine';\nimport OTLayoutEngine from '../opentype/OTLayoutEngine';\n\nexport default class LayoutEngine {\n constructor(font) {\n this.font = font;\n this.unicodeLayoutEngine = null;\n this.kernProcessor = null;\n\n // Choose an advanced layout engine. We try the AAT morx table first since more\n // scripts are currently supported because the shaping logic is built into the font.\n if (this.font.morx) {\n this.engine = new AATLayoutEngine(this.font);\n\n } else if (this.font.GSUB || this.font.GPOS) {\n this.engine = new OTLayoutEngine(this.font);\n }\n }\n\n layout(string, features, script, language, direction) {\n // Make the features parameter optional\n if (typeof features === 'string') {\n direction = language;\n language = script;\n script = features;\n features = [];\n }\n\n // Map string to glyphs if needed\n if (typeof string === 'string') {\n // Attempt to detect the script from the string if not provided.\n if (script == null) {\n script = Script.forString(string);\n }\n\n var glyphs = this.font.glyphsForString(string);\n } else {\n // Attempt to detect the script from the glyph code points if not provided.\n if (script == null) {\n let codePoints = [];\n for (let glyph of string) {\n codePoints.push(...glyph.codePoints);\n }\n\n script = Script.forCodePoints(codePoints);\n }\n\n var glyphs = string;\n }\n\n let glyphRun = new GlyphRun(glyphs, features, script, language, direction);\n\n // Return early if there are no glyphs\n if (glyphs.length === 0) {\n glyphRun.positions = [];\n return glyphRun;\n }\n\n // Setup the advanced layout engine\n if (this.engine && this.engine.setup) {\n this.engine.setup(glyphRun);\n }\n\n // Substitute and position the glyphs\n this.substitute(glyphRun);\n this.position(glyphRun);\n\n this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);\n\n // Let the layout engine clean up any state it might have\n if (this.engine && this.engine.cleanup) {\n this.engine.cleanup();\n }\n\n return glyphRun;\n }\n\n substitute(glyphRun) {\n // Call the advanced layout engine to make substitutions\n if (this.engine && this.engine.substitute) {\n this.engine.substitute(glyphRun);\n }\n }\n\n position(glyphRun) {\n // Get initial glyph positions\n glyphRun.positions = glyphRun.glyphs.map(glyph => new GlyphPosition(glyph.advanceWidth));\n let positioned = null;\n\n // Call the advanced layout engine. Returns the features applied.\n if (this.engine && this.engine.position) {\n positioned = this.engine.position(glyphRun);\n }\n\n // if there is no GPOS table, use unicode properties to position marks.\n if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n if (!this.unicodeLayoutEngine) {\n this.unicodeLayoutEngine = new UnicodeLayoutEngine(this.font);\n }\n\n this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n }\n\n // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n if (!this.kernProcessor) {\n this.kernProcessor = new KernProcessor(this.font);\n }\n\n this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n glyphRun.features.kern = true;\n }\n }\n\n hideDefaultIgnorables(glyphs, positions) {\n let space = this.font.glyphForCodePoint(0x20);\n for (let i = 0; i < glyphs.length; i++) {\n if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n glyphs[i] = space;\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n }\n\n isDefaultIgnorable(ch) {\n // From DerivedCoreProperties.txt in the Unicode database,\n // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n // Harfbuzz and Uniscribe do.\n let plane = ch >> 16;\n if (plane === 0) {\n // BMP\n switch (ch >> 8) {\n \tcase 0x00: return ch === 0x00AD;\n \tcase 0x03: return ch === 0x034F;\n \tcase 0x06: return ch === 0x061C;\n \tcase 0x17: return 0x17B4 <= ch && ch <= 0x17B5;\n \tcase 0x18: return 0x180B <= ch && ch <= 0x180E;\n \tcase 0x20: return (0x200B <= ch && ch <= 0x200F) || (0x202A <= ch && ch <= 0x202E) || (0x2060 <= ch && ch <= 0x206F);\n \tcase 0xFE: return (0xFE00 <= ch && ch <= 0xFE0F) || ch === 0xFEFF;\n \tcase 0xFF: return 0xFFF0 <= ch && ch <= 0xFFF8;\n \tdefault: return false;\n }\n } else {\n // Other planes\n switch (plane) {\n \tcase 0x01: return (0x1BCA0 <= ch && ch <= 0x1BCA3) || (0x1D173 <= ch && ch <= 0x1D17A);\n \tcase 0x0E: return 0xE0000 <= ch && ch <= 0xE0FFF;\n \tdefault: return false;\n }\n }\n }\n\n getAvailableFeatures(script, language) {\n let features = [];\n\n if (this.engine) {\n features.push(...this.engine.getAvailableFeatures(script, language));\n }\n\n if (this.font.kern && features.indexOf('kern') === -1) {\n features.push('kern');\n }\n\n return features;\n }\n\n stringsForGlyph(gid) {\n let result = new Set;\n\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n for (let codePoint of codePoints) {\n result.add(String.fromCodePoint(codePoint));\n }\n\n if (this.engine && this.engine.stringsForGlyph) {\n for (let string of this.engine.stringsForGlyph(gid)) {\n result.add(string);\n }\n }\n\n return Array.from(result);\n }\n}\n","import BBox from './BBox';\n\nconst SVG_COMMANDS = {\n moveTo: 'M',\n lineTo: 'L',\n quadraticCurveTo: 'Q',\n bezierCurveTo: 'C',\n closePath: 'Z'\n};\n\n/**\n * Path objects are returned by glyphs and represent the actual\n * vector outlines for each glyph in the font. Paths can be converted\n * to SVG path data strings, or to functions that can be applied to\n * render the path to a graphics context.\n */\nexport default class Path {\n constructor() {\n this.commands = [];\n this._bbox = null;\n this._cbox = null;\n }\n\n /**\n * Compiles the path to a JavaScript function that can be applied with\n * a graphics context in order to render the path.\n * @return {string}\n */\n toFunction() {\n return ctx => {\n this.commands.forEach(c => {\n return ctx[c.command].apply(ctx, c.args)\n })\n };\n }\n\n /**\n * Converts the path to an SVG path data string\n * @return {string}\n */\n toSVG() {\n let cmds = this.commands.map(c => {\n let args = c.args.map(arg => Math.round(arg * 100) / 100);\n return `${SVG_COMMANDS[c.command]}${args.join(' ')}`;\n });\n\n return cmds.join('');\n }\n\n /**\n * Gets the \"control box\" of a path.\n * This is like the bounding box, but it includes all points including\n * control points of bezier segments and is much faster to compute than\n * the real bounding box.\n * @type {BBox}\n */\n get cbox() {\n if (!this._cbox) {\n let cbox = new BBox;\n for (let command of this.commands) {\n for (let i = 0; i < command.args.length; i += 2) {\n cbox.addPoint(command.args[i], command.args[i + 1]);\n }\n }\n\n this._cbox = Object.freeze(cbox);\n }\n\n return this._cbox;\n }\n\n /**\n * Gets the exact bounding box of the path by evaluating curve segments.\n * Slower to compute than the control box, but more accurate.\n * @type {BBox}\n */\n get bbox() {\n if (this._bbox) {\n return this._bbox;\n }\n\n let bbox = new BBox;\n let cx = 0, cy = 0;\n\n let f = t => (\n Math.pow(1 - t, 3) * p0[i]\n + 3 * Math.pow(1 - t, 2) * t * p1[i]\n + 3 * (1 - t) * Math.pow(t, 2) * p2[i]\n + Math.pow(t, 3) * p3[i]\n );\n\n for (let c of this.commands) {\n switch (c.command) {\n case 'moveTo':\n case 'lineTo':\n let [x, y] = c.args;\n bbox.addPoint(x, y);\n cx = x;\n cy = y;\n break;\n\n case 'quadraticCurveTo':\n case 'bezierCurveTo':\n if (c.command === 'quadraticCurveTo') {\n // http://fontforge.org/bezier.html\n var [qp1x, qp1y, p3x, p3y] = c.args;\n var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n var cp1y = cy + 2 / 3 * (qp1y - cy);\n var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n } else {\n var [cp1x, cp1y, cp2x, cp2y, p3x, p3y] = c.args;\n }\n\n // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n bbox.addPoint(p3x, p3y);\n\n var p0 = [cx, cy];\n var p1 = [cp1x, cp1y];\n var p2 = [cp2x, cp2y];\n var p3 = [p3x, p3y];\n\n for (var i = 0; i <= 1; i++) {\n let b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n let a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n\n if (a === 0) {\n if (b === 0) {\n continue;\n }\n\n let t = -c / b;\n if (0 < t && t < 1) {\n if (i === 0) {\n bbox.addPoint(f(t), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t));\n }\n }\n\n continue;\n }\n\n let b2ac = Math.pow(b, 2) - 4 * c * a;\n if (b2ac < 0) {\n continue;\n }\n\n let t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (0 < t1 && t1 < 1) {\n if (i === 0) {\n bbox.addPoint(f(t1), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t1));\n }\n }\n\n let t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (0 < t2 && t2 < 1) {\n if (i === 0) {\n bbox.addPoint(f(t2), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t2));\n }\n }\n }\n\n cx = p3x;\n cy = p3y;\n break;\n }\n }\n\n return this._bbox = Object.freeze(bbox);\n }\n\n /**\n * Applies a mapping function to each point in the path.\n * @param {function} fn\n * @return {Path}\n */\n mapPoints(fn) {\n let path = new Path;\n\n for (let c of this.commands) {\n let args = [];\n for (let i = 0; i < c.args.length; i += 2) {\n let [x, y] = fn(c.args[i], c.args[i + 1]);\n args.push(x, y);\n }\n\n path[c.command](...args);\n }\n\n return path;\n }\n\n /**\n * Transforms the path by the given matrix.\n */\n transform(m0, m1, m2, m3, m4, m5) {\n return this.mapPoints((x, y) => {\n const tx = m0 * x + m2 * y + m4;\n const ty = m1 * x + m3 * y + m5;\n return [tx, ty];\n });\n }\n\n /**\n * Translates the path by the given offset.\n */\n translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n }\n\n /**\n * Rotates the path by the given angle (in radians).\n */\n rotate(angle) {\n let cos = Math.cos(angle);\n let sin = Math.sin(angle);\n return this.transform(cos, sin, -sin, cos, 0, 0);\n }\n\n /**\n * Scales the path.\n */\n scale(scaleX, scaleY = scaleX) {\n return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n }\n}\n\nfor (let command of ['moveTo', 'lineTo', 'quadraticCurveTo', 'bezierCurveTo', 'closePath']) {\n Path.prototype[command] = function(...args) {\n this._bbox = this._cbox = null;\n this.commands.push({\n command,\n args\n });\n\n return this;\n };\n}\n","export default [\n '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash',\n 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',\n 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',\n 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',\n 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',\n 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',\n 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave',\n 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',\n 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis',\n 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section',\n 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal',\n 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation',\n 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown',\n 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright',\n 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft',\n 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction',\n 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase',\n 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute',\n 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex',\n 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut',\n 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth',\n 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior',\n 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla',\n 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'\n];\n","import { cache } from '../decorators';\nimport Path from './Path';\nimport {isMark} from 'unicode-properties';\nimport StandardNames from './StandardNames';\n\n/**\n * Glyph objects represent a glyph in the font. They have various properties for accessing metrics and\n * the actual vector path the glyph represents, and methods for rendering the glyph to a graphics context.\n *\n * You do not create glyph objects directly. They are created by various methods on the font object.\n * There are several subclasses of the base Glyph class internally that may be returned depending\n * on the font format, but they all inherit from this class.\n */\nexport default class Glyph {\n constructor(id, codePoints, font) {\n /**\n * The glyph id in the font\n * @type {number}\n */\n this.id = id;\n\n /**\n * An array of unicode code points that are represented by this glyph.\n * There can be multiple code points in the case of ligatures and other glyphs\n * that represent multiple visual characters.\n * @type {number[]}\n */\n this.codePoints = codePoints;\n this._font = font;\n\n // TODO: get this info from GDEF if available\n this.isMark = this.codePoints.length > 0 && this.codePoints.every(isMark);\n this.isLigature = this.codePoints.length > 1;\n }\n\n _getPath() {\n return new Path();\n }\n\n _getCBox() {\n return this.path.cbox;\n }\n\n _getBBox() {\n return this.path.bbox;\n }\n\n _getTableMetrics(table) {\n if (this.id < table.metrics.length) {\n return table.metrics.get(this.id);\n }\n\n let metric = table.metrics.get(table.metrics.length - 1);\n let res = {\n advance: metric ? metric.advance : 0,\n bearing: table.bearings.get(this.id - table.metrics.length) || 0\n };\n\n return res;\n }\n\n _getMetrics(cbox) {\n if (this._metrics) { return this._metrics; }\n\n let {advance:advanceWidth, bearing:leftBearing} = this._getTableMetrics(this._font.hmtx);\n\n // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n if (this._font.vmtx) {\n var {advance:advanceHeight, bearing:topBearing} = this._getTableMetrics(this._font.vmtx);\n\n } else {\n let os2;\n if (typeof cbox === 'undefined' || cbox === null) { ({ cbox } = this); }\n\n if ((os2 = this._font['OS/2']) && os2.version > 0) {\n var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n var topBearing = os2.typoAscender - cbox.maxY;\n\n } else {\n let { hhea } = this._font;\n var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n var topBearing = hhea.ascent - cbox.maxY;\n }\n }\n\n if (this._font._variationProcessor && this._font.HVAR) {\n advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n }\n\n return this._metrics = { advanceWidth, advanceHeight, leftBearing, topBearing };\n }\n\n /**\n * The glyph’s control box.\n * This is often the same as the bounding box, but is faster to compute.\n * Because of the way bezier curves are defined, some of the control points\n * can be outside of the bounding box. Where `bbox` takes this into account,\n * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n * for a more detailed description.\n *\n * @type {BBox}\n */\n @cache\n get cbox() {\n return this._getCBox();\n }\n\n /**\n * The glyph’s bounding box, i.e. the rectangle that encloses the\n * glyph outline as tightly as possible.\n * @type {BBox}\n */\n @cache\n get bbox() {\n return this._getBBox();\n }\n\n /**\n * A vector Path object representing the glyph outline.\n * @type {Path}\n */\n @cache\n get path() {\n // Cache the path so we only decode it once\n // Decoding is actually performed by subclasses\n return this._getPath();\n }\n\n /**\n * Returns a path scaled to the given font size.\n * @param {number} size\n * @return {Path}\n */\n getScaledPath(size) {\n let scale = 1 / this._font.unitsPerEm * size;\n return this.path.scale(scale);\n }\n\n /**\n * The glyph's advance width.\n * @type {number}\n */\n @cache\n get advanceWidth() {\n return this._getMetrics().advanceWidth;\n }\n\n /**\n * The glyph's advance height.\n * @type {number}\n */\n @cache\n get advanceHeight() {\n return this._getMetrics().advanceHeight;\n }\n\n get ligatureCaretPositions() {}\n\n _getName() {\n let { post } = this._font;\n if (!post) {\n return null;\n }\n\n switch (post.version) {\n case 1:\n return StandardNames[this.id];\n\n case 2:\n let id = post.glyphNameIndex[this.id];\n if (id < StandardNames.length) {\n return StandardNames[id];\n }\n\n return post.names[id - StandardNames.length];\n\n case 2.5:\n return StandardNames[this.id + post.offsets[this.id]];\n\n case 4:\n return String.fromCharCode(post.map[this.id]);\n }\n }\n\n /**\n * The glyph's name\n * @type {string}\n */\n @cache\n get name() {\n return this._getName();\n }\n\n /**\n * Renders the glyph to the given graphics context, at the specified font size.\n * @param {CanvasRenderingContext2d} ctx\n * @param {number} size\n */\n render(ctx, size) {\n ctx.save();\n\n let scale = 1 / this._font.head.unitsPerEm * size;\n ctx.scale(scale, scale);\n\n let fn = this.path.toFunction();\n fn(ctx);\n ctx.fill();\n\n ctx.restore();\n }\n}\n","import Glyph from './Glyph';\nimport Path from './Path';\nimport BBox from './BBox';\nimport * as r from 'restructure';\n\n// The header for both simple and composite glyphs\nlet GlyfHeader = new r.Struct({\n numberOfContours: r.int16, // if negative, this is a composite glyph\n xMin: r.int16,\n yMin: r.int16,\n xMax: r.int16,\n yMax: r.int16\n});\n\n// Flags for simple glyphs\nconst ON_CURVE = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT = 1 << 3;\nconst SAME_X = 1 << 4;\nconst SAME_Y = 1 << 5;\n\n// Flags for composite glyphs\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\nconst ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\nconst USE_MY_METRICS = 1 << 9;\nconst OVERLAP_COMPOUND = 1 << 10;\nconst SCALED_COMPONENT_OFFSET = 1 << 11;\nconst UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n// Represents a point in a simple glyph\nexport class Point {\n constructor(onCurve, endContour, x = 0, y = 0) {\n this.onCurve = onCurve;\n this.endContour = endContour;\n this.x = x;\n this.y = y;\n }\n\n copy() {\n return new Point(this.onCurve, this.endContour, this.x, this.y);\n }\n}\n\n// Represents a component in a composite glyph\nclass Component {\n constructor(glyphID, dx, dy) {\n this.glyphID = glyphID;\n this.dx = dx;\n this.dy = dy;\n this.pos = 0;\n this.scaleX = this.scaleY = 1;\n this.scale01 = this.scale10 = 0;\n }\n}\n\n/**\n * Represents a TrueType glyph.\n */\nexport default class TTFGlyph extends Glyph {\n type = 'TTF';\n\n // Parses just the glyph header and returns the bounding box\n _getCBox(internal) {\n // We need to decode the glyph if variation processing is requested,\n // so it's easier just to recompute the path's cbox after decoding.\n if (this._font._variationProcessor && !internal) {\n return this.path.cbox;\n }\n\n let stream = this._font._getTableStream('glyf');\n stream.pos += this._font.loca.offsets[this.id];\n let glyph = GlyfHeader.decode(stream);\n\n let cbox = new BBox(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n return Object.freeze(cbox);\n }\n\n // Parses a single glyph coordinate\n _parseGlyphCoord(stream, prev, short, same) {\n if (short) {\n var val = stream.readUInt8();\n if (!same) {\n val = -val;\n }\n\n val += prev;\n } else {\n if (same) {\n var val = prev;\n } else {\n var val = prev + stream.readInt16BE();\n }\n }\n\n return val;\n }\n\n // Decodes the glyph data into points for simple glyphs,\n // or components for composite glyphs\n _decode() {\n let glyfPos = this._font.loca.offsets[this.id];\n let nextPos = this._font.loca.offsets[this.id + 1];\n\n // Nothing to do if there is no data for this glyph\n if (glyfPos === nextPos) { return null; }\n\n let stream = this._font._getTableStream('glyf');\n stream.pos += glyfPos;\n let startPos = stream.pos;\n\n let glyph = GlyfHeader.decode(stream);\n\n if (glyph.numberOfContours > 0) {\n this._decodeSimple(glyph, stream);\n\n } else if (glyph.numberOfContours < 0) {\n this._decodeComposite(glyph, stream, startPos);\n }\n\n return glyph;\n }\n\n _decodeSimple(glyph, stream) {\n // this is a simple glyph\n glyph.points = [];\n\n let endPtsOfContours = new r.Array(r.uint16, glyph.numberOfContours).decode(stream);\n glyph.instructions = new r.Array(r.uint8, r.uint16).decode(stream);\n\n let flags = [];\n let numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n\n while (flags.length < numCoords) {\n var flag = stream.readUInt8();\n flags.push(flag);\n\n // check for repeat flag\n if (flag & REPEAT) {\n let count = stream.readUInt8();\n for (let j = 0; j < count; j++) {\n flags.push(flag);\n }\n }\n }\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n let point = new Point(!!(flag & ON_CURVE), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n glyph.points.push(point);\n }\n\n let px = 0;\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & X_SHORT_VECTOR, flag & SAME_X);\n }\n\n let py = 0;\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & Y_SHORT_VECTOR, flag & SAME_Y);\n }\n\n if (this._font._variationProcessor) {\n let points = glyph.points.slice();\n points.push(...this._getPhantomPoints(glyph));\n\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.slice(-4);\n }\n\n return;\n }\n\n _decodeComposite(glyph, stream, offset = 0) {\n // this is a composite glyph\n glyph.components = [];\n let haveInstructions = false;\n let flags = MORE_COMPONENTS;\n\n while (flags & MORE_COMPONENTS) {\n flags = stream.readUInt16BE();\n let gPos = stream.pos - offset;\n let glyphID = stream.readUInt16BE();\n if (!haveInstructions) {\n haveInstructions = (flags & WE_HAVE_INSTRUCTIONS) !== 0;\n }\n\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n var dx = stream.readInt16BE();\n var dy = stream.readInt16BE();\n } else {\n var dx = stream.readInt8();\n var dy = stream.readInt8();\n }\n\n var component = new Component(glyphID, dx, dy);\n component.pos = gPos;\n\n if (flags & WE_HAVE_A_SCALE) {\n // fixed number with 14 bits of fraction\n component.scaleX =\n component.scaleY = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n component.scaleX = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n component.scaleY = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n component.scaleX = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n component.scale01 = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n component.scale10 = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n component.scaleY = ((stream.readUInt8() << 24) | (stream.readUInt8() << 16)) / 1073741824;\n }\n\n glyph.components.push(component);\n }\n\n if (this._font._variationProcessor) {\n let points = [];\n for (let j = 0; j < glyph.components.length; j++) {\n var component = glyph.components[j];\n points.push(new Point(true, true, component.dx, component.dy));\n }\n\n points.push(...this._getPhantomPoints(glyph));\n\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.splice(-4, 4);\n\n for (let i = 0; i < points.length; i++) {\n let point = points[i];\n glyph.components[i].dx = point.x;\n glyph.components[i].dy = point.y;\n }\n }\n\n return haveInstructions;\n }\n\n _getPhantomPoints(glyph) {\n let cbox = this._getCBox(true);\n if (this._metrics == null) {\n this._metrics = Glyph.prototype._getMetrics.call(this, cbox);\n }\n\n let { advanceWidth, advanceHeight, leftBearing, topBearing } = this._metrics;\n\n return [\n new Point(false, true, glyph.xMin - leftBearing, 0),\n new Point(false, true, glyph.xMin - leftBearing + advanceWidth, 0),\n new Point(false, true, 0, glyph.yMax + topBearing),\n new Point(false, true, 0, glyph.yMax + topBearing + advanceHeight)\n ];\n }\n\n // Decodes font data, resolves composite glyphs, and returns an array of contours\n _getContours() {\n let glyph = this._decode();\n if (!glyph) {\n return [];\n }\n\n let points = [];\n\n if (glyph.numberOfContours < 0) {\n // resolve composite glyphs\n for (let component of glyph.components) {\n let contours = this._font.getGlyph(component.glyphID)._getContours();\n for (let i = 0; i < contours.length; i++) {\n let contour = contours[i];\n for (let j = 0; j < contour.length; j++) {\n let point = contour[j];\n let x = point.x * component.scaleX + point.y * component.scale01 + component.dx;\n let y = point.y * component.scaleY + point.x * component.scale10 + component.dy;\n points.push(new Point(point.onCurve, point.endContour, x, y));\n }\n }\n }\n } else {\n points = glyph.points || [];\n }\n\n // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n }\n\n let contours = [];\n let cur = [];\n for (let k = 0; k < points.length; k++) {\n var point = points[k];\n cur.push(point);\n if (point.endContour) {\n contours.push(cur);\n cur = [];\n }\n }\n\n return contours;\n }\n\n _getMetrics() {\n if (this._metrics) {\n return this._metrics;\n }\n\n let cbox = this._getCBox(true);\n super._getMetrics(cbox);\n\n if (this._font._variationProcessor && !this._font.HVAR) {\n // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n this.path;\n }\n\n return this._metrics;\n }\n\n // Converts contours to a Path object that can be rendered\n _getPath() {\n let contours = this._getContours();\n let path = new Path;\n\n for (let i = 0; i < contours.length; i++) {\n let contour = contours[i];\n let firstPt = contour[0];\n let lastPt = contour[contour.length - 1];\n let start = 0;\n\n if (firstPt.onCurve) {\n // The first point will be consumed by the moveTo command, so skip in the loop\n var curvePt = null;\n start = 1;\n } else {\n if (lastPt.onCurve) {\n // Start at the last point if the first point is off curve and the last point is on curve\n firstPt = lastPt;\n } else {\n // Start at the middle if both the first and last points are off curve\n firstPt = new Point(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n }\n\n var curvePt = firstPt;\n }\n\n path.moveTo(firstPt.x, firstPt.y);\n\n for (let j = start; j < contour.length; j++) {\n let pt = contour[j];\n let prevPt = j === 0 ? firstPt : contour[j - 1];\n\n if (prevPt.onCurve && pt.onCurve) {\n path.lineTo(pt.x, pt.y);\n\n } else if (prevPt.onCurve && !pt.onCurve) {\n var curvePt = pt;\n\n } else if (!prevPt.onCurve && !pt.onCurve) {\n let midX = (prevPt.x + pt.x) / 2;\n let midY = (prevPt.y + pt.y) / 2;\n path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n var curvePt = pt;\n\n } else if (!prevPt.onCurve && pt.onCurve) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n var curvePt = null;\n\n } else {\n throw new Error(\"Unknown TTF path state\");\n }\n }\n\n // Connect the first and last points\n if (curvePt) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n }\n\n path.closePath();\n }\n\n return path;\n }\n}\n","import Glyph from './Glyph';\nimport Path from './Path';\n\n/**\n * Represents an OpenType PostScript glyph, in the Compact Font Format.\n */\nexport default class CFFGlyph extends Glyph {\n type = 'CFF';\n\n _getName() {\n if (this._font.CFF2) {\n return super._getName();\n }\n\n return this._font['CFF '].getGlyphName(this.id);\n }\n\n bias(s) {\n if (s.length < 1240) {\n return 107;\n } else if (s.length < 33900) {\n return 1131;\n } else {\n return 32768;\n }\n }\n\n _getPath() {\n let cff = this._font.CFF2 || this._font['CFF '];\n let { stream } = cff;\n let str = cff.topDict.CharStrings[this.id];\n let end = str.offset + str.length;\n stream.pos = str.offset;\n\n let path = new Path;\n let stack = [];\n let trans = [];\n\n let width = null;\n let nStems = 0;\n let x = 0, y = 0;\n let usedGsubrs;\n let usedSubrs;\n let open = false;\n\n this._usedGsubrs = usedGsubrs = {};\n this._usedSubrs = usedSubrs = {};\n\n let gsubrs = cff.globalSubrIndex || [];\n let gsubrsBias = this.bias(gsubrs);\n\n let privateDict = cff.privateDictForGlyph(this.id) || {};\n let subrs = privateDict.Subrs || [];\n let subrsBias = this.bias(subrs);\n\n let vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n let vsindex = privateDict.vsindex;\n let variationProcessor = this._font._variationProcessor;\n\n function checkWidth() {\n if (width == null) {\n width = stack.shift() + privateDict.nominalWidthX;\n }\n }\n\n function parseStems() {\n if (stack.length % 2 !== 0) {\n checkWidth();\n }\n\n nStems += stack.length >> 1;\n return stack.length = 0;\n }\n\n function moveTo(x, y) {\n if (open) {\n path.closePath();\n }\n\n path.moveTo(x, y);\n open = true;\n }\n\n let parse = function () {\n while (stream.pos < end) {\n let op = stream.readUInt8();\n if (op < 32) {\n let index, subr, phase;\n let c1x, c1y, c2x, c2y, c3x, c3y;\n let c4x, c4y, c5x, c5y, c6x, c6y;\n let pts;\n\n switch (op) {\n case 1: // hstem\n case 3: // vstem\n case 18: // hstemhm\n case 23: // vstemhm\n parseStems();\n break;\n\n case 4: // vmoveto\n if (stack.length > 1) {\n checkWidth();\n }\n\n y += stack.shift();\n moveTo(x, y);\n break;\n\n case 5: // rlineto\n while (stack.length >= 2) {\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n break;\n\n case 6: // hlineto\n case 7: // vlineto\n phase = op === 6;\n while (stack.length >= 1) {\n if (phase) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n\n path.lineTo(x, y);\n phase = !phase;\n }\n break;\n\n case 8: // rrcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n\n case 10: // callsubr\n index = stack.pop() + subrsBias;\n subr = subrs[index];\n if (subr) {\n usedSubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n\n case 11: // return\n if (cff.version >= 2) {\n break;\n }\n return;\n\n case 14: // endchar\n if (cff.version >= 2) {\n break;\n }\n\n if (stack.length > 0) {\n checkWidth();\n }\n\n if (open) {\n path.closePath();\n open = false;\n }\n break;\n\n case 15: { // vsindex\n if (cff.version < 2) {\n throw new Error('vsindex operator not supported in CFF v1');\n }\n\n vsindex = stack.pop();\n break;\n }\n\n case 16: { // blend\n if (cff.version < 2) {\n throw new Error('blend operator not supported in CFF v1');\n }\n\n if (!variationProcessor) {\n throw new Error('blend operator in non-variation font');\n }\n\n let blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n let numBlends = stack.pop();\n let numOperands = numBlends * blendVector.length;\n let delta = stack.length - numOperands;\n let base = delta - numBlends;\n\n for (let i = 0; i < numBlends; i++) {\n let sum = stack[base + i];\n for (let j = 0; j < blendVector.length; j++) {\n sum += blendVector[j] * stack[delta++];\n }\n\n stack[base + i] = sum;\n }\n\n while (numOperands--) {\n stack.pop();\n }\n\n break;\n }\n\n case 19: // hintmask\n case 20: // cntrmask\n parseStems();\n stream.pos += (nStems + 7) >> 3;\n break;\n\n case 21: // rmoveto\n if (stack.length > 2) {\n checkWidth();\n }\n\n x += stack.shift();\n y += stack.shift();\n moveTo(x, y);\n break;\n\n case 22: // hmoveto\n if (stack.length > 1) {\n checkWidth();\n }\n\n x += stack.shift();\n moveTo(x, y);\n break;\n\n case 24: // rcurveline\n while (stack.length >= 8) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n break;\n\n case 25: // rlinecurve\n while (stack.length >= 8) {\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length >= 4) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length >= 4) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n\n case 28: // shortint\n stack.push(stream.readInt16BE());\n break;\n\n case 29: // callgsubr\n index = stack.pop() + gsubrsBias;\n subr = gsubrs[index];\n if (subr) {\n usedGsubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n\n case 30: // vhcurveto\n case 31: // hvcurveto\n phase = op === 31;\n while (stack.length >= 4) {\n if (phase) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n } else {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n }\n\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n phase = !phase;\n }\n break;\n\n case 12:\n op = stream.readUInt8();\n switch (op) {\n case 3: // and\n let a = stack.pop();\n let b = stack.pop();\n stack.push(a && b ? 1 : 0);\n break;\n\n case 4: // or\n a = stack.pop();\n b = stack.pop();\n stack.push(a || b ? 1 : 0);\n break;\n\n case 5: // not\n a = stack.pop();\n stack.push(a ? 0 : 1);\n break;\n\n case 9: // abs\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n\n case 10: // add\n a = stack.pop();\n b = stack.pop();\n stack.push(a + b);\n break;\n\n case 11: // sub\n a = stack.pop();\n b = stack.pop();\n stack.push(a - b);\n break;\n\n case 12: // div\n a = stack.pop();\n b = stack.pop();\n stack.push(a / b);\n break;\n\n case 14: // neg\n a = stack.pop();\n stack.push(-a);\n break;\n\n case 15: // eq\n a = stack.pop();\n b = stack.pop();\n stack.push(a === b ? 1 : 0);\n break;\n\n case 18: // drop\n stack.pop();\n break;\n\n case 20: // put\n let val = stack.pop();\n let idx = stack.pop();\n trans[idx] = val;\n break;\n\n case 21: // get\n idx = stack.pop();\n stack.push(trans[idx] || 0);\n break;\n\n case 22: // ifelse\n let s1 = stack.pop();\n let s2 = stack.pop();\n let v1 = stack.pop();\n let v2 = stack.pop();\n stack.push(v1 <= v2 ? s1 : s2);\n break;\n\n case 23: // random\n stack.push(Math.random());\n break;\n\n case 24: // mul\n a = stack.pop();\n b = stack.pop();\n stack.push(a * b);\n break;\n\n case 26: // sqrt\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n\n case 27: // dup\n a = stack.pop();\n stack.push(a, a);\n break;\n\n case 28: // exch\n a = stack.pop();\n b = stack.pop();\n stack.push(b, a);\n break;\n\n case 29: // index\n idx = stack.pop();\n if (idx < 0) {\n idx = 0;\n } else if (idx > stack.length - 1) {\n idx = stack.length - 1;\n }\n\n stack.push(stack[idx]);\n break;\n\n case 30: // roll\n let n = stack.pop();\n let j = stack.pop();\n\n if (j >= 0) {\n while (j > 0) {\n var t = stack[n - 1];\n for (let i = n - 2; i >= 0; i--) {\n stack[i + 1] = stack[i];\n }\n\n stack[0] = t;\n j--;\n }\n } else {\n while (j < 0) {\n var t = stack[0];\n for (let i = 0; i <= n; i++) {\n stack[i] = stack[i + 1];\n }\n\n stack[n - 1] = t;\n j++;\n }\n }\n break;\n\n case 34: // hflex\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y;\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n\n case 35: // flex\n pts = [];\n\n for (let i = 0; i <= 5; i++) {\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n stack.shift(); // fd\n break;\n\n case 36: // hflex1\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y + stack.shift();\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n\n case 37: // flex1\n let startx = x;\n let starty = y;\n\n pts = [];\n for (let i = 0; i <= 4; i++) {\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n\n if (Math.abs(x - startx) > Math.abs(y - starty)) { // horizontal\n x += stack.shift();\n y = starty;\n } else {\n x = startx;\n y += stack.shift();\n }\n\n pts.push(x, y);\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n break;\n\n default:\n throw new Error(`Unknown op: 12 ${op}`);\n }\n break;\n\n default:\n throw new Error(`Unknown op: ${op}`);\n }\n\n } else if (op < 247) {\n stack.push(op - 139);\n } else if (op < 251) {\n var b1 = stream.readUInt8();\n stack.push((op - 247) * 256 + b1 + 108);\n } else if (op < 255) {\n var b1 = stream.readUInt8();\n stack.push(-(op - 251) * 256 - b1 - 108);\n } else {\n stack.push(stream.readInt32BE() / 65536);\n }\n }\n };\n\n parse();\n\n if (open) {\n path.closePath();\n }\n\n return path;\n }\n}\n","import TTFGlyph from './TTFGlyph';\nimport * as r from 'restructure';\n\nlet SBIXImage = new r.Struct({\n originX: r.uint16,\n originY: r.uint16,\n type: new r.String(4),\n data: new r.Buffer(t => t.parent.buflen - t._currentOffset)\n});\n\n/**\n * Represents a color (e.g. emoji) glyph in Apple's SBIX format.\n */\nexport default class SBIXGlyph extends TTFGlyph {\n type = 'SBIX';\n\n /**\n * Returns an object representing a glyph image at the given point size.\n * The object has a data property with a Buffer containing the actual image data,\n * along with the image type, and origin.\n *\n * @param {number} size\n * @return {object}\n */\n getImageForSize(size) {\n for (let i = 0; i < this._font.sbix.imageTables.length; i++) {\n var table = this._font.sbix.imageTables[i];\n if (table.ppem >= size) { break; }\n }\n\n let offsets = table.imageOffsets;\n let start = offsets[this.id];\n let end = offsets[this.id + 1];\n\n if (start === end) {\n return null;\n }\n\n this._font.stream.pos = start;\n return SBIXImage.decode(this._font.stream, {buflen: end - start});\n }\n\n render(ctx, size) {\n let img = this.getImageForSize(size);\n if (img != null) {\n let scale = size / this._font.unitsPerEm;\n ctx.image(img.data, {height: size, x: img.originX, y: (this.bbox.minY - img.originY) * scale});\n }\n\n if (this._font.sbix.flags.renderOutlines) {\n super.render(ctx, size);\n }\n }\n}\n","import Glyph from './Glyph';\nimport BBox from './BBox';\n\nclass COLRLayer {\n constructor(glyph, color) {\n this.glyph = glyph;\n this.color = color;\n }\n}\n\n/**\n * Represents a color (e.g. emoji) glyph in Microsoft's COLR format.\n * Each glyph in this format contain a list of colored layers, each\n * of which is another vector glyph.\n */\nexport default class COLRGlyph extends Glyph {\n type = 'COLR';\n\n _getBBox() {\n let bbox = new BBox;\n for (let i = 0; i < this.layers.length; i++) {\n let layer = this.layers[i];\n let b = layer.glyph.bbox;\n bbox.addPoint(b.minX, b.minY);\n bbox.addPoint(b.maxX, b.maxY);\n }\n\n return bbox;\n }\n\n /**\n * Returns an array of objects containing the glyph and color for\n * each layer in the composite color glyph.\n * @type {object[]}\n */\n get layers() {\n let cpal = this._font.CPAL;\n let colr = this._font.COLR;\n let low = 0;\n let high = colr.baseGlyphRecord.length - 1;\n\n while (low <= high) {\n let mid = (low + high) >> 1;\n var rec = colr.baseGlyphRecord[mid];\n\n if (this.id < rec.gid) {\n high = mid - 1;\n } else if (this.id > rec.gid) {\n low = mid + 1;\n } else {\n var baseLayer = rec;\n break;\n }\n }\n\n // if base glyph not found in COLR table,\n // default to normal glyph from glyf or CFF\n if (baseLayer == null) {\n var g = this._font._getBaseGlyph(this.id);\n var color = {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 255\n };\n\n return [new COLRLayer(g, color)];\n }\n\n // otherwise, return an array of all the layers\n let layers = [];\n for (let i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++) {\n var rec = colr.layerRecords[i];\n var color = cpal.colorRecords[rec.paletteIndex];\n var g = this._font._getBaseGlyph(rec.gid);\n layers.push(new COLRLayer(g, color));\n }\n\n return layers;\n }\n\n render(ctx, size) {\n for (let {glyph, color} of this.layers) {\n ctx.fillColor([color.red, color.green, color.blue], color.alpha / 255 * 100);\n glyph.render(ctx, size);\n }\n\n return;\n }\n}\n","const TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nconst TUPLE_COUNT_MASK = 0x0fff;\nconst EMBEDDED_TUPLE_COORD = 0x8000;\nconst INTERMEDIATE_TUPLE = 0x4000;\nconst PRIVATE_POINT_NUMBERS = 0x2000;\nconst TUPLE_INDEX_MASK = 0x0fff;\nconst POINTS_ARE_WORDS = 0x80;\nconst POINT_RUN_COUNT_MASK = 0x7f;\nconst DELTAS_ARE_ZERO = 0x80;\nconst DELTAS_ARE_WORDS = 0x40;\nconst DELTA_RUN_COUNT_MASK = 0x3f;\n\n/**\n * This class is transforms TrueType glyphs according to the data from\n * the Apple Advanced Typography variation tables (fvar, gvar, and avar).\n * These tables allow infinite adjustments to glyph weight, width, slant,\n * and optical size without the designer needing to specify every exact style.\n *\n * Apple's documentation for these tables is not great, so thanks to the\n * Freetype project for figuring much of this out.\n *\n * @private\n */\nexport default class GlyphVariationProcessor {\n constructor(font, coords) {\n this.font = font;\n this.normalizedCoords = this.normalizeCoords(coords);\n this.blendVectors = new Map;\n }\n\n normalizeCoords(coords) {\n // the default mapping is linear along each axis, in two segments:\n // from the minValue to defaultValue, and from defaultValue to maxValue.\n let normalized = [];\n for (var i = 0; i < this.font.fvar.axis.length; i++) {\n let axis = this.font.fvar.axis[i];\n if (coords[i] < axis.defaultValue) {\n normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));\n } else {\n normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));\n }\n }\n\n // if there is an avar table, the normalized value is calculated\n // by interpolating between the two nearest mapped values.\n if (this.font.avar) {\n for (var i = 0; i < this.font.avar.segment.length; i++) {\n let segment = this.font.avar.segment[i];\n for (let j = 0; j < segment.correspondence.length; j++) {\n let pair = segment.correspondence[j];\n if (j >= 1 && normalized[i] < pair.fromCoord) {\n let prev = segment.correspondence[j - 1];\n normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) /\n (pair.fromCoord - prev.fromCoord + Number.EPSILON) +\n prev.toCoord;\n\n break;\n }\n }\n }\n }\n\n return normalized;\n }\n\n transformPoints(gid, glyphPoints) {\n if (!this.font.fvar || !this.font.gvar) { return; }\n\n let { gvar } = this.font;\n if (gid >= gvar.glyphCount) { return; }\n\n let offset = gvar.offsets[gid];\n if (offset === gvar.offsets[gid + 1]) { return; }\n\n // Read the gvar data for this glyph\n let { stream } = this.font;\n stream.pos = offset;\n if (stream.pos >= stream.length) {\n return;\n }\n\n let tupleCount = stream.readUInt16BE();\n let offsetToData = offset + stream.readUInt16BE();\n\n if (tupleCount & TUPLES_SHARE_POINT_NUMBERS) {\n var here = stream.pos;\n stream.pos = offsetToData;\n var sharedPoints = this.decodePoints();\n offsetToData = stream.pos;\n stream.pos = here;\n }\n\n let origPoints = glyphPoints.map(pt => pt.copy());\n\n tupleCount &= TUPLE_COUNT_MASK;\n for (let i = 0; i < tupleCount; i++) {\n let tupleDataSize = stream.readUInt16BE();\n let tupleIndex = stream.readUInt16BE();\n\n if (tupleIndex & EMBEDDED_TUPLE_COORD) {\n var tupleCoords = [];\n for (let a = 0; a < gvar.axisCount; a++) {\n tupleCoords.push(stream.readInt16BE() / 16384);\n }\n\n } else {\n if ((tupleIndex & TUPLE_INDEX_MASK) >= gvar.globalCoordCount) {\n throw new Error('Invalid gvar table');\n }\n\n var tupleCoords = gvar.globalCoords[tupleIndex & TUPLE_INDEX_MASK];\n }\n\n if (tupleIndex & INTERMEDIATE_TUPLE) {\n var startCoords = [];\n for (let a = 0; a < gvar.axisCount; a++) {\n startCoords.push(stream.readInt16BE() / 16384);\n }\n\n var endCoords = [];\n for (let a = 0; a < gvar.axisCount; a++) {\n endCoords.push(stream.readInt16BE() / 16384);\n }\n }\n\n // Get the factor at which to apply this tuple\n let factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n if (factor === 0) {\n offsetToData += tupleDataSize;\n continue;\n }\n\n var here = stream.pos;\n stream.pos = offsetToData;\n\n if (tupleIndex & PRIVATE_POINT_NUMBERS) {\n var points = this.decodePoints();\n } else {\n var points = sharedPoints;\n }\n\n // points.length = 0 means there are deltas for all points\n let nPoints = points.length === 0 ? glyphPoints.length : points.length;\n let xDeltas = this.decodeDeltas(nPoints);\n let yDeltas = this.decodeDeltas(nPoints);\n\n if (points.length === 0) { // all points\n for (let i = 0; i < glyphPoints.length; i++) {\n var point = glyphPoints[i];\n point.x += Math.round(xDeltas[i] * factor);\n point.y += Math.round(yDeltas[i] * factor);\n }\n } else {\n let outPoints = origPoints.map(pt => pt.copy());\n let hasDelta = glyphPoints.map(() => false);\n\n for (let i = 0; i < points.length; i++) {\n let idx = points[i];\n if (idx < glyphPoints.length) {\n let point = outPoints[idx];\n hasDelta[idx] = true;\n\n point.x += xDeltas[i] * factor;\n point.y += yDeltas[i] * factor;\n }\n }\n\n this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n\n for (let i = 0; i < glyphPoints.length; i++) {\n let deltaX = outPoints[i].x - origPoints[i].x;\n let deltaY = outPoints[i].y - origPoints[i].y;\n\n glyphPoints[i].x = Math.round(glyphPoints[i].x + deltaX);\n glyphPoints[i].y = Math.round(glyphPoints[i].y + deltaY);\n }\n }\n\n offsetToData += tupleDataSize;\n stream.pos = here;\n }\n }\n\n decodePoints() {\n let stream = this.font.stream;\n let count = stream.readUInt8();\n\n if (count & POINTS_ARE_WORDS) {\n count = (count & POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n }\n\n let points = new Uint16Array(count);\n let i = 0;\n let point = 0;\n while (i < count) {\n let run = stream.readUInt8();\n let runCount = (run & POINT_RUN_COUNT_MASK) + 1;\n let fn = run & POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n\n for (let j = 0; j < runCount && i < count; j++) {\n point += fn.call(stream);\n points[i++] = point;\n }\n }\n\n return points;\n }\n\n decodeDeltas(count) {\n let stream = this.font.stream;\n let i = 0;\n let deltas = new Int16Array(count);\n\n while (i < count) {\n let run = stream.readUInt8();\n let runCount = (run & DELTA_RUN_COUNT_MASK) + 1;\n\n if (run & DELTAS_ARE_ZERO) {\n i += runCount;\n\n } else {\n let fn = run & DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n for (let j = 0; j < runCount && i < count; j++) {\n deltas[i++] = fn.call(stream);\n }\n }\n }\n\n return deltas;\n }\n\n tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n let normalized = this.normalizedCoords;\n let { gvar } = this.font;\n let factor = 1;\n\n for (let i = 0; i < gvar.axisCount; i++) {\n if (tupleCoords[i] === 0) {\n continue;\n }\n\n if (normalized[i] === 0) {\n return 0;\n }\n\n if ((tupleIndex & INTERMEDIATE_TUPLE) === 0) {\n if ((normalized[i] < Math.min(0, tupleCoords[i])) ||\n (normalized[i] > Math.max(0, tupleCoords[i]))) {\n return 0;\n }\n\n factor = (factor * normalized[i] + Number.EPSILON) / (tupleCoords[i] + Number.EPSILON);\n } else {\n if ((normalized[i] < startCoords[i]) ||\n (normalized[i] > endCoords[i])) {\n return 0;\n\n } else if (normalized[i] < tupleCoords[i]) {\n factor = factor * (normalized[i] - startCoords[i] + Number.EPSILON) / (tupleCoords[i] - startCoords[i] + Number.EPSILON);\n\n } else {\n factor = factor * (endCoords[i] - normalized[i] + Number.EPSILON) / (endCoords[i] - tupleCoords[i] + Number.EPSILON);\n }\n }\n }\n\n return factor;\n }\n\n // Interpolates points without delta values.\n // Needed for the Ø and Q glyphs in Skia.\n // Algorithm from Freetype.\n interpolateMissingDeltas(points, inPoints, hasDelta) {\n if (points.length === 0) {\n return;\n }\n\n let point = 0;\n while (point < points.length) {\n let firstPoint = point;\n\n // find the end point of the contour\n let endPoint = point;\n let pt = points[endPoint];\n while (!pt.endContour) {\n pt = points[++endPoint];\n }\n\n // find the first point that has a delta\n while (point <= endPoint && !hasDelta[point]) {\n point++;\n }\n\n if (point > endPoint) {\n continue;\n }\n\n let firstDelta = point;\n let curDelta = point;\n point++;\n\n while (point <= endPoint) {\n // find the next point with a delta, and interpolate intermediate points\n if (hasDelta[point]) {\n this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n curDelta = point;\n }\n\n point++;\n }\n\n // shift contour if we only have a single delta\n if (curDelta === firstDelta) {\n this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n } else {\n // otherwise, handle the remaining points at the end and beginning of the contour\n this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n\n if (firstDelta > 0) {\n this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n }\n }\n\n point = endPoint + 1;\n }\n }\n\n deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n if (p1 > p2) {\n return;\n }\n\n let iterable = ['x', 'y'];\n for (let i = 0; i < iterable.length; i++) {\n let k = iterable[i];\n if (inPoints[ref1][k] > inPoints[ref2][k]) {\n var p = ref1;\n ref1 = ref2;\n ref2 = p;\n }\n\n let in1 = inPoints[ref1][k];\n let in2 = inPoints[ref2][k];\n let out1 = outPoints[ref1][k];\n let out2 = outPoints[ref2][k];\n\n // If the reference points have the same coordinate but different\n // delta, inferred delta is zero. Otherwise interpolate.\n if (in1 !== in2 || out1 === out2) {\n let scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n\n for (let p = p1; p <= p2; p++) {\n let out = inPoints[p][k];\n\n if (out <= in1) {\n out += out1 - in1;\n } else if (out >= in2) {\n out += out2 - in2;\n } else {\n out = out1 + (out - in1) * scale;\n }\n\n outPoints[p][k] = out;\n }\n }\n }\n }\n\n deltaShift(p1, p2, ref, inPoints, outPoints) {\n let deltaX = outPoints[ref].x - inPoints[ref].x;\n let deltaY = outPoints[ref].y - inPoints[ref].y;\n\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n for (let p = p1; p <= p2; p++) {\n if (p !== ref) {\n outPoints[p].x += deltaX;\n outPoints[p].y += deltaY;\n }\n }\n }\n\n getAdvanceAdjustment(gid, table) {\n let outerIndex, innerIndex;\n\n if (table.advanceWidthMapping) {\n let idx = gid;\n if (idx >= table.advanceWidthMapping.mapCount) {\n idx = table.advanceWidthMapping.mapCount - 1;\n }\n\n let entryFormat = table.advanceWidthMapping.entryFormat;\n ({outerIndex, innerIndex} = table.advanceWidthMapping.mapData[idx]);\n } else {\n outerIndex = 0;\n innerIndex = gid;\n }\n\n return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n }\n\n // See pseudo code from `Font Variations Overview'\n // in the OpenType specification.\n getDelta(itemStore, outerIndex, innerIndex) {\n if (outerIndex >= itemStore.itemVariationData.length) {\n return 0;\n }\n\n let varData = itemStore.itemVariationData[outerIndex];\n if (innerIndex >= varData.deltaSets.length) {\n return 0;\n }\n\n let deltaSet = varData.deltaSets[innerIndex];\n let blendVector = this.getBlendVector(itemStore, outerIndex);\n let netAdjustment = 0;\n\n for (let master = 0; master < varData.regionIndexCount; master++) {\n netAdjustment += deltaSet.deltas[master] * blendVector[master];\n }\n\n return netAdjustment;\n }\n\n getBlendVector(itemStore, outerIndex) {\n let varData = itemStore.itemVariationData[outerIndex];\n if (this.blendVectors.has(varData)) {\n return this.blendVectors.get(varData);\n }\n\n let normalizedCoords = this.normalizedCoords;\n let blendVector = [];\n\n // outer loop steps through master designs to be blended\n for (let master = 0; master < varData.regionIndexCount; master++) {\n let scalar = 1;\n let regionIndex = varData.regionIndexes[master];\n let axes = itemStore.variationRegionList.variationRegions[regionIndex];\n\n // inner loop steps through axes in this region\n for (let j = 0; j < axes.length; j++) {\n let axis = axes[j];\n let axisScalar;\n\n // compute the scalar contribution of this axis\n // ignore invalid ranges\n if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) {\n axisScalar = 1;\n\n } else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) {\n axisScalar = 1;\n\n // peak of 0 means ignore this axis\n } else if (axis.peakCoord === 0) {\n axisScalar = 1;\n\n // ignore this region if coords are out of range\n } else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) {\n axisScalar = 0;\n\n // calculate a proportional factor\n } else {\n if (normalizedCoords[j] === axis.peakCoord) {\n axisScalar = 1;\n } else if (normalizedCoords[j] < axis.peakCoord) {\n axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) /\n (axis.peakCoord - axis.startCoord + Number.EPSILON);\n } else {\n axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) /\n (axis.endCoord - axis.peakCoord + Number.EPSILON);\n }\n }\n\n // take product of all the axis scalars\n scalar *= axisScalar;\n }\n\n blendVector[master] = scalar;\n }\n\n this.blendVectors.set(varData, blendVector);\n return blendVector;\n }\n}\n","import * as r from 'restructure';\n\nconst resolved = Promise.resolve();\n\nexport default class Subset {\n constructor(font) {\n this.font = font;\n this.glyphs = [];\n this.mapping = {};\n\n // always include the missing glyph\n this.includeGlyph(0);\n }\n\n includeGlyph(glyph) {\n if (typeof glyph === 'object') {\n glyph = glyph.id;\n }\n\n if (this.mapping[glyph] == null) {\n this.glyphs.push(glyph);\n this.mapping[glyph] = this.glyphs.length - 1;\n }\n\n return this.mapping[glyph];\n }\n}\n","import * as r from 'restructure';\n\n// Flags for simple glyphs\nconst ON_CURVE = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT = 1 << 3;\nconst SAME_X = 1 << 4;\nconst SAME_Y = 1 << 5;\n\nclass Point {\n static size(val) {\n return val >= 0 && val <= 255 ? 1 : 2;\n }\n \n static encode(stream, value) {\n if (value >= 0 && value <= 255) {\n stream.writeUInt8(value);\n } else {\n stream.writeInt16BE(value);\n }\n }\n}\n\nlet Glyf = new r.Struct({\n numberOfContours: r.int16, // if negative, this is a composite glyph\n xMin: r.int16,\n yMin: r.int16,\n xMax: r.int16,\n yMax: r.int16,\n endPtsOfContours: new r.Array(r.uint16, 'numberOfContours'),\n instructions: new r.Array(r.uint8, r.uint16),\n flags: new r.Array(r.uint8, 0),\n xPoints: new r.Array(Point, 0),\n yPoints: new r.Array(Point, 0)\n});\n\n/**\n * Encodes TrueType glyph outlines\n */\nexport default class TTFGlyphEncoder {\n encodeSimple(path, instructions = []) {\n let endPtsOfContours = [];\n let xPoints = [];\n let yPoints = [];\n let flags = [];\n let same = 0;\n let lastX = 0, lastY = 0, lastFlag = 0;\n let pointCount = 0;\n \n for (let i = 0; i < path.commands.length; i++) {\n let c = path.commands[i];\n \n for (let j = 0; j < c.args.length; j += 2) {\n let x = c.args[j];\n let y = c.args[j + 1];\n let flag = 0;\n \n // If the ending point of a quadratic curve is the midpoint\n // between the control point and the control point of the next\n // quadratic curve, we can omit the ending point.\n if (c.command === 'quadraticCurveTo' && j === 2) {\n let next = path.commands[i + 1];\n if (next && next.command === 'quadraticCurveTo') {\n let midX = (lastX + next.args[0]) / 2;\n let midY = (lastY + next.args[1]) / 2;\n \n if (x === midX && y === midY) {\n continue;\n }\n }\n }\n \n // All points except control points are on curve.\n if (!(c.command === 'quadraticCurveTo' && j === 0)) {\n flag |= ON_CURVE;\n }\n \n flag = this._encodePoint(x, lastX, xPoints, flag, X_SHORT_VECTOR, SAME_X);\n flag = this._encodePoint(y, lastY, yPoints, flag, Y_SHORT_VECTOR, SAME_Y);\n \n if (flag === lastFlag && same < 255) {\n flags[flags.length - 1] |= REPEAT;\n same++;\n } else {\n if (same > 0) {\n flags.push(same);\n same = 0;\n }\n \n flags.push(flag);\n lastFlag = flag;\n }\n \n lastX = x;\n lastY = y;\n pointCount++;\n }\n \n if (c.command === 'closePath') {\n endPtsOfContours.push(pointCount - 1);\n }\n }\n\n // Close the path if the last command didn't already\n if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') {\n endPtsOfContours.push(pointCount - 1);\n }\n \n let bbox = path.bbox;\n let glyf = {\n numberOfContours: endPtsOfContours.length,\n xMin: bbox.minX,\n yMin: bbox.minY,\n xMax: bbox.maxX,\n yMax: bbox.maxY,\n endPtsOfContours: endPtsOfContours,\n instructions: instructions,\n flags: flags,\n xPoints: xPoints,\n yPoints: yPoints\n };\n \n let size = Glyf.size(glyf);\n let tail = 4 - (size % 4);\n \n let stream = new r.EncodeStream(size + tail);\n Glyf.encode(stream, glyf);\n \n // Align to 4-byte length\n if (tail !== 0) {\n stream.fill(0, tail);\n }\n \n return stream.buffer;\n }\n \n _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n let diff = value - last;\n \n if (value === last) {\n flag |= sameFlag;\n } else {\n if (-255 <= diff && diff <= 255) {\n flag |= shortFlag;\n if (diff < 0) {\n diff = -diff;\n } else {\n flag |= sameFlag;\n }\n }\n \n points.push(diff);\n }\n \n return flag;\n }\n}\n","import cloneDeep from 'clone';\nimport Subset from './Subset';\nimport Directory from '../tables/directory';\nimport Tables from '../tables';\nimport TTFGlyphEncoder from '../glyph/TTFGlyphEncoder';\n\nexport default class TTFSubset extends Subset {\n constructor(font) {\n super(font);\n this.glyphEncoder = new TTFGlyphEncoder;\n }\n\n _addGlyph(gid) {\n let glyph = this.font.getGlyph(gid);\n let glyf = glyph._decode();\n\n // get the offset to the glyph from the loca table\n let curOffset = this.font.loca.offsets[gid];\n let nextOffset = this.font.loca.offsets[gid + 1];\n\n let stream = this.font._getTableStream('glyf');\n stream.pos += curOffset;\n\n let buffer = stream.readBuffer(nextOffset - curOffset);\n\n // if it is a compound glyph, include its components\n if (glyf && glyf.numberOfContours < 0) {\n buffer = new Uint8Array(buffer);\n let view = new DataView(buffer.buffer);\n for (let component of glyf.components) {\n gid = this.includeGlyph(component.glyphID);\n view.setUint16(component.pos, gid);\n }\n } else if (glyf && this.font._variationProcessor) {\n // If this is a TrueType variation glyph, re-encode the path\n buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n }\n\n this.glyf.push(buffer);\n this.loca.offsets.push(this.offset);\n\n this.hmtx.metrics.push({\n advance: glyph.advanceWidth,\n bearing: glyph._getMetrics().leftBearing\n });\n\n this.offset += buffer.length;\n return this.glyf.length - 1;\n }\n\n encode() {\n // tables required by PDF spec:\n // head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n //\n // additional tables required for standalone fonts:\n // name, cmap, OS/2, post\n\n this.glyf = [];\n this.offset = 0;\n this.loca = {\n offsets: [],\n version: this.font.loca.version\n };\n\n this.hmtx = {\n metrics: [],\n bearings: []\n };\n\n // include all the glyphs\n // not using a for loop because we need to support adding more\n // glyphs to the array as we go, and CoffeeScript caches the length.\n let i = 0;\n while (i < this.glyphs.length) {\n this._addGlyph(this.glyphs[i++]);\n }\n\n let maxp = cloneDeep(this.font.maxp);\n maxp.numGlyphs = this.glyf.length;\n\n this.loca.offsets.push(this.offset);\n\n let head = cloneDeep(this.font.head);\n head.indexToLocFormat = this.loca.version;\n\n let hhea = cloneDeep(this.font.hhea);\n hhea.numberOfMetrics = this.hmtx.metrics.length;\n\n // map = []\n // for index in [0...256]\n // if index < @numGlyphs\n // map[index] = index\n // else\n // map[index] = 0\n //\n // cmapTable =\n // version: 0\n // length: 262\n // language: 0\n // codeMap: map\n //\n // cmap =\n // version: 0\n // numSubtables: 1\n // tables: [\n // platformID: 1\n // encodingID: 0\n // table: cmapTable\n // ]\n\n // TODO: subset prep, cvt, fpgm?\n return Directory.toBuffer({\n tables: {\n head,\n hhea,\n loca: this.loca,\n maxp,\n 'cvt ': this.font['cvt '],\n prep: this.font.prep,\n glyf: this.glyf,\n hmtx: this.hmtx,\n fpgm: this.font.fpgm\n\n // name: clone @font.name\n // 'OS/2': clone @font['OS/2']\n // post: clone @font.post\n // cmap: cmap\n }\n });\n }\n}\n","import Subset from './Subset';\nimport CFFTop from '../cff/CFFTop';\nimport CFFPrivateDict from '../cff/CFFPrivateDict';\nimport standardStrings from '../cff/CFFStandardStrings';\n\nexport default class CFFSubset extends Subset {\n constructor(font) {\n super(font);\n\n this.cff = this.font['CFF '];\n if (!this.cff) {\n throw new Error('Not a CFF Font');\n }\n }\n\n subsetCharstrings() {\n this.charstrings = [];\n let gsubrs = {};\n\n for (let gid of this.glyphs) {\n this.charstrings.push(this.cff.getCharString(gid));\n\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n\n for (let subr in glyph._usedGsubrs) {\n gsubrs[subr] = true;\n }\n }\n\n this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n }\n\n subsetSubrs(subrs, used) {\n let res = [];\n for (let i = 0; i < subrs.length; i++) {\n let subr = subrs[i];\n if (used[i]) {\n this.cff.stream.pos = subr.offset;\n res.push(this.cff.stream.readBuffer(subr.length));\n } else {\n res.push(new Uint8Array([11])); // return\n }\n }\n\n return res;\n }\n\n subsetFontdict(topDict) {\n topDict.FDArray = [];\n topDict.FDSelect = {\n version: 0,\n fds: []\n };\n\n let used_fds = {};\n let used_subrs = [];\n let fd_select = {};\n for (let gid of this.glyphs) {\n let fd = this.cff.fdForGlyph(gid);\n if (fd == null) {\n continue;\n }\n\n if (!used_fds[fd]) {\n topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd]));\n used_subrs.push({});\n fd_select[fd] = topDict.FDArray.length - 1;\n }\n\n used_fds[fd] = true;\n topDict.FDSelect.fds.push(fd_select[fd]);\n\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for (let subr in glyph._usedSubrs) {\n used_subrs[fd_select[fd]][subr] = true;\n }\n }\n\n for (let i = 0; i < topDict.FDArray.length; i++) {\n let dict = topDict.FDArray[i];\n delete dict.FontName;\n if (dict.Private && dict.Private.Subrs) {\n dict.Private = Object.assign({}, dict.Private);\n dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n }\n }\n\n return;\n }\n\n createCIDFontdict(topDict) {\n let used_subrs = {};\n for (let gid of this.glyphs) {\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n\n for (let subr in glyph._usedSubrs) {\n used_subrs[subr] = true;\n }\n }\n\n let privateDict = Object.assign({}, this.cff.topDict.Private);\n if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) {\n privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n }\n\n topDict.FDArray = [{ Private: privateDict }];\n return topDict.FDSelect = {\n version: 3,\n nRanges: 1,\n ranges: [{ first: 0, fd: 0 }],\n sentinel: this.charstrings.length\n };\n }\n\n addString(string) {\n if (!string) {\n return null;\n }\n\n if (!this.strings) {\n this.strings = [];\n }\n\n this.strings.push(string);\n return standardStrings.length + this.strings.length - 1;\n }\n\n encode() {\n this.subsetCharstrings();\n\n let charset = {\n version: this.charstrings.length > 255 ? 2 : 1,\n ranges: [{ first: 1, nLeft: this.charstrings.length - 2 }]\n };\n\n let topDict = Object.assign({}, this.cff.topDict);\n topDict.Private = null;\n topDict.charset = charset;\n topDict.Encoding = null;\n topDict.CharStrings = this.charstrings;\n\n for (let key of ['version', 'Notice', 'Copyright', 'FullName', 'FamilyName', 'Weight', 'PostScript', 'BaseFontName', 'FontName']) {\n topDict[key] = this.addString(this.cff.string(topDict[key]));\n }\n\n topDict.ROS = [this.addString('Adobe'), this.addString('Identity'), 0];\n topDict.CIDCount = this.charstrings.length;\n\n if (this.cff.isCIDFont) {\n this.subsetFontdict(topDict);\n } else {\n this.createCIDFontdict(topDict);\n }\n\n let top = {\n version: 1,\n hdrSize: this.cff.hdrSize,\n offSize: 4,\n header: this.cff.header,\n nameIndex: [this.cff.postscriptName],\n topDictIndex: [topDict],\n stringIndex: this.strings,\n globalSubrIndex: this.gsubrs\n };\n\n return CFFTop.toBuffer(top);\n }\n}\n","import * as r from 'restructure';\nimport { cache } from './decorators';\nimport * as fontkit from './base';\nimport Directory from './tables/directory';\nimport tables from './tables';\nimport CmapProcessor from './CmapProcessor';\nimport LayoutEngine from './layout/LayoutEngine';\nimport TTFGlyph from './glyph/TTFGlyph';\nimport CFFGlyph from './glyph/CFFGlyph';\nimport SBIXGlyph from './glyph/SBIXGlyph';\nimport COLRGlyph from './glyph/COLRGlyph';\nimport GlyphVariationProcessor from './glyph/GlyphVariationProcessor';\nimport TTFSubset from './subset/TTFSubset';\nimport CFFSubset from './subset/CFFSubset';\nimport BBox from './glyph/BBox';\nimport { asciiDecoder } from './utils';\n\n/**\n * This is the base class for all SFNT-based font formats in fontkit.\n * It supports TrueType, and PostScript glyphs, and several color glyph formats.\n */\nexport default class TTFFont {\n type = 'TTF';\n\n static probe(buffer) {\n let format = asciiDecoder.decode(buffer.slice(0, 4));\n return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n }\n\n constructor(stream, variationCoords = null) {\n this.defaultLanguage = null;\n this.stream = stream;\n this.variationCoords = variationCoords;\n\n this._directoryPos = this.stream.pos;\n this._tables = {};\n this._glyphs = {};\n this._decodeDirectory();\n\n // define properties for each table to lazily parse\n for (let tag in this.directory.tables) {\n let table = this.directory.tables[tag];\n if (tables[tag] && table.length > 0) {\n Object.defineProperty(this, tag, {\n get: this._getTable.bind(this, table)\n });\n }\n }\n }\n\n setDefaultLanguage(lang = null) {\n this.defaultLanguage = lang;\n }\n\n _getTable(table) {\n if (!(table.tag in this._tables)) {\n try {\n this._tables[table.tag] = this._decodeTable(table);\n } catch (e) {\n if (fontkit.logErrors) {\n console.error(`Error decoding table ${table.tag}`);\n console.error(e.stack);\n }\n }\n }\n\n return this._tables[table.tag];\n }\n\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n return this.stream;\n }\n\n return null;\n }\n\n _decodeDirectory() {\n return this.directory = Directory.decode(this.stream, {_startOffset: 0});\n }\n\n _decodeTable(table) {\n let pos = this.stream.pos;\n\n let stream = this._getTableStream(table.tag);\n let result = tables[table.tag].decode(stream, this, table.length);\n\n this.stream.pos = pos;\n return result;\n }\n\n /**\n * Gets a string from the font's `name` table\n * `lang` is a BCP-47 language code.\n * @return {string}\n */\n getName(key, lang = this.defaultLanguage || fontkit.defaultLanguage) {\n let record = this.name && this.name.records[key];\n if (record) {\n // Attempt to retrieve the entry, depending on which translation is available:\n return (\n record[lang]\n || record[this.defaultLanguage]\n || record[fontkit.defaultLanguage]\n || record['en']\n || record[Object.keys(record)[0]] // Seriously, ANY language would be fine\n || null\n );\n }\n\n return null;\n }\n\n /**\n * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n * @type {string}\n */\n get postscriptName() {\n return this.getName('postscriptName');\n }\n\n /**\n * The font's full name, e.g. \"Helvetica Bold\"\n * @type {string}\n */\n get fullName() {\n return this.getName('fullName');\n }\n\n /**\n * The font's family name, e.g. \"Helvetica\"\n * @type {string}\n */\n get familyName() {\n return this.getName('fontFamily');\n }\n\n /**\n * The font's sub-family, e.g. \"Bold\".\n * @type {string}\n */\n get subfamilyName() {\n return this.getName('fontSubfamily');\n }\n\n /**\n * The font's copyright information\n * @type {string}\n */\n get copyright() {\n return this.getName('copyright');\n }\n\n /**\n * The font's version number\n * @type {string}\n */\n get version() {\n return this.getName('version');\n }\n\n /**\n * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n * @type {number}\n */\n get ascent() {\n return this.hhea.ascent;\n }\n\n /**\n * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n * @type {number}\n */\n get descent() {\n return this.hhea.descent;\n }\n\n /**\n * The amount of space that should be included between lines\n * @type {number}\n */\n get lineGap() {\n return this.hhea.lineGap;\n }\n\n /**\n * The offset from the normal underline position that should be used\n * @type {number}\n */\n get underlinePosition() {\n return this.post.underlinePosition;\n }\n\n /**\n * The weight of the underline that should be used\n * @type {number}\n */\n get underlineThickness() {\n return this.post.underlineThickness;\n }\n\n /**\n * If this is an italic font, the angle the cursor should be drawn at to match the font design\n * @type {number}\n */\n get italicAngle() {\n return this.post.italicAngle;\n }\n\n /**\n * The height of capital letters above the baseline.\n * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n * @type {number}\n */\n get capHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.capHeight : this.ascent;\n }\n\n /**\n * The height of lower case letters in the font.\n * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n * @type {number}\n */\n get xHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.xHeight : 0;\n }\n\n /**\n * The number of glyphs in the font.\n * @type {number}\n */\n get numGlyphs() {\n return this.maxp.numGlyphs;\n }\n\n /**\n * The size of the font’s internal coordinate grid\n * @type {number}\n */\n get unitsPerEm() {\n return this.head.unitsPerEm;\n }\n\n /**\n * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n * @type {BBox}\n */\n @cache\n get bbox() {\n return Object.freeze(new BBox(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n }\n\n @cache\n get _cmapProcessor() {\n return new CmapProcessor(this.cmap);\n }\n\n /**\n * An array of all of the unicode code points supported by the font.\n * @type {number[]}\n */\n @cache\n get characterSet() {\n return this._cmapProcessor.getCharacterSet();\n }\n\n /**\n * Returns whether there is glyph in the font for the given unicode code point.\n *\n * @param {number} codePoint\n * @return {boolean}\n */\n hasGlyphForCodePoint(codePoint) {\n return !!this._cmapProcessor.lookup(codePoint);\n }\n\n /**\n * Maps a single unicode code point to a Glyph object.\n * Does not perform any advanced substitutions (there is no context to do so).\n *\n * @param {number} codePoint\n * @return {Glyph}\n */\n glyphForCodePoint(codePoint) {\n return this.getGlyph(this._cmapProcessor.lookup(codePoint), [codePoint]);\n }\n\n /**\n * Returns an array of Glyph objects for the given string.\n * This is only a one-to-one mapping from characters to glyphs.\n * For most uses, you should use font.layout (described below), which\n * provides a much more advanced mapping supporting AAT and OpenType shaping.\n *\n * @param {string} string\n * @return {Glyph[]}\n */\n glyphsForString(string) {\n let glyphs = [];\n let len = string.length;\n let idx = 0;\n let last = -1;\n let state = -1;\n\n while (idx <= len) {\n let code = 0;\n let nextState = 0;\n\n if (idx < len) {\n // Decode the next codepoint from UTF 16\n code = string.charCodeAt(idx++);\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n }\n }\n\n // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n nextState = ((0xfe00 <= code && code <= 0xfe0f) || (0xe0100 <= code && code <= 0xe01ef)) ? 1 : 0;\n } else {\n idx++;\n }\n\n if (state === 0 && nextState === 1) {\n // Variation selector following normal codepoint.\n glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [last, code]));\n } else if (state === 0 && nextState === 0) {\n // Normal codepoint following normal codepoint.\n glyphs.push(this.glyphForCodePoint(last));\n }\n\n last = code;\n state = nextState;\n }\n\n return glyphs;\n }\n\n @cache\n get _layoutEngine() {\n return new LayoutEngine(this);\n }\n\n /**\n * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n *\n * @param {string} string\n * @param {string[]} [userFeatures]\n * @param {string} [script]\n * @param {string} [language]\n * @param {string} [direction]\n * @return {GlyphRun}\n */\n layout(string, userFeatures, script, language, direction) {\n return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n }\n\n /**\n * Returns an array of strings that map to the given glyph id.\n * @param {number} gid - glyph id\n */\n stringsForGlyph(gid) {\n return this._layoutEngine.stringsForGlyph(gid);\n }\n\n /**\n * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n * (or mapped AAT tags) supported by the font.\n * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n *\n * @type {string[]}\n */\n get availableFeatures() {\n return this._layoutEngine.getAvailableFeatures();\n }\n\n getAvailableFeatures(script, language) {\n return this._layoutEngine.getAvailableFeatures(script, language);\n }\n\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf) {\n this._glyphs[glyph] = new TTFGlyph(glyph, characters, this);\n\n } else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) {\n this._glyphs[glyph] = new CFFGlyph(glyph, characters, this);\n }\n }\n\n return this._glyphs[glyph] || null;\n }\n\n /**\n * Returns a glyph object for the given glyph id.\n * You can pass the array of code points this glyph represents for\n * your use later, and it will be stored in the glyph object.\n *\n * @param {number} glyph\n * @param {number[]} characters\n * @return {Glyph}\n */\n getGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.sbix) {\n this._glyphs[glyph] = new SBIXGlyph(glyph, characters, this);\n\n } else if ((this.directory.tables.COLR) && (this.directory.tables.CPAL)) {\n this._glyphs[glyph] = new COLRGlyph(glyph, characters, this);\n\n } else {\n this._getBaseGlyph(glyph, characters);\n }\n }\n\n return this._glyphs[glyph] || null;\n }\n\n /**\n * Returns a Subset for this font.\n * @return {Subset}\n */\n createSubset() {\n if (this.directory.tables['CFF ']) {\n return new CFFSubset(this);\n }\n\n return new TTFSubset(this);\n }\n\n /**\n * Returns an object describing the available variation axes\n * that this font supports. Keys are setting tags, and values\n * contain the axis name, range, and default value.\n *\n * @type {object}\n */\n @cache\n get variationAxes() {\n let res = {};\n if (!this.fvar) {\n return res;\n }\n\n for (let axis of this.fvar.axis) {\n res[axis.axisTag.trim()] = {\n name: axis.name.en,\n min: axis.minValue,\n default: axis.defaultValue,\n max: axis.maxValue\n };\n }\n\n return res;\n }\n\n /**\n * Returns an object describing the named variation instances\n * that the font designer has specified. Keys are variation names\n * and values are the variation settings for this instance.\n *\n * @type {object}\n */\n @cache\n get namedVariations() {\n let res = {};\n if (!this.fvar) {\n return res;\n }\n\n for (let instance of this.fvar.instance) {\n let settings = {};\n for (let i = 0; i < this.fvar.axis.length; i++) {\n let axis = this.fvar.axis[i];\n settings[axis.axisTag.trim()] = instance.coord[i];\n }\n\n res[instance.name.en] = settings;\n }\n\n return res;\n }\n\n /**\n * Returns a new font with the given variation settings applied.\n * Settings can either be an instance name, or an object containing\n * variation tags as specified by the `variationAxes` property.\n *\n * @param {object} settings\n * @return {TTFFont}\n */\n getVariation(settings) {\n if (!(this.directory.tables.fvar && ((this.directory.tables.gvar && this.directory.tables.glyf) || this.directory.tables.CFF2))) {\n throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n }\n\n if (typeof settings === 'string') {\n settings = this.namedVariations[settings];\n }\n\n if (typeof settings !== 'object') {\n throw new Error('Variation settings must be either a variation name or settings object.');\n }\n\n // normalize the coordinates\n let coords = this.fvar.axis.map((axis, i) => {\n let axisTag = axis.axisTag.trim();\n if (axisTag in settings) {\n return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n } else {\n return axis.defaultValue;\n }\n });\n\n let stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = this._directoryPos;\n\n let font = new TTFFont(stream, coords);\n font._tables = this._tables;\n\n return font;\n }\n\n @cache\n get _variationProcessor() {\n if (!this.fvar) {\n return null;\n }\n\n let variationCoords = this.variationCoords;\n\n // Ignore if no variation coords and not CFF2\n if (!variationCoords && !this.CFF2) {\n return null;\n }\n\n if (!variationCoords) {\n variationCoords = this.fvar.axis.map(axis => axis.defaultValue);\n }\n\n return new GlyphVariationProcessor(this, variationCoords);\n }\n\n // Standardized format plugin API\n getFont(name) {\n return this.getVariation(name);\n }\n}\n","import * as r from 'restructure';\nimport tables from './';\n\nlet WOFFDirectoryEntry = new r.Struct({\n tag: new r.String(4),\n offset: new r.Pointer(r.uint32, 'void', {type: 'global'}),\n compLength: r.uint32,\n length: r.uint32,\n origChecksum: r.uint32\n});\n\nlet WOFFDirectory = new r.Struct({\n tag: new r.String(4), // should be 'wOFF'\n flavor: r.uint32,\n length: r.uint32,\n numTables: r.uint16,\n reserved: new r.Reserved(r.uint16),\n totalSfntSize: r.uint32,\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n metaOffset: r.uint32,\n metaLength: r.uint32,\n metaOrigLength: r.uint32,\n privOffset: r.uint32,\n privLength: r.uint32,\n tables: new r.Array(WOFFDirectoryEntry, 'numTables')\n});\n\nWOFFDirectory.process = function() {\n let tables = {};\n for (let table of this.tables) {\n tables[table.tag] = table;\n }\n\n this.tables = tables;\n};\n\nexport default WOFFDirectory;\n","import TTFGlyph from './TTFGlyph';\n\n/**\n * Represents a TrueType glyph in the WOFF2 format, which compresses glyphs differently.\n */\nexport default class WOFF2Glyph extends TTFGlyph {\n type = 'WOFF2';\n\n _decode() {\n // We have to decode in advance (in WOFF2Font), so just return the pre-decoded data.\n return this._font._transformedGlyphs[this.id];\n }\n\n _getCBox() {\n return this.path.bbox;\n }\n}\n","import * as r from 'restructure';\n\nconst Base128 = {\n decode(stream) {\n let result = 0;\n let iterable = [0, 1, 2, 3, 4];\n for (let j = 0; j < iterable.length; j++) {\n let i = iterable[j];\n let code = stream.readUInt8();\n\n // If any of the top seven bits are set then we're about to overflow.\n if (result & 0xe0000000) {\n throw new Error('Overflow');\n }\n\n result = (result << 7) | (code & 0x7f);\n if ((code & 0x80) === 0) {\n return result;\n }\n }\n\n throw new Error('Bad base 128 number');\n }\n};\n\nlet knownTags = [\n 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'OS/2', 'post', 'cvt ',\n 'fpgm', 'glyf', 'loca', 'prep', 'CFF ', 'VORG', 'EBDT', 'EBLC', 'gasp',\n 'hdmx', 'kern', 'LTSH', 'PCLT', 'VDMX', 'vhea', 'vmtx', 'BASE', 'GDEF',\n 'GPOS', 'GSUB', 'EBSC', 'JSTF', 'MATH', 'CBDT', 'CBLC', 'COLR', 'CPAL',\n 'SVG ', 'sbix', 'acnt', 'avar', 'bdat', 'bloc', 'bsln', 'cvar', 'fdsc',\n 'feat', 'fmtx', 'fvar', 'gvar', 'hsty', 'just', 'lcar', 'mort', 'morx',\n 'opbd', 'prop', 'trak', 'Zapf', 'Silf', 'Glat', 'Gloc', 'Feat', 'Sill'\n];\n\nlet WOFF2DirectoryEntry = new r.Struct({\n flags: r.uint8,\n customTag: new r.Optional(new r.String(4), t => (t.flags & 0x3f) === 0x3f),\n tag: t => t.customTag || knownTags[t.flags & 0x3f],// || (() => { throw new Error(`Bad tag: ${flags & 0x3f}`); })(); },\n length: Base128,\n transformVersion: t => (t.flags >>> 6) & 0x03,\n transformed: t => (t.tag === 'glyf' || t.tag === 'loca') ? t.transformVersion === 0 : t.transformVersion !== 0,\n transformLength: new r.Optional(Base128, t => t.transformed)\n});\n\nlet WOFF2Directory = new r.Struct({\n tag: new r.String(4), // should be 'wOF2'\n flavor: r.uint32,\n length: r.uint32,\n numTables: r.uint16,\n reserved: new r.Reserved(r.uint16),\n totalSfntSize: r.uint32,\n totalCompressedSize: r.uint32,\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n metaOffset: r.uint32,\n metaLength: r.uint32,\n metaOrigLength: r.uint32,\n privOffset: r.uint32,\n privLength: r.uint32,\n tables: new r.Array(WOFF2DirectoryEntry, 'numTables')\n});\n\nWOFF2Directory.process = function() {\n let tables = {};\n for (let i = 0; i < this.tables.length; i++) {\n let table = this.tables[i];\n tables[table.tag] = table;\n }\n\n return this.tables = tables;\n};\n\nexport default WOFF2Directory;\n","import * as r from 'restructure';\nimport brotli from 'brotli/decompress.js';\nimport TTFFont from './TTFFont';\nimport TTFGlyph, { Point } from './glyph/TTFGlyph';\nimport WOFF2Glyph from './glyph/WOFF2Glyph';\nimport WOFF2Directory from './tables/WOFF2Directory';\nimport { asciiDecoder } from './utils';\n\n/**\n * Subclass of TTFFont that represents a TTF/OTF font compressed by WOFF2\n * See spec here: http://www.w3.org/TR/WOFF2/\n */\nexport default class WOFF2Font extends TTFFont {\n type = 'WOFF2';\n\n static probe(buffer) {\n return asciiDecoder.decode(buffer.slice(0, 4)) === 'wOF2';\n }\n\n _decodeDirectory() {\n this.directory = WOFF2Directory.decode(this.stream);\n this._dataPos = this.stream.pos;\n }\n\n _decompress() {\n // decompress data and setup table offsets if we haven't already\n if (!this._decompressed) {\n this.stream.pos = this._dataPos;\n let buffer = this.stream.readBuffer(this.directory.totalCompressedSize);\n\n let decompressedSize = 0;\n for (let tag in this.directory.tables) {\n let entry = this.directory.tables[tag];\n entry.offset = decompressedSize;\n decompressedSize += (entry.transformLength != null) ? entry.transformLength : entry.length;\n }\n\n let decompressed = brotli(buffer, decompressedSize);\n if (!decompressed) {\n throw new Error('Error decoding compressed data in WOFF2');\n }\n\n this.stream = new r.DecodeStream(decompressed);\n this._decompressed = true;\n }\n }\n\n _decodeTable(table) {\n this._decompress();\n return super._decodeTable(table);\n }\n\n // Override this method to get a glyph and return our\n // custom subclass if there is a glyf table.\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {\n if (!this._transformedGlyphs) { this._transformGlyfTable(); }\n return this._glyphs[glyph] = new WOFF2Glyph(glyph, characters, this);\n\n } else {\n return super._getBaseGlyph(glyph, characters);\n }\n }\n }\n\n _transformGlyfTable() {\n this._decompress();\n this.stream.pos = this.directory.tables.glyf.offset;\n let table = GlyfTable.decode(this.stream);\n let glyphs = [];\n\n for (let index = 0; index < table.numGlyphs; index++) {\n let glyph = {};\n let nContours = table.nContours.readInt16BE();\n glyph.numberOfContours = nContours;\n\n if (nContours > 0) { // simple glyph\n let nPoints = [];\n let totalPoints = 0;\n\n for (let i = 0; i < nContours; i++) {\n let r = read255UInt16(table.nPoints);\n totalPoints += r;\n nPoints.push(totalPoints);\n }\n\n glyph.points = decodeTriplet(table.flags, table.glyphs, totalPoints);\n for (let i = 0; i < nContours; i++) {\n glyph.points[nPoints[i] - 1].endContour = true;\n }\n\n var instructionSize = read255UInt16(table.glyphs);\n\n } else if (nContours < 0) { // composite glyph\n let haveInstructions = TTFGlyph.prototype._decodeComposite.call({ _font: this }, glyph, table.composites);\n if (haveInstructions) {\n var instructionSize = read255UInt16(table.glyphs);\n }\n }\n\n glyphs.push(glyph);\n }\n\n this._transformedGlyphs = glyphs;\n }\n}\n\n// Special class that accepts a length and returns a sub-stream for that data\nclass Substream {\n constructor(length) {\n this.length = length;\n this._buf = new r.Buffer(length);\n }\n\n decode(stream, parent) {\n return new r.DecodeStream(this._buf.decode(stream, parent));\n }\n}\n\n// This struct represents the entire glyf table\nlet GlyfTable = new r.Struct({\n version: r.uint32,\n numGlyphs: r.uint16,\n indexFormat: r.uint16,\n nContourStreamSize: r.uint32,\n nPointsStreamSize: r.uint32,\n flagStreamSize: r.uint32,\n glyphStreamSize: r.uint32,\n compositeStreamSize: r.uint32,\n bboxStreamSize: r.uint32,\n instructionStreamSize: r.uint32,\n nContours: new Substream('nContourStreamSize'),\n nPoints: new Substream('nPointsStreamSize'),\n flags: new Substream('flagStreamSize'),\n glyphs: new Substream('glyphStreamSize'),\n composites: new Substream('compositeStreamSize'),\n bboxes: new Substream('bboxStreamSize'),\n instructions: new Substream('instructionStreamSize')\n});\n\nconst WORD_CODE = 253;\nconst ONE_MORE_BYTE_CODE2 = 254;\nconst ONE_MORE_BYTE_CODE1 = 255;\nconst LOWEST_U_CODE = 253;\n\nfunction read255UInt16(stream) {\n let code = stream.readUInt8();\n\n if (code === WORD_CODE) {\n return stream.readUInt16BE();\n }\n\n if (code === ONE_MORE_BYTE_CODE1) {\n return stream.readUInt8() + LOWEST_U_CODE;\n }\n\n if (code === ONE_MORE_BYTE_CODE2) {\n return stream.readUInt8() + LOWEST_U_CODE * 2;\n }\n\n return code;\n}\n\nfunction withSign(flag, baseval) {\n return flag & 1 ? baseval : -baseval;\n}\n\nfunction decodeTriplet(flags, glyphs, nPoints) {\n let y;\n let x = y = 0;\n let res = [];\n\n for (let i = 0; i < nPoints; i++) {\n let dx = 0, dy = 0;\n let flag = flags.readUInt8();\n let onCurve = !(flag >> 7);\n flag &= 0x7f;\n\n if (flag < 10) {\n dx = 0;\n dy = withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());\n\n } else if (flag < 20) {\n dx = withSign(flag, (((flag - 10) & 14) << 7) + glyphs.readUInt8());\n dy = 0;\n\n } else if (flag < 84) {\n var b0 = flag - 20;\n var b1 = glyphs.readUInt8();\n dx = withSign(flag, 1 + (b0 & 0x30) + (b1 >> 4));\n dy = withSign(flag >> 1, 1 + ((b0 & 0x0c) << 2) + (b1 & 0x0f));\n\n } else if (flag < 120) {\n var b0 = flag - 84;\n dx = withSign(flag, 1 + ((b0 / 12) << 8) + glyphs.readUInt8());\n dy = withSign(flag >> 1, 1 + (((b0 % 12) >> 2) << 8) + glyphs.readUInt8());\n\n } else if (flag < 124) {\n var b1 = glyphs.readUInt8();\n let b2 = glyphs.readUInt8();\n dx = withSign(flag, (b1 << 4) + (b2 >> 4));\n dy = withSign(flag >> 1, ((b2 & 0x0f) << 8) + glyphs.readUInt8());\n\n } else {\n dx = withSign(flag, glyphs.readUInt16BE());\n dy = withSign(flag >> 1, glyphs.readUInt16BE());\n }\n\n x += dx;\n y += dy;\n res.push(new Point(onCurve, false, x, y));\n }\n\n return res;\n}\n","import * as r from 'restructure';\nimport TTFFont from './TTFFont';\nimport Directory from './tables/directory';\nimport tables from './tables';\nimport { asciiDecoder } from './utils';\n\nlet TTCHeader = new r.VersionedStruct(r.uint32, {\n 0x00010000: {\n numFonts: r.uint32,\n offsets: new r.Array(r.uint32, 'numFonts')\n },\n 0x00020000: {\n numFonts: r.uint32,\n offsets: new r.Array(r.uint32, 'numFonts'),\n dsigTag: r.uint32,\n dsigLength: r.uint32,\n dsigOffset: r.uint32\n }\n});\n\nexport default class TrueTypeCollection {\n type = 'TTC';\n\n static probe(buffer) {\n return asciiDecoder.decode(buffer.slice(0, 4)) === 'ttcf';\n }\n\n constructor(stream) {\n this.stream = stream;\n if (stream.readString(4) !== 'ttcf') {\n throw new Error('Not a TrueType collection');\n }\n\n this.header = TTCHeader.decode(stream);\n }\n\n getFont(name) {\n for (let offset of this.header.offsets) {\n let stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = offset;\n let font = new TTFFont(stream);\n if (\n font.postscriptName === name ||\n (\n font.postscriptName instanceof Uint8Array && \n name instanceof Uint8Array && \n font.postscriptName.every((v, i) => name[i] === v)\n )\n ) {\n return font;\n }\n }\n\n return null;\n }\n\n get fonts() {\n let fonts = [];\n for (let offset of this.header.offsets) {\n let stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = offset;\n fonts.push(new TTFFont(stream));\n }\n\n return fonts;\n }\n}\n","import * as r from 'restructure';\nimport TTFFont from './TTFFont';\n\nlet DFontName = new r.String(r.uint8);\nlet DFontData = new r.Struct({\n len: r.uint32,\n buf: new r.Buffer('len')\n});\n\nlet Ref = new r.Struct({\n id: r.uint16,\n nameOffset: r.int16,\n attr: r.uint8,\n dataOffset: r.uint24,\n handle: r.uint32\n});\n\nlet Type = new r.Struct({\n name: new r.String(4),\n maxTypeIndex: r.uint16,\n refList: new r.Pointer(r.uint16, new r.Array(Ref, t => t.maxTypeIndex + 1), { type: 'parent' })\n});\n\nlet TypeList = new r.Struct({\n length: r.uint16,\n types: new r.Array(Type, t => t.length + 1)\n});\n\nlet DFontMap = new r.Struct({\n reserved: new r.Reserved(r.uint8, 24),\n typeList: new r.Pointer(r.uint16, TypeList),\n nameListOffset: new r.Pointer(r.uint16, 'void')\n});\n\nlet DFontHeader = new r.Struct({\n dataOffset: r.uint32,\n map: new r.Pointer(r.uint32, DFontMap),\n dataLength: r.uint32,\n mapLength: r.uint32\n});\n\nexport default class DFont {\n type = 'DFont';\n\n static probe(buffer) {\n let stream = new r.DecodeStream(buffer);\n\n try {\n var header = DFontHeader.decode(stream);\n } catch (e) {\n return false;\n }\n\n for (let type of header.map.typeList.types) {\n if (type.name === 'sfnt') {\n return true;\n }\n }\n\n return false;\n }\n\n constructor(stream) {\n this.stream = stream;\n this.header = DFontHeader.decode(this.stream);\n\n for (let type of this.header.map.typeList.types) {\n for (let ref of type.refList) {\n if (ref.nameOffset >= 0) {\n this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n ref.name = DFontName.decode(this.stream);\n } else {\n ref.name = null;\n }\n }\n\n if (type.name === 'sfnt') {\n this.sfnt = type;\n }\n }\n }\n\n getFont(name) {\n if (!this.sfnt) {\n return null;\n }\n\n for (let ref of this.sfnt.refList) {\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n let font = new TTFFont(stream);\n if (\n font.postscriptName === name ||\n (\n font.postscriptName instanceof Uint8Array && \n name instanceof Uint8Array && \n font.postscriptName.every((v, i) => name[i] === v)\n )\n ) {\n return font;\n }\n }\n\n return null;\n }\n\n get fonts() {\n let fonts = [];\n for (let ref of this.sfnt.refList) {\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n fonts.push(new TTFFont(stream));\n }\n\n return fonts;\n }\n}\n","import { registerFormat, create, defaultLanguage, setDefaultLanguage } from './base';\nimport TTFFont from './TTFFont';\nimport WOFFFont from './WOFFFont';\nimport WOFF2Font from './WOFF2Font';\nimport TrueTypeCollection from './TrueTypeCollection';\nimport DFont from './DFont';\n\n// Register font formats\nregisterFormat(TTFFont);\nregisterFormat(WOFFFont);\nregisterFormat(WOFF2Font);\nregisterFormat(TrueTypeCollection);\nregisterFormat(DFont);\n\nexport * from './base';\n","import TTFFont from './TTFFont';\nimport WOFFDirectory from './tables/WOFFDirectory';\nimport tables from './tables';\nimport inflate from 'tiny-inflate';\nimport * as r from 'restructure';\nimport { asciiDecoder } from './utils';\n\nexport default class WOFFFont extends TTFFont {\n type = 'WOFF';\n\n static probe(buffer) {\n return asciiDecoder.decode(buffer.slice(0, 4)) === 'wOFF';\n }\n\n _decodeDirectory() {\n this.directory = WOFFDirectory.decode(this.stream, { _startOffset: 0 });\n }\n\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n\n if (table.compLength < table.length) {\n this.stream.pos += 2; // skip deflate header\n let outBuffer = new Uint8Array(table.length);\n let buf = inflate(this.stream.readBuffer(table.compLength - 2), outBuffer);\n return new r.DecodeStream(buf);\n } else {\n return this.stream;\n }\n }\n\n return null;\n }\n}\n","import 'is-url';\nimport fetch from 'cross-fetch';\nimport * as fontkit from 'fontkit';\n\n/* eslint-disable max-classes-per-file */\n\nconst FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n ultralight: 200,\n extralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n demibold: 600,\n bold: 700,\n ultrabold: 800,\n extrabold: 800,\n heavy: 900,\n black: 900\n};\nconst fetchFont = async (src, options) => {\n const response = await fetch(src, options);\n const data = await response.arrayBuffer();\n return new Uint8Array(data);\n};\nconst isDataUrl = dataUrl => {\n const header = dataUrl.split(',')[0];\n const hasDataPrefix = header.substring(0, 5) === 'data:';\n const hasBase64Prefix = header.split(';')[1] === 'base64';\n return hasDataPrefix && hasBase64Prefix;\n};\nconst resolveFontWeight = value => {\n return typeof value === 'string' ? FONT_WEIGHTS[value] : value;\n};\nconst sortByFontWeight = (a, b) => a.fontWeight - b.fontWeight;\nclass FontSource {\n constructor(src, fontFamily, fontStyle, fontWeight, options) {\n this.src = src;\n this.fontFamily = fontFamily;\n this.fontStyle = fontStyle || 'normal';\n this.fontWeight = fontWeight || 400;\n this.data = null;\n this.options = options;\n this.loadResultPromise = null;\n }\n async _load() {\n const {\n postscriptName\n } = this.options;\n if (isDataUrl(this.src)) {\n const raw = this.src.split(',')[1];\n const uint8Array = new Uint8Array(atob(raw).split('').map(c => c.charCodeAt(0)));\n this.data = fontkit.create(uint8Array, postscriptName);\n } else {\n const {\n headers,\n body,\n method = 'GET'\n } = this.options;\n const data = await fetchFont(this.src, {\n method,\n body,\n headers\n });\n this.data = fontkit.create(data, postscriptName);\n }\n }\n async load() {\n if (this.loadResultPromise === null) {\n this.loadResultPromise = this._load();\n }\n return this.loadResultPromise;\n }\n}\nclass Font {\n static create(family) {\n return new Font(family);\n }\n constructor(family) {\n this.family = family;\n this.sources = [];\n }\n register(_ref) {\n let {\n src,\n fontWeight,\n fontStyle,\n ...options\n } = _ref;\n const numericFontWeight = resolveFontWeight(fontWeight);\n this.sources.push(new FontSource(src, this.family, fontStyle, numericFontWeight, options));\n }\n resolve(descriptor) {\n const {\n fontWeight = 400,\n fontStyle = 'normal'\n } = descriptor;\n const styleSources = this.sources.filter(s => s.fontStyle === fontStyle);\n\n // Weight resolution. https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\n const exactFit = styleSources.find(s => s.fontWeight === fontWeight);\n if (exactFit) return exactFit;\n let res;\n if (fontWeight >= 400 && fontWeight <= 500) {\n const leftOffset = styleSources.filter(s => s.fontWeight <= fontWeight);\n const rightOffset = styleSources.filter(s => s.fontWeight > 500);\n const fit = styleSources.filter(s => s.fontWeight >= fontWeight && s.fontWeight < 500);\n res = fit[0] || leftOffset[leftOffset.length - 1] || rightOffset[0];\n }\n const lt = styleSources.filter(s => s.fontWeight < fontWeight).sort(sortByFontWeight);\n const gt = styleSources.filter(s => s.fontWeight > fontWeight).sort(sortByFontWeight);\n if (fontWeight < 400) {\n res = lt[lt.length - 1] || gt[0];\n }\n if (fontWeight > 500) {\n res = gt[0] || lt[lt.length - 1];\n }\n if (!res) {\n throw new Error(`Could not resolve font for ${this.family}, fontWeight ${fontWeight}`);\n }\n return res;\n }\n}\n\nvar standard = ['Courier', 'Courier-Bold', 'Courier-Oblique', 'Courier-BoldOblique', 'Helvetica', 'Helvetica-Bold', 'Helvetica-Oblique', 'Helvetica-BoldOblique', 'Times-Roman', 'Times-Bold', 'Times-Italic', 'Times-BoldItalic'];\n\nfunction FontStore() {\n let fonts = {};\n let emojiSource = null;\n let hyphenationCallback = null;\n this.register = data => {\n const {\n family\n } = data;\n if (!fonts[family]) {\n fonts[family] = Font.create(family);\n }\n\n // Bulk loading\n if (data.fonts) {\n for (let i = 0; i < data.fonts.length; i += 1) {\n fonts[family].register({\n family,\n ...data.fonts[i]\n });\n }\n } else {\n fonts[family].register(data);\n }\n };\n this.registerEmojiSource = _ref => {\n let {\n url,\n format = 'png',\n builder,\n withVariationSelectors = false\n } = _ref;\n emojiSource = {\n url,\n format,\n builder,\n withVariationSelectors\n };\n };\n this.registerHyphenationCallback = callback => {\n hyphenationCallback = callback;\n };\n this.getFont = descriptor => {\n const {\n fontFamily\n } = descriptor;\n const isStandard = standard.includes(fontFamily);\n if (isStandard) return null;\n if (!fonts[fontFamily]) {\n throw new Error(`Font family not registered: ${fontFamily}. Please register it calling Font.register() method.`);\n }\n return fonts[fontFamily].resolve(descriptor);\n };\n this.load = async descriptor => {\n const {\n fontFamily\n } = descriptor;\n const fontFamilies = typeof fontFamily === 'string' ? [fontFamily] : [...(fontFamily || [])];\n const promises = [];\n for (let len = fontFamilies.length, i = 0; i < len; i += 1) {\n const family = fontFamilies[i];\n const isStandard = standard.includes(family);\n if (isStandard) return;\n const f = this.getFont({\n ...descriptor,\n fontFamily: family\n });\n promises.push(f.load());\n }\n await Promise.all(promises);\n };\n this.reset = () => {\n const keys = Object.keys(fonts);\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n fonts[key].data = null;\n }\n };\n this.clear = () => {\n fonts = {};\n };\n this.getRegisteredFonts = () => fonts;\n this.getEmojiSource = () => emojiSource;\n this.getHyphenationCallback = () => hyphenationCallback;\n this.getRegisteredFontFamilies = () => Object.keys(fonts);\n}\n\nexport { FontStore as default };\n","/**\n * Applies a function to the value at the given index of an array\n\n * @param {number} index\n * @param {function} fn\n * @param {array} collection\n * @returns copy of the array with the element at the given index replaced with the result of the function application.\n */\nconst adjust = (index, fn, collection) => {\n if (index >= 0 && index >= collection.length) return collection;\n if (index < 0 && Math.abs(index) > collection.length) return collection;\n const i = index < 0 ? collection.length + index : index;\n return Object.assign([], collection, {\n [i]: fn(collection[i])\n });\n};\n\n/**\n * Reverses the list\n *\n * @template {unknown} T\n * @param {T[]} list list to be reversed\n * @returns {T[]} reversed list\n */\nconst reverse = list => Array.prototype.slice.call(list, 0).reverse();\n\n/* eslint-disable no-await-in-loop */\n\n\n/**\n * @typedef {Function} AsyncCompose\n * @param {any} value\n * @param {...any} args\n * @returns {any} result\n */\n\n/**\n * Performs right-to-left function composition with async functions support\n *\n * @param {...Function} fns functions\n * @returns {AsyncCompose} composed function\n */\nconst asyncCompose = function () {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return async function (value) {\n let result = value;\n const reversedFns = reverse(fns);\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n for (let i = 0; i < reversedFns.length; i += 1) {\n const fn = reversedFns[i];\n result = await fn(result, ...args);\n }\n return result;\n };\n};\n\n/**\n * Capitalize first letter of each word\n *\n * @param {string} value string\n * @returns {string} capitalized string\n */\nconst capitalize = value => {\n if (!value) return value;\n return value.replace(/(^|\\s)\\S/g, l => l.toUpperCase());\n};\n\n/**\n * Casts value to array\n *\n * @template T\n * @param {T|T[]} value value\n * @returns {T[]} array\n */\nconst castArray = value => {\n return Array.isArray(value) ? value : [value];\n};\n\n/* eslint-disable no-await-in-loop */\n\n\n/**\n * @typedef {Function} Compose\n * @param {any} value\n * @param {...any} args\n * @returns {any} result\n */\n\n/**\n * Performs right-to-left function composition\n *\n * @param {...Function} fns functions\n * @returns {Compose} composed function\n */\nconst compose = function () {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (value) {\n let result = value;\n const reversedFns = reverse(fns);\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n for (let i = 0; i < reversedFns.length; i += 1) {\n const fn = reversedFns[i];\n result = fn(result, ...args);\n }\n return result;\n };\n};\n\n/**\n * Drops the last element from an array.\n *\n * @template T\n * @param {T[]} array the array to drop the last element from\n * @returns {T[]} the new array with the last element dropped\n */\nconst dropLast = array => array.slice(0, array.length - 1);\n\n/**\n * Applies a set of transformations to an object and returns a new object with the transformed values.\n *\n * @template T\n * @param {Record T | Record T>>} transformations - The transformations to apply.\n * @param {T} object the object to transform.\n * @returns {T} the transformed object.\n */\nconst evolve = (transformations, object) => {\n const result = object instanceof Array ? [] : {};\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n const transformation = transformations[key];\n const type = typeof transformation;\n if (type === 'function') {\n result[key] = transformation(object[key]);\n } else if (transformation && type === 'object') {\n result[key] = evolve(transformation, object[key]);\n } else {\n result[key] = object[key];\n }\n }\n return result;\n};\n\n/**\n * Checks if a value is null or undefined.\n *\n * @template {unknown} T\n * @param {T} value the value to check\n * @returns {T is null | undefined} true if the value is null or undefined, false otherwise\n */\nconst isNil = value => value === null || value === undefined;\n\n/**\n * Retrieves the value at a given path from an object.\n *\n * @param {object} target the object to retrieve the value from.\n * @param {string | string[]} path the path of the value to retrieve.\n * @param {*} defaultValue the default value to return if the path does not exist.\n * @returns {*} the value at the given path, or the default value if the path does not exist.\n */\nconst get = (target, path, defaultValue) => {\n if (isNil(target)) return defaultValue;\n const _path = castArray(path);\n let result = target;\n for (let i = 0; i < _path.length; i += 1) {\n if (isNil(result)) return undefined;\n result = result[_path[i]];\n }\n return isNil(result) ? defaultValue : result;\n};\n\n/**\n * Returns the last character of a string.\n *\n * @param {string} value the input string\n * @returns {string} the last character of the string\n */\nconst last = value => {\n return value === '' ? '' : value[value.length - 1];\n};\n\n/**\n * Maps over the values of an object and applies a function to each value.\n *\n * @param {Object} object the object to map over\n * @param {Function} fn the function to apply to each value\n * @returns {Object} a new object with the mapped values\n */\nconst mapValues = (object, fn) => {\n const entries = Object.entries(object);\n return entries.reduce((acc, _ref, index) => {\n let [key, value] = _ref;\n acc[key] = fn(value, key, index);\n return acc;\n }, {});\n};\n\n/**\n * @param {string | number} value\n * @returns {RegExpExecArray | null} match\n */\nconst isPercent = value => /((-)?\\d+\\.?\\d*)%/g.exec(`${value}`);\n\n/**\n * Get percentage value of input\n *\n * @param {string | number} value\n * @returns {{ percent: number, value: number } | null} percent value (if matches)\n */\nconst matchPercent = value => {\n const match = isPercent(value);\n if (match) {\n const f = parseFloat(match[1]);\n const percent = f / 100;\n return {\n percent,\n value: f\n };\n }\n return null;\n};\n\n/**\n * Creates a new object by omitting specified keys from the original object.\n *\n * @param {string|string[]} keys the key or keys to omit\n * @param {object} object the original object\n * @returns {object} the new object without the omitted keys\n */\nconst omit = (keys, object) => {\n const _keys = castArray(keys);\n const copy = Object.assign({}, object);\n _keys.forEach(key => {\n delete copy[key];\n });\n return copy;\n};\n\n/**\n * Picks the specified keys from an object and returns a new object with only those keys.\n *\n * @param {string[]} keys the keys to pick from the object\n * @param {object} obj the object to pick the keys from\n * @returns {object} a new object with only the picked keys\n */\nconst pick = (keys, obj) => {\n const result = {};\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n if (key in obj) result[key] = obj[key];\n }\n return result;\n};\n\n/**\n * Repeats an element a specified number of times.\n *\n * @template {unknown} T\n * @param {T} element element to be repeated\n * @param {number} length number of times to repeat element\n * @returns {T[]} repeated elements\n */\nconst repeat = function (elem, length) {\n if (length === void 0) {\n length = 0;\n }\n const result = new Array(length);\n for (let i = 0; i < length; i += 1) {\n result[i] = elem;\n }\n return result;\n};\n\n/**\n * Capitalize first letter of string\n *\n * @param {string} value string\n * @returns {string} capitalized string\n */\nconst upperFirst = value => {\n if (!value) return value;\n return value.charAt(0).toUpperCase() + value.slice(1);\n};\n\nexport { adjust, asyncCompose, capitalize, castArray, compose, dropLast, evolve, get, isNil, last, mapValues, matchPercent, omit, pick, repeat, reverse, upperFirst };\n","var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = _slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\nexport default arcToBezier;","import arcToCurve from 'svg-arc-to-cubic-bezier'\r\n\r\nexport default function normalize(path){\r\n // init state\r\n var prev\r\n var result = []\r\n var bezierX = 0\r\n var bezierY = 0\r\n var startX = 0\r\n var startY = 0\r\n var quadX = null\r\n var quadY = null\r\n var x = 0\r\n var y = 0\r\n\r\n for (var i = 0, len = path.length; i < len; i++) {\r\n var seg = path[i]\r\n var command = seg[0]\r\n\r\n switch (command) {\r\n case 'M':\r\n startX = seg[1]\r\n startY = seg[2]\r\n break\r\n case 'A':\r\n var curves = arcToCurve({\r\n px: x,\r\n py: y,\r\n cx: seg[6],\r\n cy: seg[7],\r\n rx: seg[1],\r\n ry: seg[2],\r\n xAxisRotation: seg[3],\r\n largeArcFlag: seg[4],\r\n sweepFlag: seg[5]\r\n })\r\n\r\n // null-curves\r\n if (!curves.length) continue\r\n\r\n for (var j = 0, c; j < curves.length; j++) {\r\n c = curves[j]\r\n seg = ['C', c.x1, c.y1, c.x2, c.y2, c.x, c.y]\r\n if (j < curves.length - 1) result.push(seg)\r\n }\r\n\r\n break\r\n case 'S':\r\n // default control point\r\n var cx = x\r\n var cy = y\r\n if (prev == 'C' || prev == 'S') {\r\n cx += cx - bezierX // reflect the previous command's control\r\n cy += cy - bezierY // point relative to the current point\r\n }\r\n seg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]\r\n break\r\n case 'T':\r\n if (prev == 'Q' || prev == 'T') {\r\n quadX = x * 2 - quadX // as with 'S' reflect previous control point\r\n quadY = y * 2 - quadY\r\n } else {\r\n quadX = x\r\n quadY = y\r\n }\r\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2])\r\n break\r\n case 'Q':\r\n quadX = seg[1]\r\n quadY = seg[2]\r\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4])\r\n break\r\n case 'L':\r\n seg = line(x, y, seg[1], seg[2])\r\n break\r\n case 'H':\r\n seg = line(x, y, seg[1], y)\r\n break\r\n case 'V':\r\n seg = line(x, y, x, seg[1])\r\n break\r\n case 'Z':\r\n seg = line(x, y, startX, startY)\r\n break\r\n }\r\n\r\n // update state\r\n prev = command\r\n x = seg[seg.length - 2]\r\n y = seg[seg.length - 1]\r\n if (seg.length > 4) {\r\n bezierX = seg[seg.length - 4]\r\n bezierY = seg[seg.length - 3]\r\n } else {\r\n bezierX = x\r\n bezierY = y\r\n }\r\n result.push(seg)\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction line(x1, y1, x2, y2){\r\n return ['C', x1, y1, x2, y2, x2, y2]\r\n}\r\n\r\nfunction quadratic(x1, y1, cx, cy, x2, y2){\r\n return [\r\n 'C',\r\n x1/3 + (2/3) * cx,\r\n y1/3 + (2/3) * cy,\r\n x2/3 + (2/3) * cx,\r\n y2/3 + (2/3) * cy,\r\n x2,\r\n y2\r\n ]\r\n}\r\n","import * as P from '@react-pdf/primitives';\nimport { isNil, matchPercent } from '@react-pdf/fns';\nimport absPath from 'abs-svg-path';\nimport parsePath from 'parse-svg-path';\nimport normalizePath from 'normalize-svg-path';\nimport colorString from 'color-string';\n\nconst renderPath = (ctx, node) => {\n var _node$props;\n const d = (_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.d;\n if (d) ctx.path(node.props.d);\n};\n\nconst KAPPA$3 = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nconst renderRect = (ctx, node) => {\n var _node$props, _node$props2, _node$props3, _node$props4, _node$props5, _node$props6;\n const x = ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.x) || 0;\n const y = ((_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.y) || 0;\n const rx = ((_node$props3 = node.props) === null || _node$props3 === void 0 ? void 0 : _node$props3.rx) || 0;\n const ry = ((_node$props4 = node.props) === null || _node$props4 === void 0 ? void 0 : _node$props4.ry) || 0;\n const width = ((_node$props5 = node.props) === null || _node$props5 === void 0 ? void 0 : _node$props5.width) || 0;\n const height = ((_node$props6 = node.props) === null || _node$props6 === void 0 ? void 0 : _node$props6.height) || 0;\n if (!width || !height) return;\n if (rx && ry) {\n const krx = rx * KAPPA$3;\n const kry = ry * KAPPA$3;\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x - rx + width, y);\n ctx.bezierCurveTo(x - rx + width + krx, y, x + width, y + ry - kry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + kry, x - rx + width + krx, y + height, x - rx + width, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - krx, y + height, x, y + height - ry + kry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - kry, x + rx - krx, y, x + rx, y);\n } else {\n ctx.moveTo(x, y);\n ctx.lineTo(x + width, y);\n ctx.lineTo(x + width, y + height);\n ctx.lineTo(x, y + height);\n }\n ctx.closePath();\n};\n\nconst renderLine$1 = (ctx, node) => {\n const {\n x1,\n x2,\n y1,\n y2\n } = node.props || {};\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n};\n\nconst renderGroup = () => {\n // noop\n};\n\nconst KAPPA$2 = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nconst drawEllipse = function (ctx, cx, cy, rx, ry) {\n if (cx === void 0) {\n cx = 0;\n }\n if (cy === void 0) {\n cy = 0;\n }\n const x = cx - rx;\n const y = cy - ry;\n const ox = rx * KAPPA$2;\n const oy = ry * KAPPA$2;\n const xe = x + rx * 2;\n const ye = y + ry * 2;\n const xm = x + rx;\n const ym = y + ry;\n ctx.moveTo(x, ym);\n ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n ctx.closePath();\n};\nconst renderEllipse = (ctx, node) => {\n const {\n cx,\n cy,\n rx,\n ry\n } = node.props || {};\n drawEllipse(ctx, cx, cy, rx, ry);\n};\n\nconst renderCircle = (ctx, node) => {\n var _node$props, _node$props2, _node$props3;\n const cx = (_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.cx;\n const cy = (_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.cy;\n const r = (_node$props3 = node.props) === null || _node$props3 === void 0 ? void 0 : _node$props3.r;\n drawEllipse(ctx, cx, cy, r, r);\n};\n\nconst renderGlyphs = function (ctx, glyphs, positions, x, y, options) {\n if (options === void 0) {\n options = {};\n }\n const scale = 1000 / ctx._fontSize;\n const unitsPerEm = ctx._font.font.unitsPerEm || 1000;\n const advanceWidthScale = 1000 / unitsPerEm;\n\n // Glyph encoding and positioning\n const encodedGlyphs = ctx._font.encodeGlyphs(glyphs);\n const encodedPositions = positions.map((pos, i) => ({\n xAdvance: pos.xAdvance * scale,\n yAdvance: pos.yAdvance * scale,\n xOffset: pos.xOffset,\n yOffset: pos.yOffset,\n advanceWidth: glyphs[i].advanceWidth * advanceWidthScale\n }));\n return ctx._glyphs(encodedGlyphs, encodedPositions, x, y, options);\n};\n\nconst renderRun$1 = (ctx, run) => {\n const runAdvanceWidth = run.xAdvance;\n const {\n font,\n fontSize,\n color,\n opacity\n } = run.attributes;\n ctx.fillColor(color);\n ctx.fillOpacity(opacity);\n if (font.sbix || font.COLR && font.CPAL) {\n ctx.save();\n ctx.translate(0, -run.ascent);\n for (let i = 0; i < run.glyphs.length; i += 1) {\n const position = run.positions[i];\n const glyph = run.glyphs[i];\n ctx.save();\n ctx.translate(position.xOffset, position.yOffset);\n glyph.render(ctx, fontSize);\n ctx.restore();\n ctx.translate(position.xAdvance, position.yAdvance);\n }\n ctx.restore();\n } else {\n ctx.font(typeof font.name === 'string' ? font.name : font, fontSize);\n try {\n renderGlyphs(ctx, run.glyphs, run.positions, 0, 0);\n } catch (error) {\n console.log(error);\n }\n }\n ctx.translate(runAdvanceWidth, 0);\n};\nconst renderSpan = (ctx, line, textAnchor, dominantBaseline) => {\n var _line$box, _line$box2, _line$runs$, _line$runs$2, _line$runs$2$attribut;\n ctx.save();\n const x = ((_line$box = line.box) === null || _line$box === void 0 ? void 0 : _line$box.x) || 0;\n const y = ((_line$box2 = line.box) === null || _line$box2 === void 0 ? void 0 : _line$box2.y) || 0;\n const font = (_line$runs$ = line.runs[0]) === null || _line$runs$ === void 0 ? void 0 : _line$runs$.attributes.font;\n const scale = ((_line$runs$2 = line.runs[0]) === null || _line$runs$2 === void 0 ? void 0 : (_line$runs$2$attribut = _line$runs$2.attributes) === null || _line$runs$2$attribut === void 0 ? void 0 : _line$runs$2$attribut.scale) || 1;\n const width = line.xAdvance;\n const ascent = font.ascent * scale;\n const xHeight = font.xHeight * scale;\n const descent = font.descent * scale;\n const capHeight = font.capHeight * scale;\n let xTranslate = x;\n let yTranslate = y;\n switch (textAnchor) {\n case 'middle':\n xTranslate = x - width / 2;\n break;\n case 'end':\n xTranslate = x - width;\n break;\n default:\n xTranslate = x;\n break;\n }\n switch (dominantBaseline) {\n case 'middle':\n case 'central':\n yTranslate = y + capHeight / 2;\n break;\n case 'hanging':\n yTranslate = y + capHeight;\n break;\n case 'mathematical':\n yTranslate = y + xHeight;\n break;\n case 'text-after-edge':\n yTranslate = y + descent;\n break;\n case 'text-before-edge':\n yTranslate = y + ascent;\n break;\n default:\n yTranslate = y;\n break;\n }\n ctx.translate(xTranslate, yTranslate);\n line.runs.forEach(run => renderRun$1(ctx, run));\n ctx.restore();\n};\nconst renderSvgText = (ctx, node) => {\n node.children.forEach(span => renderSpan(ctx, span.lines[0], span.props.textAnchor, span.props.dominantBaseline));\n};\n\n/**\n * Create pairs from array\n *\n * @template T\n * @param {T[]} values array\n * @returns {T[][]} pairs\n */\nconst pairs = values => {\n const result = [];\n for (let i = 0; i < values.length; i += 2) {\n result.push([values[i], values[i + 1]]);\n }\n return result;\n};\n\n/**\n * Parse svg-like points into number arrays\n *\n * @param {string} points string ex. \"20,30 50,60\"\n * @returns {number[][]} points array ex. [[20, 30], [50, 60]]\n */\nconst parsePoints = points => {\n let values = (points || '').trim().replace(/,/g, ' ').replace(/(\\d)-(\\d)/g, '$1 -$2').split(/\\s+/);\n if (values.length % 2 !== 0) {\n values = values.slice(0, -1);\n }\n const mappedValues = values.map(parseFloat);\n return pairs(mappedValues);\n};\n\nconst drawPolyline = (ctx, points) => {\n if (points.length > 0) {\n ctx.moveTo(points[0][0], points[0][1]);\n points.slice(1).forEach(p => ctx.lineTo(p[0], p[1]));\n }\n};\nconst renderPolyline = (ctx, node) => {\n const points = parsePoints(node.props.points || '');\n drawPolyline(ctx, points);\n};\n\nconst renderPolygon = (ctx, node) => {\n renderPolyline(ctx, node);\n ctx.closePath();\n};\n\nconst renderImage$1 = (ctx, node) => {\n if (!node.image.data) return;\n const {\n x,\n y\n } = node.props;\n const {\n width,\n height,\n opacity\n } = node.style;\n const paddingTop = node.box.paddingLeft || 0;\n const paddingLeft = node.box.paddingLeft || 0;\n if (width === 0 || height === 0) {\n console.warn(`Image with src '${node.props.href}' skipped due to invalid dimensions`);\n return;\n }\n ctx.save();\n ctx.fillOpacity(opacity || 1).image(node.image.data, x + paddingLeft, y + paddingTop, {\n width,\n height\n });\n ctx.restore();\n};\n\n// This constant is used to approximate a symmetrical arc using a cubic\n// Bezier curve.\nconst KAPPA$1 = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nconst clipNode = (ctx, node) => {\n if (!node.style) return;\n const {\n top,\n left,\n width,\n height\n } = node.box;\n const {\n borderTopLeftRadius = 0,\n borderTopRightRadius = 0,\n borderBottomRightRadius = 0,\n borderBottomLeftRadius = 0\n } = node.style;\n\n // Border top\n const rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height);\n const ctr = rtr * (1.0 - KAPPA$1);\n ctx.moveTo(left + rtr, top);\n ctx.lineTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - ctr, top, left + width, top + ctr, left + width, top + rtr);\n\n // Border right\n const rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height);\n const cbr = rbr * (1.0 - KAPPA$1);\n ctx.lineTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - cbr, left + width - cbr, top + height, left + width - rbr, top + height);\n\n // Border bottom\n const rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height);\n const cbl = rbl * (1.0 - KAPPA$1);\n ctx.lineTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + cbl, top + height, left, top + height - cbl, left, top + height - rbl);\n\n // Border left\n const rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height);\n const ctl = rtl * (1.0 - KAPPA$1);\n ctx.lineTo(left, top + rtl);\n ctx.bezierCurveTo(left, top + ctl, left + ctl, top, left + rtl, top);\n ctx.closePath();\n ctx.clip();\n};\n\nconst applySingleTransformation = (ctx, transform, origin) => {\n const {\n operation,\n value\n } = transform;\n switch (operation) {\n case 'scale':\n {\n const [scaleX, scaleY] = value;\n ctx.scale(scaleX, scaleY, {\n origin\n });\n break;\n }\n case 'rotate':\n {\n const [angle] = value;\n ctx.rotate(angle, {\n origin\n });\n break;\n }\n case 'translate':\n {\n const [x, y = 0] = value;\n ctx.translate(x, y, {\n origin\n });\n break;\n }\n case 'skew':\n {\n const [xAngle, yAngle] = value;\n ctx.skew(xAngle, yAngle, {\n origin\n });\n break;\n }\n case 'matrix':\n {\n ctx.transform(...value);\n break;\n }\n default:\n {\n console.error(`Transform operation: '${operation}' doesn't supported`);\n }\n }\n};\nconst applyTransformations = (ctx, node) => {\n var _node$style, _node$props;\n if (!node.origin) return;\n const origin = [node.origin.left, node.origin.top];\n const operations = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.transform) || ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.transform) || [];\n operations.forEach(operation => {\n applySingleTransformation(ctx, operation, origin);\n });\n};\n\n// From https://github.com/dy/svg-path-bounds/blob/master/index.js\nconst getPathBoundingBox = node => {\n var _node$props;\n const path = normalizePath(absPath(parsePath(((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.d) || '')));\n if (!path.length) return [0, 0, 0, 0];\n const bounds = [Infinity, Infinity, -Infinity, -Infinity];\n for (let i = 0, l = path.length; i < l; i += 1) {\n const points = path[i].slice(1);\n for (let j = 0; j < points.length; j += 2) {\n if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0];\n if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1];\n if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0];\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1];\n }\n }\n return bounds;\n};\nconst getCircleBoundingBox = node => {\n var _node$props2, _node$props3, _node$props4;\n const r = ((_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.r) || 0;\n const cx = ((_node$props3 = node.props) === null || _node$props3 === void 0 ? void 0 : _node$props3.cx) || 0;\n const cy = ((_node$props4 = node.props) === null || _node$props4 === void 0 ? void 0 : _node$props4.cy) || 0;\n return [cx - r, cy - r, cx + r, cy + r];\n};\nconst getEllipseBoundingBox = node => {\n var _node$props5, _node$props6, _node$props7, _node$props8;\n const cx = ((_node$props5 = node.props) === null || _node$props5 === void 0 ? void 0 : _node$props5.cx) || 0;\n const cy = ((_node$props6 = node.props) === null || _node$props6 === void 0 ? void 0 : _node$props6.cy) || 0;\n const rx = ((_node$props7 = node.props) === null || _node$props7 === void 0 ? void 0 : _node$props7.rx) || 0;\n const ry = ((_node$props8 = node.props) === null || _node$props8 === void 0 ? void 0 : _node$props8.ry) || 0;\n return [cx - rx, cy - ry, cx + rx, cy + ry];\n};\nconst getLineBoundingBox = node => {\n var _node$props9, _node$props10, _node$props11, _node$props12;\n const x1 = ((_node$props9 = node.props) === null || _node$props9 === void 0 ? void 0 : _node$props9.x1) || 0;\n const y1 = ((_node$props10 = node.props) === null || _node$props10 === void 0 ? void 0 : _node$props10.y1) || 0;\n const x2 = ((_node$props11 = node.props) === null || _node$props11 === void 0 ? void 0 : _node$props11.x2) || 0;\n const y2 = ((_node$props12 = node.props) === null || _node$props12 === void 0 ? void 0 : _node$props12.y2) || 0;\n return [Math.min(x1, x2), Math.min(y1, y2), Math.max(x1, x2), Math.max(y1, y2)];\n};\nconst getRectBoundingBox = node => {\n var _node$props13, _node$props14, _node$props15, _node$props16;\n const x = ((_node$props13 = node.props) === null || _node$props13 === void 0 ? void 0 : _node$props13.x) || 0;\n const y = ((_node$props14 = node.props) === null || _node$props14 === void 0 ? void 0 : _node$props14.y) || 0;\n const width = ((_node$props15 = node.props) === null || _node$props15 === void 0 ? void 0 : _node$props15.width) || 0;\n const height = ((_node$props16 = node.props) === null || _node$props16 === void 0 ? void 0 : _node$props16.height) || 0;\n return [x, y, x + width, y + height];\n};\nconst max = values => Math.max(-Infinity, ...values);\nconst min = values => Math.min(Infinity, ...values);\nconst getPolylineBoundingBox = node => {\n var _node$props17;\n const points = parsePoints(((_node$props17 = node.props) === null || _node$props17 === void 0 ? void 0 : _node$props17.points) || []);\n const xValues = points.map(p => p[0]);\n const yValues = points.map(p => p[1]);\n return [min(xValues), min(yValues), max(xValues), max(yValues)];\n};\nconst boundingBoxFns = {\n [P.Rect]: getRectBoundingBox,\n [P.Line]: getLineBoundingBox,\n [P.Path]: getPathBoundingBox,\n [P.Circle]: getCircleBoundingBox,\n [P.Ellipse]: getEllipseBoundingBox,\n [P.Polygon]: getPolylineBoundingBox,\n [P.Polyline]: getPolylineBoundingBox\n};\nconst getBoundingBox = node => {\n const boundingBoxFn = boundingBoxFns[node.type];\n return boundingBoxFn ? boundingBoxFn(node) : [0, 0, 0, 0];\n};\n\nconst setStrokeWidth = (ctx, node) => {\n var _node$props;\n const lineWidth = ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.strokeWidth) || 0;\n if (lineWidth) ctx.lineWidth(lineWidth);\n};\nconst setStrokeColor = (ctx, node) => {\n var _node$props2;\n const strokeColor = ((_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.stroke) || null;\n if (strokeColor) ctx.strokeColor(strokeColor);\n};\nconst setOpacity = (ctx, node) => {\n var _node$props3;\n const opacity = ((_node$props3 = node.props) === null || _node$props3 === void 0 ? void 0 : _node$props3.opacity) || null;\n if (!isNil(opacity)) ctx.opacity(opacity);\n};\nconst setFillOpacity = (ctx, node) => {\n var _node$props4;\n const fillOpacity = ((_node$props4 = node.props) === null || _node$props4 === void 0 ? void 0 : _node$props4.fillOpacity) || null;\n if (!isNil(fillOpacity)) ctx.fillOpacity(fillOpacity);\n};\nconst setStrokeOpacity = (ctx, node) => {\n var _node$props5;\n const strokeOpacity = ((_node$props5 = node.props) === null || _node$props5 === void 0 ? void 0 : _node$props5.strokeOpacity) || null;\n if (!isNil(strokeOpacity)) ctx.strokeOpacity(strokeOpacity);\n};\nconst setLineJoin = (ctx, node) => {\n var _node$props6;\n const lineJoin = ((_node$props6 = node.props) === null || _node$props6 === void 0 ? void 0 : _node$props6.strokeLinejoin) || null;\n if (lineJoin) ctx.lineJoin(lineJoin);\n};\nconst setLineCap = (ctx, node) => {\n var _node$props7;\n const lineCap = ((_node$props7 = node.props) === null || _node$props7 === void 0 ? void 0 : _node$props7.strokeLinecap) || null;\n if (lineCap) ctx.lineCap(lineCap);\n};\nconst setLineDash = (ctx, node) => {\n var _node$props8;\n const value = ((_node$props8 = node.props) === null || _node$props8 === void 0 ? void 0 : _node$props8.strokeDasharray) || null;\n if (value) ctx.dash(value.split(',').map(Number));\n};\nconst hasLinearGradientFill = node => {\n var _node$props9, _node$props9$fill;\n return ((_node$props9 = node.props) === null || _node$props9 === void 0 ? void 0 : (_node$props9$fill = _node$props9.fill) === null || _node$props9$fill === void 0 ? void 0 : _node$props9$fill.type) === P.LinearGradient;\n};\nconst hasRadialGradientFill = node => {\n var _node$props10, _node$props10$fill;\n return ((_node$props10 = node.props) === null || _node$props10 === void 0 ? void 0 : (_node$props10$fill = _node$props10.fill) === null || _node$props10$fill === void 0 ? void 0 : _node$props10$fill.type) === P.RadialGradient;\n};\n\n// Math simplified from https://github.com/devongovett/svgkit/blob/master/src/elements/SVGGradient.js#L104\nconst setLinearGradientFill = (ctx, node) => {\n var _node$props11;\n const bbox = getBoundingBox(node);\n const gradient = ((_node$props11 = node.props) === null || _node$props11 === void 0 ? void 0 : _node$props11.fill) || null;\n const x1 = gradient.props.x1 || 0;\n const y1 = gradient.props.y1 || 0;\n const x2 = gradient.props.x2 || 1;\n const y2 = gradient.props.y2 || 0;\n const m0 = bbox[2] - bbox[0];\n const m3 = bbox[3] - bbox[1];\n const m4 = bbox[0];\n const m5 = bbox[1];\n const gx1 = m0 * x1 + m4;\n const gy1 = m3 * y1 + m5;\n const gx2 = m0 * x2 + m4;\n const gy2 = m3 * y2 + m5;\n const grad = ctx.linearGradient(gx1, gy1, gx2, gy2);\n gradient.children.forEach(stop => {\n grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);\n });\n ctx.fill(grad);\n};\n\n// Math simplified from https://github.com/devongovett/svgkit/blob/master/src/elements/SVGGradient.js#L155\nconst setRadialGradientFill = (ctx, node) => {\n var _node$props12;\n const bbox = getBoundingBox(node);\n const gradient = ((_node$props12 = node.props) === null || _node$props12 === void 0 ? void 0 : _node$props12.fill) || null;\n const cx = gradient.props.cx || 0.5;\n const cy = gradient.props.cy || 0.5;\n const fx = gradient.props.fx || cx;\n const fy = gradient.props.fy || cy;\n const r = gradient.props.r || 0.5;\n const m0 = bbox[2] - bbox[0];\n const m3 = bbox[3] - bbox[1];\n const m4 = bbox[0];\n const m5 = bbox[1];\n const gr = r * m0;\n const gcx = m0 * cx + m4;\n const gcy = m3 * cy + m5;\n const gfx = m0 * fx + m4;\n const gfy = m3 * fy + m5;\n const grad = ctx.radialGradient(gfx, gfy, 0, gcx, gcy, gr);\n gradient.children.forEach(stop => {\n grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);\n });\n ctx.fill(grad);\n};\nconst setFillColor = (ctx, node) => {\n var _node$props13;\n const fillColor = ((_node$props13 = node.props) === null || _node$props13 === void 0 ? void 0 : _node$props13.fill) || null;\n if (fillColor) ctx.fillColor(fillColor);\n};\nconst setFill = (ctx, node) => {\n if (hasLinearGradientFill(node)) return setLinearGradientFill(ctx, node);\n if (hasRadialGradientFill(node)) return setRadialGradientFill(ctx, node);\n return setFillColor(ctx, node);\n};\nconst draw = (ctx, node) => {\n const props = node.props || {};\n if (props.fill && props.stroke) {\n ctx.fillAndStroke(props.fillRule);\n } else if (props.fill) {\n ctx.fill(props.fillRule);\n } else if (props.stroke) {\n ctx.stroke();\n } else {\n ctx.save();\n ctx.opacity(0);\n ctx.fill(null);\n ctx.restore();\n }\n};\nconst noop = () => {};\nconst renderFns$1 = {\n [P.Tspan]: noop,\n [P.TextInstance]: noop,\n [P.Path]: renderPath,\n [P.Rect]: renderRect,\n [P.Line]: renderLine$1,\n [P.G]: renderGroup,\n [P.Text]: renderSvgText,\n [P.Circle]: renderCircle,\n [P.Image]: renderImage$1,\n [P.Ellipse]: renderEllipse,\n [P.Polygon]: renderPolygon,\n [P.Polyline]: renderPolyline\n};\nconst renderNode$1 = (ctx, node) => {\n const renderFn = renderFns$1[node.type];\n if (renderFn) {\n renderFn(ctx, node);\n } else {\n console.warn(`SVG node of type ${node.type} is not currently supported`);\n }\n};\nconst drawNode = (ctx, node) => {\n setLineCap(ctx, node);\n setLineDash(ctx, node);\n setLineJoin(ctx, node);\n setStrokeWidth(ctx, node);\n setStrokeColor(ctx, node);\n setFill(ctx, node);\n setStrokeOpacity(ctx, node);\n setFillOpacity(ctx, node);\n setOpacity(ctx, node);\n applyTransformations(ctx, node);\n renderNode$1(ctx, node);\n draw(ctx, node);\n};\nconst clipPath = (ctx, node) => {\n var _node$props14;\n const value = (_node$props14 = node.props) === null || _node$props14 === void 0 ? void 0 : _node$props14.clipPath;\n if (value) {\n const children = value.children || [];\n children.forEach(child => renderNode$1(ctx, child));\n ctx.clip();\n }\n};\nconst drawChildren = (ctx, node) => {\n const children = node.children || [];\n children.forEach(child => {\n ctx.save();\n clipPath(ctx, child);\n drawNode(ctx, child);\n drawChildren(ctx, child);\n ctx.restore();\n });\n};\nconst resolveAspectRatio = (ctx, node) => {\n const {\n width,\n height\n } = node.box;\n const {\n viewBox,\n preserveAspectRatio = {}\n } = node.props;\n const {\n meetOrSlice = 'meet',\n align = 'xMidYMid'\n } = preserveAspectRatio;\n if (viewBox == null || width == null || height == null) return;\n const x = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.minX) || 0;\n const y = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.minY) || 0;\n const logicalWidth = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.maxX) || width;\n const logicalHeight = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.maxY) || height;\n const logicalRatio = logicalWidth / logicalHeight;\n const physicalRatio = width / height;\n const scaleX = width / logicalWidth;\n const scaleY = height / logicalHeight;\n if (align === 'none') {\n ctx.scale(scaleX, scaleY);\n ctx.translate(-x, -y);\n return;\n }\n if (logicalRatio < physicalRatio && meetOrSlice === 'meet' || logicalRatio >= physicalRatio && meetOrSlice === 'slice') {\n ctx.scale(scaleY, scaleY);\n switch (align) {\n case 'xMinYMin':\n case 'xMinYMid':\n case 'xMinYMax':\n ctx.translate(-x, -y);\n break;\n case 'xMidYMin':\n case 'xMidYMid':\n case 'xMidYMax':\n ctx.translate(-x - (logicalWidth - width * logicalHeight / height) / 2, -y);\n break;\n default:\n ctx.translate(-x - (logicalWidth - width * logicalHeight / height), -y);\n }\n } else {\n ctx.scale(scaleX, scaleX);\n switch (align) {\n case 'xMinYMin':\n case 'xMidYMin':\n case 'xMaxYMin':\n ctx.translate(-x, -y);\n break;\n case 'xMinYMid':\n case 'xMidYMid':\n case 'xMaxYMid':\n ctx.translate(-x, -y - (logicalHeight - height * logicalWidth / width) / 2);\n break;\n default:\n ctx.translate(-x, -y - (logicalHeight - height * logicalWidth / width));\n }\n }\n};\nconst moveToOrigin = (ctx, node) => {\n const {\n top,\n left\n } = node.box;\n const paddingLeft = node.box.paddingLeft || 0;\n const paddingTop = node.box.paddingTop || 0;\n ctx.translate(left + paddingLeft, top + paddingTop);\n};\nconst renderSvg = (ctx, node) => {\n ctx.save();\n clipNode(ctx, node);\n moveToOrigin(ctx, node);\n resolveAspectRatio(ctx, node);\n drawChildren(ctx, node);\n ctx.restore();\n};\n\nconst black = {\n value: [0, 0, 0],\n opacity: 1\n};\nconst parseColor = hex => {\n const parsed = colorString.get(hex);\n if (!parsed) return black;\n const value = colorString.to.hex(parsed.value.slice(0, 3));\n const opacity = parsed.value[3];\n return {\n value,\n opacity\n };\n};\n\n/* eslint-disable no-param-reassign */\nconst DEST_REGEXP = /^#.+/;\nconst isSrcId$1 = src => src.match(DEST_REGEXP);\nconst renderAttachment = (ctx, attachment) => {\n const {\n xOffset = 0,\n yOffset = 0,\n width,\n height,\n image\n } = attachment;\n ctx.translate(-width + xOffset, -height + yOffset);\n ctx.image(image, 0, 0, {\n fit: [width, height],\n align: 'center',\n valign: 'bottom'\n });\n};\nconst renderAttachments = (ctx, run) => {\n ctx.save();\n const {\n font\n } = run.attributes;\n const space = font.glyphForCodePoint(0x20);\n const objectReplacement = font.glyphForCodePoint(0xfffc);\n let attachmentAdvance = 0;\n for (let i = 0; i < run.glyphs.length; i += 1) {\n const position = run.positions[i];\n const glyph = run.glyphs[i];\n attachmentAdvance += position.xAdvance || 0;\n if (glyph.id === objectReplacement.id && run.attributes.attachment) {\n ctx.translate(attachmentAdvance, position.yOffset || 0);\n renderAttachment(ctx, run.attributes.attachment);\n run.glyphs[i] = space;\n attachmentAdvance = 0;\n }\n }\n ctx.restore();\n};\nconst renderRun = (ctx, run, options) => {\n const {\n font,\n fontSize,\n link\n } = run.attributes;\n const color = parseColor(run.attributes.color);\n const opacity = isNil(run.attributes.opacity) ? color.opacity : run.attributes.opacity;\n const {\n height,\n descent,\n xAdvance\n } = run;\n if (options.outlineRuns) {\n ctx.rect(0, -height, xAdvance, height).stroke();\n }\n ctx.fillColor(color.value);\n ctx.fillOpacity(opacity);\n if (link) {\n if (isSrcId$1(link)) {\n ctx.goTo(0, -height - descent, xAdvance, height, link.slice(1));\n } else {\n ctx.link(0, -height - descent, xAdvance, height, link);\n }\n }\n renderAttachments(ctx, run);\n if (font.sbix || font.COLR && font.CPAL) {\n ctx.save();\n ctx.translate(0, -run.ascent);\n for (let i = 0; i < run.glyphs.length; i += 1) {\n const position = run.positions[i];\n const glyph = run.glyphs[i];\n ctx.save();\n ctx.translate(position.xOffset, position.yOffset);\n glyph.render(ctx, fontSize);\n ctx.restore();\n ctx.translate(position.xAdvance, position.yAdvance);\n }\n ctx.restore();\n } else {\n ctx.font(typeof font.name === 'string' ? font.name : font, fontSize);\n try {\n renderGlyphs(ctx, run.glyphs, run.positions, 0, 0);\n } catch (error) {\n console.log(error);\n }\n }\n ctx.translate(xAdvance, 0);\n};\nconst renderBackground$1 = (ctx, rect, backgroundColor) => {\n const color = parseColor(backgroundColor);\n ctx.save();\n ctx.fillOpacity(color.opacity);\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n ctx.fill(color.value);\n ctx.restore();\n};\nconst renderDecorationLine = (ctx, line) => {\n ctx.save();\n ctx.lineWidth(line.rect.height);\n ctx.strokeOpacity(line.opacity);\n if (/dashed/.test(line.style)) {\n ctx.dash(3 * line.rect.height);\n } else if (/dotted/.test(line.style)) {\n ctx.dash(line.rect.height);\n }\n if (/wavy/.test(line.style)) {\n const dist = Math.max(2, line.rect.height);\n let step = 1.1 * dist;\n const stepCount = Math.floor(line.rect.width / (2 * step));\n\n // Adjust step to fill entire width\n const remainingWidth = line.rect.width - stepCount * 2 * step;\n const adjustment = remainingWidth / stepCount / 2;\n step += adjustment;\n const cp1y = line.rect.y + dist;\n const cp2y = line.rect.y - dist;\n let {\n x\n } = line.rect;\n ctx.moveTo(line.rect.x, line.rect.y);\n for (let i = 0; i < stepCount; i += 1) {\n ctx.bezierCurveTo(x + step, cp1y, x + step, cp2y, x + 2 * step, line.rect.y);\n x += 2 * step;\n }\n } else {\n ctx.moveTo(line.rect.x, line.rect.y);\n ctx.lineTo(line.rect.x + line.rect.width, line.rect.y);\n if (/double/.test(line.style)) {\n ctx.moveTo(line.rect.x, line.rect.y + line.rect.height * 2);\n ctx.lineTo(line.rect.x + line.rect.width, line.rect.y + line.rect.height * 2);\n }\n }\n ctx.stroke(line.color);\n ctx.restore();\n};\nconst renderLine = (ctx, line, options) => {\n const lineAscent = line.ascent;\n if (options.outlineLines) {\n ctx.rect(line.box.x, line.box.y, line.box.width, line.box.height).stroke();\n }\n ctx.save();\n ctx.translate(line.box.x, line.box.y + lineAscent);\n for (let i = 0; i < line.runs.length; i += 1) {\n const run = line.runs[i];\n const isLastRun = i === line.runs.length - 1;\n if (run.attributes.backgroundColor) {\n const overflowRight = isLastRun ? line.overflowRight : 0;\n const backgroundRect = {\n x: 0,\n y: -lineAscent,\n height: line.box.height,\n width: run.xAdvance - overflowRight\n };\n renderBackground$1(ctx, backgroundRect, run.attributes.backgroundColor);\n }\n renderRun(ctx, run, options);\n }\n ctx.restore();\n ctx.save();\n ctx.translate(line.box.x, line.box.y);\n for (let i = 0; i < line.decorationLines.length; i += 1) {\n const decorationLine = line.decorationLines[i];\n renderDecorationLine(ctx, decorationLine);\n }\n ctx.restore();\n};\nconst renderBlock = (ctx, block, options) => {\n block.forEach(line => {\n renderLine(ctx, line, options);\n });\n};\nconst renderText = (ctx, node) => {\n var _node$box, _node$box2;\n const {\n top,\n left\n } = node.box;\n const blocks = [node.lines];\n const paddingTop = ((_node$box = node.box) === null || _node$box === void 0 ? void 0 : _node$box.paddingTop) || 0;\n const paddingLeft = ((_node$box2 = node.box) === null || _node$box2 === void 0 ? void 0 : _node$box2.paddingLeft) || 0;\n const initialY = node.lines[0] ? node.lines[0].box.y : 0;\n const offsetX = node.alignOffset || 0;\n ctx.save();\n ctx.translate(left + paddingLeft - offsetX, top + paddingTop - initialY);\n blocks.forEach(block => {\n renderBlock(ctx, block, {});\n });\n ctx.restore();\n};\n\nconst renderPage = (ctx, node) => {\n var _node$props;\n const {\n width,\n height\n } = node.box;\n const dpi = ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.dpi) || 72;\n const userUnit = dpi / 72;\n ctx.addPage({\n size: [width, height],\n margin: 0,\n userUnit\n });\n};\n\nconst renderNote = (ctx, node) => {\n var _node$children, _node$style, _node$style2;\n const {\n top,\n left\n } = node.box;\n const value = (node === null || node === void 0 ? void 0 : (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children[0].value) || '';\n const color = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.backgroundColor) || null;\n const borderWidth = ((_node$style2 = node.style) === null || _node$style2 === void 0 ? void 0 : _node$style2.borderWidth) || null;\n ctx.note(left, top, 0, 0, value, {\n color,\n borderWidth\n });\n};\n\nconst isNumeric = n => {\n return !Number.isNaN(parseFloat(n)) && Number.isFinite(n);\n};\nconst applyContainObjectFit = (cw, ch, iw, ih, px, py) => {\n const cr = cw / ch;\n const ir = iw / ih;\n const pxp = matchPercent(px);\n const pyp = matchPercent(py);\n const pxv = pxp ? pxp.percent : 0.5;\n const pyv = pyp ? pyp.percent : 0.5;\n if (cr > ir) {\n const height = ch;\n const width = height * ir;\n const yOffset = isNumeric(py) ? py : 0;\n const xOffset = isNumeric(px) ? px : (cw - width) * pxv;\n return {\n width,\n height,\n xOffset,\n yOffset\n };\n }\n const width = cw;\n const height = width / ir;\n const xOffset = isNumeric(px) ? px : 0;\n const yOffset = isNumeric(py) ? py : (ch - height) * pyv;\n return {\n width,\n height,\n yOffset,\n xOffset\n };\n};\nconst applyNoneObjectFit = (cw, ch, iw, ih, px, py) => {\n const width = iw;\n const height = ih;\n const pxp = matchPercent(px);\n const pyp = matchPercent(py);\n const pxv = pxp ? pxp.percent : 0.5;\n const pyv = pyp ? pyp.percent : 0.5;\n const xOffset = isNumeric(px) ? px : (cw - width) * pxv;\n const yOffset = isNumeric(py) ? py : (ch - height) * pyv;\n return {\n width,\n height,\n xOffset,\n yOffset\n };\n};\nconst applyCoverObjectFit = (cw, ch, iw, ih, px, py) => {\n const ir = iw / ih;\n const cr = cw / ch;\n const pxp = matchPercent(px);\n const pyp = matchPercent(py);\n const pxv = pxp ? pxp.percent : 0.5;\n const pyv = pyp ? pyp.percent : 0.5;\n if (cr > ir) {\n const width = cw;\n const height = width / ir;\n const xOffset = isNumeric(px) ? px : 0;\n const yOffset = isNumeric(py) ? py : (ch - height) * pyv;\n return {\n width,\n height,\n yOffset,\n xOffset\n };\n }\n const height = ch;\n const width = height * ir;\n const xOffset = isNumeric(px) ? px : (cw - width) * pxv;\n const yOffset = isNumeric(py) ? py : 0;\n return {\n width,\n height,\n xOffset,\n yOffset\n };\n};\nconst applyScaleDownObjectFit = (cw, ch, iw, ih, px, py) => {\n const containDimension = applyContainObjectFit(cw, ch, iw, ih, px, py);\n const noneDimension = applyNoneObjectFit(cw, ch, iw, ih, px, py);\n return containDimension.width < noneDimension.width ? containDimension : noneDimension;\n};\nconst applyFillObjectFit = (cw, ch, px, py) => {\n return {\n width: cw,\n height: ch,\n xOffset: matchPercent(px) ? 0 : px || 0,\n yOffset: matchPercent(py) ? 0 : py || 0\n };\n};\nconst resolveObjectFit = function (type, cw, ch, iw, ih, px, py) {\n if (type === void 0) {\n type = 'fill';\n }\n switch (type) {\n case 'contain':\n return applyContainObjectFit(cw, ch, iw, ih, px, py);\n case 'cover':\n return applyCoverObjectFit(cw, ch, iw, ih, px, py);\n case 'none':\n return applyNoneObjectFit(cw, ch, iw, ih, px, py);\n case 'scale-down':\n return applyScaleDownObjectFit(cw, ch, iw, ih, px, py);\n default:\n return applyFillObjectFit(cw, ch, px, py);\n }\n};\n\nconst drawImage = function (ctx, node, options) {\n var _node$style, _node$style2, _node$style3, _node$style4;\n if (options === void 0) {\n options = {};\n }\n const {\n left,\n top\n } = node.box;\n const opacity = (_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.opacity;\n const objectFit = (_node$style2 = node.style) === null || _node$style2 === void 0 ? void 0 : _node$style2.objectFit;\n const objectPositionX = (_node$style3 = node.style) === null || _node$style3 === void 0 ? void 0 : _node$style3.objectPositionX;\n const objectPositionY = (_node$style4 = node.style) === null || _node$style4 === void 0 ? void 0 : _node$style4.objectPositionY;\n const paddingTop = node.box.paddingTop || 0;\n const paddingRight = node.box.paddingRight || 0;\n const paddingBottom = node.box.paddingBottom || 0;\n const paddingLeft = node.box.paddingLeft || 0;\n const imageCache = options.imageCache || new Map();\n const {\n width,\n height,\n xOffset,\n yOffset\n } = resolveObjectFit(objectFit, node.box.width - paddingLeft - paddingRight, node.box.height - paddingTop - paddingBottom, node.image.width, node.image.height, objectPositionX, objectPositionY);\n if (node.image.data) {\n if (width !== 0 && height !== 0) {\n const cacheKey = node.image.key;\n const image = imageCache.get(cacheKey) || ctx.embedImage(node.image.data);\n if (cacheKey) imageCache.set(cacheKey, image);\n const imageOpacity = isNil(opacity) ? 1 : opacity;\n ctx.fillOpacity(imageOpacity).image(image, left + paddingLeft + xOffset, top + paddingTop + yOffset, {\n width,\n height\n });\n } else {\n console.warn(`Image with src '${JSON.stringify(node.props.src)}' skipped due to invalid dimensions`);\n }\n }\n};\nconst renderImage = (ctx, node, options) => {\n ctx.save();\n clipNode(ctx, node);\n drawImage(ctx, node, options);\n ctx.restore();\n};\n\nconst CONTENT_COLOR = '#a1c6e7';\nconst PADDING_COLOR = '#c4deb9';\nconst MARGIN_COLOR = '#f8cca1';\n\n// TODO: Draw debug boxes using clipping to enhance quality\n\nconst debugContent = (ctx, node) => {\n const {\n left,\n top,\n width,\n height,\n paddingLeft = 0,\n paddingTop = 0,\n paddingRight = 0,\n paddingBottom = 0,\n borderLeftWidth = 0,\n borderTopWidth = 0,\n borderRightWidth = 0,\n borderBottomWidth = 0\n } = node.box;\n ctx.fillColor(CONTENT_COLOR).opacity(0.5).rect(left + paddingLeft + borderLeftWidth, top + paddingTop + borderTopWidth, width - paddingLeft - paddingRight - borderRightWidth - borderLeftWidth, height - paddingTop - paddingBottom - borderTopWidth - borderBottomWidth).fill();\n};\nconst debugPadding = (ctx, node) => {\n const {\n left,\n top,\n width,\n height,\n paddingLeft = 0,\n paddingTop = 0,\n paddingRight = 0,\n paddingBottom = 0,\n borderLeftWidth = 0,\n borderTopWidth = 0,\n borderRightWidth = 0,\n borderBottomWidth = 0\n } = node.box;\n ctx.fillColor(PADDING_COLOR).opacity(0.5);\n\n // Padding top\n ctx.rect(left + paddingLeft + borderLeftWidth, top + borderTopWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingTop).fill();\n\n // Padding left\n ctx.rect(left + borderLeftWidth, top + borderTopWidth, paddingLeft, height - borderTopWidth - borderBottomWidth).fill();\n\n // Padding right\n ctx.rect(left + width - paddingRight - borderRightWidth, top + borderTopWidth, paddingRight, height - borderTopWidth - borderBottomWidth).fill();\n\n // Padding bottom\n ctx.rect(left + paddingLeft + borderLeftWidth, top + height - paddingBottom - borderBottomWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingBottom).fill();\n};\nconst getMargin = box => {\n const marginLeft = box.marginLeft === 'auto' ? 0 : box.marginLeft;\n const marginTop = box.marginTop === 'auto' ? 0 : box.marginTop;\n const marginRight = box.marginRight === 'auto' ? 0 : box.marginRight;\n const marginBottom = box.marginBottom === 'auto' ? 0 : box.marginBottom;\n return {\n marginLeft,\n marginTop,\n marginRight,\n marginBottom\n };\n};\nconst debugMargin = (ctx, node) => {\n const {\n left,\n top,\n width,\n height\n } = node.box;\n const {\n marginLeft = 0,\n marginTop = 0,\n marginRight = 0,\n marginBottom = 0\n } = getMargin(node.box);\n ctx.fillColor(MARGIN_COLOR).opacity(0.5);\n\n // Margin top\n ctx.rect(left, top - marginTop, width, marginTop).fill();\n\n // Margin left\n ctx.rect(left - marginLeft, top - marginTop, marginLeft, height + marginTop + marginBottom).fill();\n\n // Margin right\n ctx.rect(left + width, top - marginTop, marginRight, height + marginTop + marginBottom).fill();\n\n // Margin bottom\n ctx.rect(left, top + height, width, marginBottom).fill();\n};\nconst debugText = (ctx, node) => {\n const {\n left,\n top,\n width,\n height\n } = node.box;\n const {\n marginLeft = 0,\n marginTop = 0,\n marginRight = 0,\n marginBottom = 0\n } = getMargin(node.box);\n const roundedWidth = Math.round(width + marginLeft + marginRight);\n const roundedHeight = Math.round(height + marginTop + marginBottom);\n ctx.fontSize(6).opacity(1).fillColor('black').text(`${roundedWidth} x ${roundedHeight}`, left - marginLeft, Math.max(top - marginTop - 4, 1));\n};\nconst debugOrigin = (ctx, node) => {\n if (node.origin) {\n ctx.circle(node.origin.left, node.origin.top, 3).fill('red').circle(node.origin.left, node.origin.top, 5).stroke('red');\n }\n};\nconst renderDebug = (ctx, node) => {\n var _node$props;\n if (!((_node$props = node.props) !== null && _node$props !== void 0 && _node$props.debug)) return;\n ctx.save();\n debugContent(ctx, node);\n debugPadding(ctx, node);\n debugMargin(ctx, node);\n debugText(ctx, node);\n debugOrigin(ctx, node);\n ctx.restore();\n};\n\nconst availableMethods = ['dash', 'clip', 'save', 'path', 'fill', 'font', 'text', 'rect', 'scale', 'moveTo', 'lineTo', 'stroke', 'rotate', 'circle', 'lineCap', 'opacity', 'ellipse', 'polygon', 'restore', 'lineJoin', 'fontSize', 'fillColor', 'lineWidth', 'translate', 'miterLimit', 'strokeColor', 'fillOpacity', 'roundedRect', 'fillAndStroke', 'strokeOpacity', 'bezierCurveTo', 'quadraticCurveTo', 'linearGradient', 'radialGradient'];\nconst painter = ctx => {\n const p = availableMethods.reduce((acc, prop) => ({\n ...acc,\n [prop]: function () {\n ctx[prop](...arguments);\n return p;\n }\n }), {});\n return p;\n};\nconst renderCanvas = (ctx, node) => {\n const {\n top,\n left,\n width,\n height\n } = node.box;\n const paddingTop = node.box.paddingTop || 0;\n const paddingLeft = node.box.paddingLeft || 0;\n const paddingRight = node.box.paddingRight || 0;\n const paddingBottom = node.box.paddingBottom || 0;\n const availableWidth = width - paddingLeft - paddingRight;\n const availableHeight = height - paddingTop - paddingBottom;\n if (!availableWidth || !availableHeight) {\n console.warn('Canvas element has null width or height. Please provide valid values via the `style` prop in order to correctly render it.');\n }\n ctx.save().translate(left + paddingLeft, top + paddingTop);\n if (node.props.paint) {\n node.props.paint(painter(ctx), availableWidth, availableHeight);\n }\n ctx.restore();\n};\n\n// Ref: https://www.w3.org/TR/css-backgrounds-3/#borders\n\n// This constant is used to approximate a symmetrical arc using a cubic Bezier curve.\nconst KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nconst clipBorderTop = (ctx, layout, style, rtr, rtl) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderTopWidth,\n borderRightWidth,\n borderLeftWidth\n } = style;\n\n // Clip outer top border edge\n ctx.moveTo(left + rtl, top);\n ctx.lineTo(left + width - rtr, top);\n\n // Ellipse coefficients outer top right cap\n const c0 = rtr * (1.0 - KAPPA);\n\n // Clip outer top right cap\n ctx.bezierCurveTo(left + width - c0, top, left + width, top + c0, left + width, top + rtr);\n\n // Move down in case the margin exceedes the radius\n const topRightYCoord = top + Math.max(borderTopWidth, rtr);\n ctx.lineTo(left + width, topRightYCoord);\n\n // Clip inner top right cap\n ctx.lineTo(left + width - borderRightWidth, topRightYCoord);\n\n // Ellipse coefficients inner top right cap\n const innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);\n const innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);\n const c1 = innerTopRightRadiusX * (1.0 - KAPPA);\n const c2 = innerTopRightRadiusY * (1.0 - KAPPA);\n\n // Clip inner top right cap\n ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c2, left + width - borderRightWidth - c1, top + borderTopWidth, left + width - borderRightWidth - innerTopRightRadiusX, top + borderTopWidth);\n\n // Clip inner top border edge\n ctx.lineTo(left + Math.max(rtl, borderLeftWidth), top + borderTopWidth);\n\n // Ellipse coefficients inner top left cap\n const innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);\n const innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);\n const c3 = innerTopLeftRadiusX * (1.0 - KAPPA);\n const c4 = innerTopLeftRadiusY * (1.0 - KAPPA);\n const topLeftYCoord = top + Math.max(borderTopWidth, rtl);\n\n // Clip inner top left cap\n ctx.bezierCurveTo(left + borderLeftWidth + c3, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c4, left + borderLeftWidth, topLeftYCoord);\n ctx.lineTo(left, topLeftYCoord);\n\n // Move down in case the margin exceedes the radius\n ctx.lineTo(left, top + rtl);\n\n // Ellipse coefficients outer top left cap\n const c5 = rtl * (1.0 - KAPPA);\n\n // Clip outer top left cap\n ctx.bezierCurveTo(left, top + c5, left + c5, top, left + rtl, top);\n ctx.closePath();\n ctx.clip();\n\n // Clip border top cap joins\n if (borderRightWidth) {\n const trSlope = -borderTopWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left, top);\n ctx.lineTo(left, top + height);\n ctx.closePath();\n ctx.clip();\n }\n if (borderLeftWidth) {\n const trSlope = -borderTopWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left, top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left + width, top + height);\n ctx.closePath();\n ctx.clip();\n }\n};\nconst fillBorderTop = (ctx, layout, style, rtr, rtl) => {\n const {\n top,\n left,\n width\n } = layout;\n const {\n borderTopColor,\n borderTopWidth,\n borderTopStyle,\n borderRightWidth,\n borderLeftWidth\n } = style;\n const c0 = rtl * (1.0 - KAPPA);\n const c1 = rtr * (1.0 - KAPPA);\n ctx.moveTo(left, top + Math.max(rtl, borderTopWidth));\n ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top);\n ctx.lineTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);\n ctx.strokeColor(borderTopColor);\n ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderLeftWidth) * 2);\n if (borderTopStyle === 'dashed') {\n ctx.dash(borderTopWidth * 2, {\n space: borderTopWidth * 1.2\n });\n } else if (borderTopStyle === 'dotted') {\n ctx.dash(borderTopWidth, {\n space: borderTopWidth * 1.2\n });\n }\n ctx.stroke();\n ctx.undash();\n};\nconst clipBorderRight = (ctx, layout, style, rtr, rbr) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth\n } = style;\n\n // Clip outer right border edge\n ctx.moveTo(left + width, top + rtr);\n ctx.lineTo(left + width, top + height - rbr);\n\n // Ellipse coefficients outer bottom right cap\n const c0 = rbr * (1.0 - KAPPA);\n\n // Clip outer top right cap\n ctx.bezierCurveTo(left + width, top + height - c0, left + width - c0, top + height, left + width - rbr, top + height);\n\n // Move left in case the margin exceedes the radius\n const topBottomXCoord = left + width - Math.max(borderRightWidth, rbr);\n ctx.lineTo(topBottomXCoord, top + height);\n\n // Clip inner bottom right cap\n ctx.lineTo(topBottomXCoord, top + height - borderBottomWidth);\n\n // Ellipse coefficients inner bottom right cap\n const innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);\n const innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);\n const c1 = innerBottomRightRadiusX * (1.0 - KAPPA);\n const c2 = innerBottomRightRadiusY * (1.0 - KAPPA);\n\n // Clip inner top right cap\n ctx.bezierCurveTo(left + width - borderRightWidth - c1, top + height - borderBottomWidth, left + width - borderRightWidth, top + height - borderBottomWidth - c2, left + width - borderRightWidth, top + height - Math.max(rbr, borderBottomWidth));\n\n // Clip inner right border edge\n ctx.lineTo(left + width - borderRightWidth, top + Math.max(rtr, borderTopWidth));\n\n // Ellipse coefficients inner top right cap\n const innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);\n const innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);\n const c3 = innerTopRightRadiusX * (1.0 - KAPPA);\n const c4 = innerTopRightRadiusY * (1.0 - KAPPA);\n const topRightXCoord = left + width - Math.max(rtr, borderRightWidth);\n\n // Clip inner top left cap\n ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c4, left + width - borderRightWidth - c3, top + borderTopWidth, topRightXCoord, top + borderTopWidth);\n ctx.lineTo(topRightXCoord, top);\n\n // Move right in case the margin exceedes the radius\n ctx.lineTo(left + width - rtr, top);\n\n // Ellipse coefficients outer top right cap\n const c5 = rtr * (1.0 - KAPPA);\n\n // Clip outer top right cap\n ctx.bezierCurveTo(left + width - c5, top, left + width, top + c5, left + width, top + rtr);\n ctx.closePath();\n ctx.clip();\n\n // Clip border right cap joins\n if (borderTopWidth) {\n const trSlope = -borderTopWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left, top + height);\n ctx.closePath();\n ctx.clip();\n }\n if (borderBottomWidth) {\n const brSlope = borderBottomWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left, top);\n ctx.closePath();\n ctx.clip();\n }\n};\nconst fillBorderRight = (ctx, layout, style, rtr, rbr) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderRightColor,\n borderRightStyle,\n borderRightWidth,\n borderTopWidth,\n borderBottomWidth\n } = style;\n const c0 = rbr * (1.0 - KAPPA);\n const c1 = rtr * (1.0 - KAPPA);\n ctx.moveTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);\n ctx.lineTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - c0, left + width - c0, top + height, left + width - rbr, top + height);\n ctx.strokeColor(borderRightColor);\n ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderBottomWidth) * 2);\n if (borderRightStyle === 'dashed') {\n ctx.dash(borderRightWidth * 2, {\n space: borderRightWidth * 1.2\n });\n } else if (borderRightStyle === 'dotted') {\n ctx.dash(borderRightWidth, {\n space: borderRightWidth * 1.2\n });\n }\n ctx.stroke();\n ctx.undash();\n};\nconst clipBorderBottom = (ctx, layout, style, rbl, rbr) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderBottomWidth,\n borderRightWidth,\n borderLeftWidth\n } = style;\n\n // Clip outer top border edge\n ctx.moveTo(left + width - rbr, top + height);\n ctx.lineTo(left + rbl, top + height);\n\n // Ellipse coefficients outer top right cap\n const c0 = rbl * (1.0 - KAPPA);\n\n // Clip outer top right cap\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl);\n\n // Move up in case the margin exceedes the radius\n const bottomLeftYCoord = top + height - Math.max(borderBottomWidth, rbl);\n ctx.lineTo(left, bottomLeftYCoord);\n\n // Clip inner bottom left cap\n ctx.lineTo(left + borderLeftWidth, bottomLeftYCoord);\n\n // Ellipse coefficients inner top right cap\n const innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);\n const innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);\n const c1 = innerBottomLeftRadiusX * (1.0 - KAPPA);\n const c2 = innerBottomLeftRadiusY * (1.0 - KAPPA);\n\n // Clip inner bottom left cap\n ctx.bezierCurveTo(left + borderLeftWidth, top + height - borderBottomWidth - c2, left + borderLeftWidth + c1, top + height - borderBottomWidth, left + borderLeftWidth + innerBottomLeftRadiusX, top + height - borderBottomWidth);\n\n // Clip inner bottom border edge\n ctx.lineTo(left + width - Math.max(rbr, borderRightWidth), top + height - borderBottomWidth);\n\n // Ellipse coefficients inner top left cap\n const innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);\n const innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);\n const c3 = innerBottomRightRadiusX * (1.0 - KAPPA);\n const c4 = innerBottomRightRadiusY * (1.0 - KAPPA);\n const bottomRightYCoord = top + height - Math.max(borderBottomWidth, rbr);\n\n // Clip inner top left cap\n ctx.bezierCurveTo(left + width - borderRightWidth - c3, top + height - borderBottomWidth, left + width - borderRightWidth, top + height - borderBottomWidth - c4, left + width - borderRightWidth, bottomRightYCoord);\n ctx.lineTo(left + width, bottomRightYCoord);\n\n // Move down in case the margin exceedes the radius\n ctx.lineTo(left + width, top + height - rbr);\n\n // Ellipse coefficients outer top left cap\n const c5 = rbr * (1.0 - KAPPA);\n\n // Clip outer top left cap\n ctx.bezierCurveTo(left + width, top + height - c5, left + width - c5, top + height, left + width - rbr, top + height);\n ctx.closePath();\n ctx.clip();\n\n // Clip border bottom cap joins\n if (borderRightWidth) {\n const brSlope = borderBottomWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left, top);\n ctx.closePath();\n ctx.clip();\n }\n if (borderLeftWidth) {\n const trSlope = -borderBottomWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left + width, top);\n ctx.closePath();\n ctx.clip();\n }\n};\nconst fillBorderBottom = (ctx, layout, style, rbl, rbr) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderBottomColor,\n borderBottomStyle,\n borderBottomWidth,\n borderRightWidth,\n borderLeftWidth\n } = style;\n const c0 = rbl * (1.0 - KAPPA);\n const c1 = rbr * (1.0 - KAPPA);\n ctx.moveTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - c1, left + width - c1, top + height, left + width - rbr, top + height);\n ctx.lineTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl);\n ctx.strokeColor(borderBottomColor);\n ctx.lineWidth(Math.max(borderBottomWidth, borderRightWidth, borderLeftWidth) * 2);\n if (borderBottomStyle === 'dashed') {\n ctx.dash(borderBottomWidth * 2, {\n space: borderBottomWidth * 1.2\n });\n } else if (borderBottomStyle === 'dotted') {\n ctx.dash(borderBottomWidth, {\n space: borderBottomWidth * 1.2\n });\n }\n ctx.stroke();\n ctx.undash();\n};\nconst clipBorderLeft = (ctx, layout, style, rbl, rtl) => {\n const {\n top,\n left,\n width,\n height\n } = layout;\n const {\n borderTopWidth,\n borderLeftWidth,\n borderBottomWidth\n } = style;\n\n // Clip outer left border edge\n ctx.moveTo(left, top + height - rbl);\n ctx.lineTo(left, top + rtl);\n\n // Ellipse coefficients outer top left cap\n const c0 = rtl * (1.0 - KAPPA);\n\n // Clip outer top left cap\n ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top);\n\n // Move right in case the margin exceedes the radius\n const topLeftCoordX = left + Math.max(borderLeftWidth, rtl);\n ctx.lineTo(topLeftCoordX, top);\n\n // Clip inner top left cap\n ctx.lineTo(topLeftCoordX, top + borderTopWidth);\n\n // Ellipse coefficients inner top left cap\n const innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);\n const innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);\n const c1 = innerTopLeftRadiusX * (1.0 - KAPPA);\n const c2 = innerTopLeftRadiusY * (1.0 - KAPPA);\n\n // Clip inner top right cap\n ctx.bezierCurveTo(left + borderLeftWidth + c1, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c2, left + borderLeftWidth, top + Math.max(rtl, borderTopWidth));\n\n // Clip inner left border edge\n ctx.lineTo(left + borderLeftWidth, top + height - Math.max(rbl, borderBottomWidth));\n\n // Ellipse coefficients inner bottom left cap\n const innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);\n const innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);\n const c3 = innerBottomLeftRadiusX * (1.0 - KAPPA);\n const c4 = innerBottomLeftRadiusY * (1.0 - KAPPA);\n const bottomLeftXCoord = left + Math.max(rbl, borderLeftWidth);\n\n // Clip inner top left cap\n ctx.bezierCurveTo(left + borderLeftWidth, top + height - borderBottomWidth - c4, left + borderLeftWidth + c3, top + height - borderBottomWidth, bottomLeftXCoord, top + height - borderBottomWidth);\n ctx.lineTo(bottomLeftXCoord, top + height);\n\n // Move left in case the margin exceedes the radius\n ctx.lineTo(left + rbl, top + height);\n\n // Ellipse coefficients outer top right cap\n const c5 = rbl * (1.0 - KAPPA);\n\n // Clip outer top right cap\n ctx.bezierCurveTo(left + c5, top + height, left, top + height - c5, left, top + height - rbl);\n ctx.closePath();\n ctx.clip();\n\n // Clip border right cap joins\n if (borderBottomWidth) {\n const trSlope = -borderBottomWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left, top);\n ctx.lineTo(left + width, top);\n ctx.closePath();\n ctx.clip();\n }\n if (borderBottomWidth) {\n const trSlope = -borderTopWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left, top);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left + width, top + height);\n ctx.closePath();\n ctx.clip();\n }\n};\nconst fillBorderLeft = (ctx, layout, style, rbl, rtl) => {\n const {\n top,\n left,\n height\n } = layout;\n const {\n borderLeftColor,\n borderLeftStyle,\n borderLeftWidth,\n borderTopWidth,\n borderBottomWidth\n } = style;\n const c0 = rbl * (1.0 - KAPPA);\n const c1 = rtl * (1.0 - KAPPA);\n ctx.moveTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl);\n ctx.lineTo(left, top + rtl);\n ctx.bezierCurveTo(left, top + c1, left + c1, top, left + rtl, top);\n ctx.strokeColor(borderLeftColor);\n ctx.lineWidth(Math.max(borderLeftWidth, borderTopWidth, borderBottomWidth) * 2);\n if (borderLeftStyle === 'dashed') {\n ctx.dash(borderLeftWidth * 2, {\n space: borderLeftWidth * 1.2\n });\n } else if (borderLeftStyle === 'dotted') {\n ctx.dash(borderLeftWidth, {\n space: borderLeftWidth * 1.2\n });\n }\n ctx.stroke();\n ctx.undash();\n};\nconst shouldRenderBorders = node => node.box && (node.box.borderTopWidth || node.box.borderRightWidth || node.box.borderBottomWidth || node.box.borderLeftWidth);\nconst renderBorders = (ctx, node) => {\n if (!shouldRenderBorders(node)) return;\n const {\n width,\n height,\n borderTopWidth,\n borderLeftWidth,\n borderRightWidth,\n borderBottomWidth\n } = node.box;\n const {\n opacity,\n borderTopLeftRadius = 0,\n borderTopRightRadius = 0,\n borderBottomLeftRadius = 0,\n borderBottomRightRadius = 0,\n borderTopColor = 'black',\n borderTopStyle = 'solid',\n borderLeftColor = 'black',\n borderLeftStyle = 'solid',\n borderRightColor = 'black',\n borderRightStyle = 'solid',\n borderBottomColor = 'black',\n borderBottomStyle = 'solid'\n } = node.style;\n const style = {\n borderTopColor,\n borderTopWidth,\n borderTopStyle,\n borderLeftColor,\n borderLeftWidth,\n borderLeftStyle,\n borderRightColor,\n borderRightWidth,\n borderRightStyle,\n borderBottomColor,\n borderBottomWidth,\n borderBottomStyle,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n };\n const rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height);\n const rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height);\n const rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height);\n const rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height);\n ctx.save();\n ctx.strokeOpacity(opacity);\n if (borderTopWidth) {\n ctx.save();\n clipBorderTop(ctx, node.box, style, rtr, rtl);\n fillBorderTop(ctx, node.box, style, rtr, rtl);\n ctx.restore();\n }\n if (borderRightWidth) {\n ctx.save();\n clipBorderRight(ctx, node.box, style, rtr, rbr);\n fillBorderRight(ctx, node.box, style, rtr, rbr);\n ctx.restore();\n }\n if (borderBottomWidth) {\n ctx.save();\n clipBorderBottom(ctx, node.box, style, rbl, rbr);\n fillBorderBottom(ctx, node.box, style, rbl, rbr);\n ctx.restore();\n }\n if (borderLeftWidth) {\n ctx.save();\n clipBorderLeft(ctx, node.box, style, rbl, rtl);\n fillBorderLeft(ctx, node.box, style, rbl, rtl);\n ctx.restore();\n }\n ctx.restore();\n};\n\nconst drawBackground = (ctx, node) => {\n var _node$style;\n const {\n top,\n left,\n width,\n height\n } = node.box;\n const color = parseColor(node.style.backgroundColor);\n const nodeOpacity = isNil((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.opacity) ? 1 : node.style.opacity;\n const opacity = Math.min(color.opacity, nodeOpacity);\n ctx.fillOpacity(opacity).fillColor(color.value).rect(left, top, width, height).fill();\n};\nconst renderBackground = (ctx, node) => {\n var _node$style2;\n const hasBackground = !!node.box && !!((_node$style2 = node.style) !== null && _node$style2 !== void 0 && _node$style2.backgroundColor);\n if (hasBackground) {\n ctx.save();\n clipNode(ctx, node);\n drawBackground(ctx, node);\n ctx.restore();\n }\n};\n\nconst isSrcId = value => /^#.+/.test(value);\nconst setLink = (ctx, node) => {\n const props = node.props || {};\n const {\n top,\n left,\n width,\n height\n } = node.box;\n const src = props.src || props.href;\n if (src) {\n const isId = isSrcId(src);\n const method = isId ? 'goTo' : 'link';\n const value = isId ? src.slice(1) : src;\n ctx[method](left, top, width, height, value);\n }\n};\n\nconst setDestination = (ctx, node) => {\n var _node$props;\n if ((_node$props = node.props) !== null && _node$props !== void 0 && _node$props.id) {\n ctx.addNamedDestination(node.props.id, 'XYZ', null, node.box.top, null);\n }\n};\n\nconst isRecursiveNode = node => node.type !== P.Text && node.type !== P.Svg;\nconst renderChildren = (ctx, node, options) => {\n ctx.save();\n if (node.box) {\n ctx.translate(node.box.left, node.box.top);\n }\n const children = node.children || [];\n const renderChild = child => renderNode(ctx, child, options);\n children.forEach(renderChild);\n ctx.restore();\n};\nconst renderFns = {\n [P.Text]: renderText,\n [P.Note]: renderNote,\n [P.Image]: renderImage,\n [P.Canvas]: renderCanvas,\n [P.Svg]: renderSvg,\n [P.Link]: setLink\n};\nconst renderNode = (ctx, node, options) => {\n var _node$style;\n const overflowHidden = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.overflow) === 'hidden';\n const shouldRenderChildren = isRecursiveNode(node);\n if (node.type === P.Page) renderPage(ctx, node);\n ctx.save();\n if (overflowHidden) clipNode(ctx, node);\n applyTransformations(ctx, node);\n renderBackground(ctx, node);\n renderBorders(ctx, node);\n const renderFn = renderFns[node.type];\n if (renderFn) renderFn(ctx, node, options);\n if (shouldRenderChildren) renderChildren(ctx, node, options);\n setDestination(ctx, node);\n renderDebug(ctx, node);\n ctx.restore();\n};\n\n/* eslint-disable no-param-reassign */\n\nconst setPDFMetadata = target => (key, value) => {\n if (value) target.info[key] = value;\n};\n\n/**\n * Set document instance metadata\n *\n * @param {Object} ctx document instance\n * @param {Object} doc document root\n */\nconst addMetadata = (ctx, doc) => {\n const setProp = setPDFMetadata(ctx);\n const props = doc.props || {};\n const title = props.title || null;\n const author = props.author || null;\n const subject = props.subject || null;\n const keywords = props.keywords || null;\n const creator = props.creator ?? 'react-pdf';\n const producer = props.producer ?? 'react-pdf';\n const creationDate = props.creationDate || new Date();\n const modificationDate = props.modificationDate || null;\n setProp('Title', title);\n setProp('Author', author);\n setProp('Subject', subject);\n setProp('Keywords', keywords);\n setProp('Creator', creator);\n setProp('Producer', producer);\n setProp('CreationDate', creationDate);\n setProp('ModificationDate', modificationDate);\n};\n\n/* eslint-disable no-param-reassign */\n\nconst addNodeBookmark = (ctx, node, pageNumber, registry) => {\n var _node$props;\n const bookmark = (_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.bookmark;\n if (bookmark) {\n const {\n title,\n parent,\n expanded,\n zoom,\n fit\n } = bookmark;\n const outline = registry[parent] || ctx.outline;\n const top = bookmark.top || node.box.top;\n const left = bookmark.left || node.box.left;\n const instance = outline.addItem(title, {\n pageNumber,\n expanded,\n top,\n left,\n zoom,\n fit\n });\n registry[bookmark.ref] = instance;\n }\n if (!node.children) return;\n node.children.forEach(child => addNodeBookmark(ctx, child, pageNumber, registry));\n};\nconst addBookmarks = (ctx, root) => {\n const registry = {};\n const pages = root.children || [];\n pages.forEach((page, i) => {\n addNodeBookmark(ctx, page, i, registry);\n });\n};\n\nconst render = (ctx, doc) => {\n const pages = doc.children || [];\n const options = {\n imageCache: new Map()\n };\n addMetadata(ctx, doc);\n pages.forEach(page => renderNode(ctx, page, options));\n addBookmarks(ctx, doc);\n ctx.end();\n return ctx;\n};\n\nexport { render as default };\n","import * as r from \"restructure\";\n\nconst DACTable = new r.Struct({\n identifier: new r.Buffer(1),\n value: new r.Buffer(1),\n});\n\nconst DACMarker = {\n name: () => \"DAC\",\n length: r.uint16be,\n tables: new r.Array(DACTable, (parent) => parent.length / 2),\n};\n\nexport default DACMarker;\n","export const readUInt8 = (array, offset) => {\n return array[offset];\n};\n\nexport const readUInt16BE = (array, offset) => {\n return (array[offset] << 8) | array[offset + 1];\n};\n\nexport const readUInt16LE = (array, offset) => {\n return array[offset] | (array[offset + 1] << 8);\n};\n\nexport const readUInt32BE = (array, offset) => {\n return (\n (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]\n );\n};\n\nexport const readUInt32LE = (array, offset) => {\n return (\n array[offset] |\n (array[offset + 1] << 8) |\n (array[offset + 2] << 16) |\n (array[offset + 3] << 24)\n );\n};\n\nexport const uint8ArrayToHexString = (uint8Array) => {\n return Array.from(uint8Array, (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n};\n\nconst decoder = new TextDecoder(\"utf-8\");\n\nexport const uint8ArrayToString = (uint8Array) => {\n return decoder.decode(uint8Array);\n};\n\nexport const concatenateUint8Arrays = (arrays) => {\n const totalLength = arrays.reduce((length, arr) => length + arr.length, 0);\n const concatenatedArray = new Uint8Array(totalLength);\n\n let offset = 0;\n\n arrays.forEach((arr) => {\n concatenatedArray.set(arr, offset);\n offset += arr.length;\n });\n\n return concatenatedArray;\n};\n\nexport const readInt32BE = (array, offset) => {\n return readUInt32BE(array, offset) | 0;\n};\n\nexport const readInt32LE = (array, offset) => {\n return readUInt32LE(array, offset) | 0;\n};\n","import * as r from \"restructure\";\nimport { concatenateUint8Arrays, readUInt8 } from \"./utils.js\";\n\nclass HuffmanTableElements {\n decode(stream, parent) {\n const tables = {};\n\n let buffer = stream.buffer.slice(\n stream.pos,\n stream.pos + parent.length - 2,\n );\n\n while (buffer.length > 0) {\n let offset = 1;\n\n const elements = [];\n const identifier = readUInt8(buffer, 0);\n const lengths = buffer.slice(offset, offset + 16);\n\n offset += 16;\n\n for (const length of lengths) {\n elements.push(buffer.slice(offset, offset + length));\n offset += length;\n }\n\n buffer = buffer.slice(offset);\n\n tables[identifier] = concatenateUint8Arrays(elements);\n }\n\n stream.pos += parent.length - 2;\n\n return tables;\n }\n}\n\nconst DefineHuffmanTableMarker = {\n name: () => \"DHT\",\n length: r.uint16be,\n tables: new HuffmanTableElements(),\n};\n\nexport default DefineHuffmanTableMarker;\n","import * as r from \"restructure\";\n\nconst DQTMarker = {\n name: () => \"DQT\",\n length: r.uint16be,\n tables: new r.Array(\n new r.Struct({\n identifier: new r.Buffer(1),\n data: new r.Buffer(64),\n }),\n (parent) => (parent.length - 2) / 65,\n ),\n};\n\nexport default DQTMarker;\n","import * as r from \"restructure\";\n\nconst DRIMarker = {\n name: () => \"DRI\",\n length: r.uint16be,\n restartInterval: r.uint16be,\n};\n\nexport default DRIMarker;\n","import * as r from \"restructure\";\n\nconst EndOfImageMarker = {\n name: () => \"EOI\",\n afterEOI: new r.Reserved(r.uint8, Infinity),\n};\n\nexport default EndOfImageMarker;\n","import * as r from \"restructure\";\nimport {\n readUInt8,\n readUInt16BE,\n readUInt16LE,\n readUInt32BE,\n readUInt32LE,\n uint8ArrayToHexString,\n uint8ArrayToString,\n readInt32BE,\n readInt32LE,\n} from \"./utils.js\";\n\nconst tags = {\n ifd: {\n \"010e\": \"imageDescription\",\n \"010f\": \"make\",\n \"011a\": \"xResolution\",\n \"011b\": \"yResolution\",\n \"011c\": \"planarConfiguration\",\n \"012d\": \"transferFunction\",\n \"013b\": \"artist\",\n \"013e\": \"whitePoint\",\n \"013f\": \"primaryChromaticities\",\n \"0100\": \"imageWidth\",\n \"0101\": \"imageHeight\",\n \"0102\": \"bitsPerSample\",\n \"0103\": \"compression\",\n \"0106\": \"photometricInterpretation\",\n \"0110\": \"model\",\n \"0111\": \"stripOffsets\",\n \"0112\": \"orientation\",\n \"0115\": \"samplesPerPixel\",\n \"0116\": \"rowsPerStrip\",\n \"0117\": \"stripByteCounts\",\n \"0128\": \"resolutionUnit\",\n \"0131\": \"software\",\n \"0132\": \"dateTime\",\n \"0201\": \"jpegInterchangeFormat\",\n \"0202\": \"jpegInterchangeFormatLength\",\n \"0211\": \"ycbCrCoefficients\",\n \"0212\": \"ycbCrSubSampling\",\n \"0213\": \"ycbCrPositioning\",\n \"0214\": \"referenceBlackWhite\",\n \"829a\": \"exposureTime\",\n \"829d\": \"fNumber\",\n \"920a\": \"focalLength\",\n \"927c\": \"makerNote\",\n 8298: \"copyright\",\n 8769: \"exifIFDPointer\",\n 8822: \"exposureProgram\",\n 8824: \"spectralSensitivity\",\n 8825: \"gpsInfoIFDPointer\",\n 8827: \"photographicSensitivity\",\n 8828: \"oecf\",\n 8830: \"sensitivityType\",\n 8831: \"standardOutputSensitivity\",\n 8832: \"recommendedExposureIndex\",\n 8833: \"isoSpeed\",\n 8834: \"isoSpeedLatitudeyyy\",\n 8835: \"isoSpeedLatitudezzz\",\n 9000: \"exifVersion\",\n 9003: \"dateTimeOriginal\",\n 9004: \"dateTimeDigitized\",\n 9101: \"componentsConfiguration\",\n 9102: \"compressedBitsPerPixel\",\n 9201: \"shutterSpeedValue\",\n 9202: \"apertureValue\",\n 9203: \"brightnessValue\",\n 9204: \"exposureBiasValue\",\n 9205: \"maxApertureValue\",\n 9206: \"subjectDistance\",\n 9207: \"meteringMode\",\n 9208: \"lightSource\",\n 9209: \"flash\",\n 9214: \"subjectArea\",\n 9286: \"userComment\",\n 9290: \"subSecTime\",\n 9291: \"subSecTimeOriginal\",\n 9292: \"subSecTimeDigitized\",\n a000: \"flashpixVersion\",\n a001: \"colorSpace\",\n a002: \"pixelXDimension\",\n a003: \"pixelYDimension\",\n a004: \"relatedSoundFile\",\n a005: \"interoperabilityIFDPointer\",\n a20b: \"flashEnergy\",\n a20c: \"spatialFrequencyResponse\",\n a20e: \"focalPlaneXResolution\",\n a20f: \"focalPlaneYResolution\",\n a40a: \"sharpness\",\n a40b: \"deviceSettingDescription\",\n a40c: \"subjectDistanceRange\",\n a210: \"focalPlaneResolutionUnit\",\n a214: \"subjectLocation\",\n a215: \"exposureIndex\",\n a217: \"sensingMethod\",\n a300: \"fileSource\",\n a301: \"sceneType\",\n a302: \"cfaPattern\",\n a401: \"customRendered\",\n a402: \"exposureMode\",\n a403: \"whiteBalance\",\n a404: \"digitalZoomRatio\",\n a405: \"focalLengthIn35mmFilm\",\n a406: \"sceneCaptureType\",\n a407: \"gainControl\",\n a408: \"contrast\",\n a409: \"saturation\",\n a420: \"imageUniqueID\",\n a430: \"cameraOwnerName\",\n a431: \"bodySerialNumber\",\n a432: \"lensSpecification\",\n a433: \"lensMake\",\n a434: \"lensModel\",\n a435: \"lensSerialNumber\",\n a500: \"gamma\",\n },\n gps: {\n \"0000\": \"gpsVersionID\",\n \"0001\": \"gpsLatitudeRef\",\n \"0002\": \"gpsLatitude\",\n \"0003\": \"gpsLongitudeRef\",\n \"0004\": \"gpsLongitude\",\n \"0005\": \"gpsAltitudeRef\",\n \"0006\": \"gpsAltitude\",\n \"0007\": \"gpsTimeStamp\",\n \"0008\": \"gpsSatellites\",\n \"0009\": \"gpsStatus\",\n \"000a\": \"gpsMeasureMode\",\n \"000b\": \"gpsDOP\",\n \"000c\": \"gpsSpeedRef\",\n \"000d\": \"gpsSpeed\",\n \"000e\": \"gpsTrackRef\",\n \"000f\": \"gpsTrack\",\n \"0010\": \"gpsImgDirectionRef\",\n \"0011\": \"gpsImgDirection\",\n \"0012\": \"gpsMapDatum\",\n \"0013\": \"gpsDestLatitudeRef\",\n \"0014\": \"gpsDestLatitude\",\n \"0015\": \"gpsDestLongitudeRef\",\n \"0016\": \"gpsDestLongitude\",\n \"0017\": \"gpsDestBearingRef\",\n \"0018\": \"gpsDestBearing\",\n \"0019\": \"gpsDestDistanceRef\",\n \"001a\": \"gpsDestDistance\",\n \"001b\": \"gpsProcessingMethod\",\n \"001c\": \"gpsAreaInformation\",\n \"001d\": \"gpsDateStamp\",\n \"001e\": \"gpsDifferential\",\n \"001f\": \"gpsHPositioningError\",\n },\n};\n\nclass IDFEntries {\n constructor(bigEndian) {\n this.bigEndian = bigEndian;\n this.bytes = [0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8];\n }\n\n _getTagValue(dataValue, dataFormat, componentsNumber) {\n switch (dataFormat) {\n case 2:\n return dataValue.toString(\"ascii\").replace(/\\0+$/, \"\");\n case 129:\n return dataValue.toString(\"utf8\").replace(/\\0+$/, \"\");\n case 7:\n return \"0x\" + dataValue.toString(\"hex\");\n default:\n return this._getTagValueForNumericalData(dataValue, dataFormat, componentsNumber);\n }\n }\n\n _getTagValueForNumericalData(dataValue, dataFormat, componentsNumber) {\n const tagValue = [];\n const componentsBytes = this.bytes[dataFormat];\n for (let i = 0; i < componentsNumber; i += 1) {\n tagValue.push(this._getSingleTagValueForNumericalData(dataValue, dataFormat, i * componentsBytes));\n }\n return tagValue.length === 1 ? tagValue[0] : tagValue;\n }\n\n _getSingleTagValueForNumericalData(dataValue, dataFormat, pos) {\n const uint16 = (pos) =>\n this.bigEndian\n ? readUInt16BE(dataValue, pos)\n : readUInt16LE(dataValue, pos);\n\n const uint32 = (pos) =>\n this.bigEndian\n ? readUInt32BE(dataValue, pos)\n : readUInt32LE(dataValue, pos);\n\n const int32 = (pos) =>\n this.bigEndian\n ? readInt32BE(dataValue, pos)\n : readInt32LE(dataValue, pos);\n\n switch (dataFormat) {\n case 1:\n return readUInt8(dataValue, pos)\n case 3:\n return uint16(pos);\n case 4:\n return uint32(pos);\n case 5:\n return uint32(pos) / uint32(pos + 4);\n case 9:\n return int32(pos);\n case 10: {\n return int32(pos) / int32(pos + 4);\n }\n }\n }\n\n _decodeIDFEntries(buffer, tags, offset, log = false) {\n let pos = 2 + offset;\n\n const entries = {};\n\n const uint16 = (pos) =>\n this.bigEndian ? readUInt16BE(buffer, pos) : readUInt16LE(buffer, pos);\n\n const uint32 = (pos) =>\n this.bigEndian ? readUInt32BE(buffer, pos) : readUInt32LE(buffer, pos);\n\n const numberOfEntries = uint16(offset);\n\n for (let i = 0; i < numberOfEntries; i++) {\n const tagAddress = buffer.slice(pos, pos + 2);\n const dataFormat = uint16(pos + 2);\n const componentsNumber = uint32(pos + 4);\n const componentsBytes = this.bytes[dataFormat];\n const dataLength = componentsNumber * componentsBytes;\n\n let dataValue = buffer.slice(pos + 8, pos + 12);\n\n if (dataLength > 4) {\n const dataOffset = this.bigEndian\n ? readUInt32BE(dataValue, 0)\n : readUInt32LE(dataValue, 0);\n\n dataValue = buffer.slice(dataOffset, dataOffset + dataLength);\n }\n\n const tagValue = this._getTagValue(dataValue, dataFormat, componentsNumber);\n\n const tagNumber = this.bigEndian\n ? uint8ArrayToHexString(tagAddress)\n : uint8ArrayToHexString(tagAddress.reverse());\n\n const tagName = tags[tagNumber];\n\n entries[tagName] = tagValue;\n\n pos += 12;\n }\n\n return entries;\n }\n\n decode(stream, parent) {\n const buffer = stream.buffer.slice(stream.pos - 8);\n const offsetToFirstIFD = parent.offsetToFirstIFD;\n\n if (offsetToFirstIFD > buffer.length) {\n stream.pos += parent.parent.length - 16;\n return {};\n }\n\n const entries = this._decodeIDFEntries(buffer, tags.ifd, offsetToFirstIFD);\n const { exifIFDPointer, gpsInfoIFDPointer } = entries;\n\n if (exifIFDPointer) {\n entries.subExif = this._decodeIDFEntries(\n buffer,\n tags.ifd,\n exifIFDPointer,\n );\n }\n\n if (gpsInfoIFDPointer) {\n const gps = gpsInfoIFDPointer;\n entries.gpsInfo = this._decodeIDFEntries(buffer, tags.gps, gps, true);\n }\n\n stream.pos += parent.parent.length - 16;\n\n return entries;\n }\n}\n\nconst IFDData = (bigEndian) => {\n const uint16 = bigEndian ? r.uint16be : r.uint16le;\n const uint32 = bigEndian ? r.uint32be : r.uint32le;\n\n return new r.Struct({\n fortyTwo: uint16,\n offsetToFirstIFD: uint32,\n entries: new IDFEntries(bigEndian),\n });\n};\n\nclass TIFFHeader {\n decode(stream, parent) {\n const byteOrder = uint8ArrayToString(\n stream.buffer.slice(stream.pos, stream.pos + 2),\n );\n\n const bigEndian = byteOrder === \"MM\";\n\n stream.pos += 2;\n\n const data = IFDData(bigEndian).decode(stream, parent);\n\n return data.entries;\n }\n}\n\nconst EXIFMarker = {\n name: () => \"EXIF\",\n length: r.uint16be,\n identifier: new r.String(6),\n entries: new TIFFHeader(),\n};\n\nexport default EXIFMarker;\n","import * as r from \"restructure\";\n\nconst JFIFMarker = {\n name: () => \"JFIF\",\n length: r.uint16be,\n identifier: new r.String(5),\n version: r.uint16be,\n units: r.uint8,\n xDensity: r.uint16be,\n yDensity: r.uint16be,\n thumbnailWidth: r.uint8,\n thumbnailHeight: r.uint8,\n};\n\nexport default JFIFMarker;\n","import * as r from \"restructure\";\n\nclass ImageData {\n decode(stream) {\n const buffer = stream.buffer.slice(stream.pos);\n\n let length = 0;\n let i = buffer.indexOf(0xff);\n\n while (i !== -1) {\n length = i;\n\n const nextByte = buffer[length + 1];\n const comesRestart = nextByte >= 0xd0 && nextByte <= 0xd7;\n\n if (nextByte !== 0x00 && !comesRestart) break;\n\n i = buffer.indexOf(0xff, i + 1);\n }\n\n stream.pos += length;\n\n return buffer.slice(0, length);\n }\n}\n\nconst SOSComponentSpecification = new r.Struct({\n scanComponentSelector: r.uint8,\n entropyCodingTable: new r.Buffer(1),\n});\n\nconst SOSMarker = {\n name: () => \"SOS\",\n length: r.uint16be,\n numberOfImageComponents: r.uint8,\n componentSpecifications: new r.Array(\n SOSComponentSpecification,\n (parent) => parent.numberOfImageComponents,\n ),\n startOfSpectral: r.uint8,\n endOfSpectral: r.uint8,\n successiveApproximationBit: new r.Buffer(1),\n data: new ImageData(),\n};\n\nexport default SOSMarker;\n","import * as r from \"restructure\";\n\nconst FrameColorComponent = new r.Struct({\n id: r.uint8,\n samplingFactors: r.uint8,\n quantizationTableId: r.uint8,\n});\n\nconst StartOfFrameMarker = {\n name: () => \"SOF\",\n length: r.uint16be,\n precision: r.uint8,\n height: r.uint16be,\n width: r.uint16be,\n numberOfComponents: r.uint8,\n components: new r.Array(\n FrameColorComponent,\n (parent) => parent.numberOfComponents,\n ),\n};\n\nexport default StartOfFrameMarker;\n","const StartOfImageMarker = {\n name: () => \"SOI\",\n};\n\nexport default StartOfImageMarker;\n","import * as r from \"restructure\";\n\nimport DACMarker from \"./markers/dac.js\";\nimport DefineHuffmanTableMarker from \"./markers/dht.js\";\nimport DQTMarker from \"./markers/dqt.js\";\nimport DRIMarker from \"./markers/dri.js\";\nimport EndOfImageMarker from \"./markers/eoi.js\";\nimport EXIFMarker from \"./markers/exif.js\";\nimport JFIFMarker from \"./markers/jfif.js\";\nimport SOSMarker from \"./markers/sos.js\";\nimport StartOfFrameMarker from \"./markers/sof.js\";\nimport StartOfImageMarker from \"./markers/soi.js\";\n\nconst UnknownMarker = {\n length: r.uint16be,\n buf: new r.Buffer((parent) => parent.length - 2),\n};\n\nconst unknownMarkers = Array(63)\n .fill(0)\n .reduce((acc, v, i) => ({ ...acc, [i + 0xffc0]: UnknownMarker }), {});\n\nconst Marker = new r.VersionedStruct(r.uint16be, {\n ...unknownMarkers,\n 0xffc0: StartOfFrameMarker,\n 0xffc1: StartOfFrameMarker,\n 0xffc2: StartOfFrameMarker,\n 0xffc3: StartOfFrameMarker,\n 0xffc4: DefineHuffmanTableMarker,\n 0xffc5: StartOfFrameMarker,\n 0xffc6: StartOfFrameMarker,\n 0xffc7: StartOfFrameMarker,\n 0xffc9: StartOfFrameMarker,\n 0xffca: StartOfFrameMarker,\n 0xffcb: StartOfFrameMarker,\n 0xffcc: DACMarker,\n 0xffcd: StartOfFrameMarker,\n 0xffce: StartOfFrameMarker,\n 0xffcf: StartOfFrameMarker,\n 0xffd8: StartOfImageMarker,\n 0xffd9: EndOfImageMarker,\n 0xffda: SOSMarker,\n 0xffdb: DQTMarker,\n 0xffdd: DRIMarker,\n 0xffe0: JFIFMarker,\n 0xffe1: EXIFMarker,\n});\n\nconst JPEG = new r.Array(Marker);\n\nconst decode = (buffer) => {\n const markers = JPEG.fromBuffer(buffer);\n return markers.map(({ version, ...rest }) => ({ type: version, ...rest }));\n};\n\nexport default { decode };\n","var global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray$1 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) ;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$1(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer$1;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray$1(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer$1(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nvar _polyfillNode_buffer = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Buffer: Buffer,\n INSPECT_MAX_BYTES: INSPECT_MAX_BYTES,\n SlowBuffer: SlowBuffer,\n isBuffer: isBuffer$1,\n kMaxLength: _kMaxLength\n});\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding$1(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global$1.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding$1,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n\tif (typeof f == \"function\") {\n\t\tvar a = function a () {\n\t\t\tif (this instanceof a) {\n return Reflect.construct(f, arguments, this.constructor);\n\t\t\t}\n\t\t\treturn f.apply(this, arguments);\n\t\t};\n\t\ta.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nvar lib = {};\n\nvar require$$0 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_buffer);\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n \n// Alias for removeListener added in NodeJS 10.0\n// https://nodejs.org/api/events.html#events_emitter_off_eventname_listener\nEventEmitter.prototype.off = function(type, listener){\n return this.removeListener(type, listener);\n};\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount$1;\nfunction listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$1 = inherits;\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nfunction format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect$1(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect$1(x);\n }\n }\n return str;\n}\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nfunction deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global$1.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (browser$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (browser$1.throwDeprecation) {\n throw new Error(msg);\n } else if (browser$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\nvar debugs = {};\nvar debugEnviron;\nfunction debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = browser$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n}\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect$1(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect$1.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect$1.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect$1.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect$1.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect$1.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect$1 &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nfunction isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nfunction log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\nfunction _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nfunction promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\npromisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { browser$1.nextTick(cb.bind(null, null, ret)); },\n function(rej) { browser$1.nextTick(callbackifyOnRejected.bind(null, rej, cb)); });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nvar _polyfillNode_util = {\n inherits: inherits$1,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect$1,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog,\n promisify: promisify,\n callbackify: callbackify,\n};\n\nvar _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _extend: _extend,\n callbackify: callbackify,\n debuglog: debuglog,\n default: _polyfillNode_util,\n deprecate: deprecate,\n format: format,\n inherits: inherits$1,\n inspect: inspect$1,\n isArray: isArray,\n isBoolean: isBoolean,\n isBuffer: isBuffer,\n isDate: isDate,\n isError: isError,\n isFunction: isFunction,\n isNull: isNull,\n isNullOrUndefined: isNullOrUndefined,\n isNumber: isNumber,\n isObject: isObject,\n isPrimitive: isPrimitive,\n isRegExp: isRegExp,\n isString: isString,\n isSymbol: isSymbol,\n isUndefined: isUndefined,\n log: log,\n promisify: promisify\n});\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nfunction StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n}\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\nReadable.ReadableState = ReadableState;\n\nvar debug = debuglog('stream');\ninherits$1(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\nWritable.WritableState = WritableState;\ninherits$1(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\nfunction Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n nextTick(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n\ninherits$1(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\ninherits$1(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\ninherits$1(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\ninherits$1(Stream, EventEmitter);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EventEmitter.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\nvar _polyfillNode_stream = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Duplex: Duplex,\n PassThrough: PassThrough,\n Readable: Readable,\n Stream: Stream,\n Transform: Transform,\n Writable: Writable,\n default: Stream\n});\n\nvar require$$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_stream);\n\nvar binding = {};\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\nvar pSlice = Array.prototype.slice;\nvar _functionsHaveNames;\nfunction functionsHaveNames() {\n if (typeof _functionsHaveNames !== 'undefined') {\n return _functionsHaveNames;\n }\n return _functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n }());\n}\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer$1(arrbuf)) {\n return false;\n }\n if (typeof global$1.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nfunction assert(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!isFunction(func)) {\n return;\n }\n if (functionsHaveNames()) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = AssertionError;\nfunction AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}\n\n// assert.AssertionError instanceof Error\ninherits$1(AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames() || !isFunction(something)) {\n return inspect$1(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\nassert.equal = equal;\nfunction equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', equal);\n}\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\nassert.notEqual = notEqual;\nfunction notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', notEqual);\n }\n}\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\nassert.deepEqual = deepEqual;\nfunction deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', deepEqual);\n }\n}\nassert.deepStrictEqual = deepStrictEqual;\nfunction deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', deepStrictEqual);\n }\n}\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer$1(actual) && isBuffer$1(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer$1(actual) !== isBuffer$1(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\nassert.notDeepEqual = notDeepEqual;\nfunction notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', notDeepEqual);\n }\n}\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\nassert.strictEqual = strictEqual;\nfunction strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', strictEqual);\n }\n}\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\nassert.notStrictEqual = notStrictEqual;\nfunction notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', notStrictEqual);\n }\n}\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\nassert.throws = throws;\nfunction throws(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n}\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = doesNotThrow;\nfunction doesNotThrow(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n}\n\nassert.ifError = ifError;\nfunction ifError(err) {\n if (err) throw err;\n}\n\nvar _polyfillNode_assert = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AssertionError: AssertionError,\n assert: ok,\n deepEqual: deepEqual,\n deepStrictEqual: deepStrictEqual,\n default: assert,\n doesNotThrow: doesNotThrow,\n equal: equal,\n fail: fail,\n ifError: ifError,\n notDeepEqual: notDeepEqual,\n notDeepStrictEqual: notDeepStrictEqual,\n notEqual: notEqual,\n notStrictEqual: notStrictEqual,\n ok: ok,\n strictEqual: strictEqual,\n throws: throws\n});\n\nvar require$$4 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_assert);\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = '' /*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2 /*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\nvar zstream = ZStream;\n\nvar deflate$1 = {};\n\nvar common = {};\n\n(function (exports) {\n\n var TYPED_OK = typeof Uint8Array !== 'undefined' && typeof Uint16Array !== 'undefined' && typeof Int32Array !== 'undefined';\n function _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n exports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) {\n continue;\n }\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n return obj;\n };\n\n // reduce buffer size, avoiding mem copy\n exports.shrinkBuf = function (buf, size) {\n if (buf.length === size) {\n return buf;\n }\n if (buf.subarray) {\n return buf.subarray(0, size);\n }\n buf.length = size;\n return buf;\n };\n var fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n return result;\n }\n };\n var fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n };\n\n // Enable/Disable typed arrays use, for testing\n //\n exports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n };\n exports.setTyped(TYPED_OK);\n})(common);\n\nvar trees$1 = {};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils$3 = common;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED$1 = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\nfunction zero$1(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH$1 = 3;\nvar MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES$1 = 30;\n/* number of distance codes */\n\nvar BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nvar MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\nvar extra_dbits = /* extra bits for each distance code */\n[0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\nvar extra_blbits = /* extra bits for each bit length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = w & 0xff;\n s.pending_buf[s.pending++] = w >>> 8 & 0xff;\n}\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > Buf_size - length) {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> Buf_size - s.bi_valid;\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n s.bi_valid += length;\n }\n}\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2] /*.Code*/, tree[c * 2 + 1] /*.Len*/);\n}\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1] /*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1] /*.Dad*/ * 2 + 1] /*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1] /*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2] /*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1] /*.Len*/ + xbits);\n }\n }\n if (overflow === 0) {\n return;\n }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) {\n continue;\n }\n if (tree[m * 2 + 1] /*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1] /*.Len*/) * tree[m * 2] /*.Freq*/;\n tree[m * 2 + 1] /*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = code + bl_count[bits - 1] << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < 1 << extra_lbits[code]; n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < 1 << extra_dbits[code]; n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1] /*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1] /*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1] /*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1] /*.Len*/ = 5;\n static_dtree[n * 2] /*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) {\n s.dyn_ltree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < D_CODES$1; n++) {\n s.dyn_dtree[n * 2] /*.Freq*/ = 0;\n }\n for (n = 0; n < BL_CODES$1; n++) {\n s.bl_tree[n * 2] /*.Freq*/ = 0;\n }\n s.dyn_ltree[END_BLOCK * 2] /*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n // while (len--) {\n // put_byte(s, *buf++);\n // }\n utils$3.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return tree[_n2] /*.Freq*/ < tree[_m2] /*.Freq*/ || tree[_n2] /*.Freq*/ === tree[_m2] /*.Freq*/ && depth[n] <= depth[m];\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n } while (lx < s.last_lit);\n }\n send_code(s, END_BLOCK, ltree);\n}\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n for (n = 0; n < elems; n++) {\n if (tree[n * 2] /*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n } else {\n tree[n * 2 + 1] /*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;\n tree[node * 2] /*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1] /*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = s.heap_len >> 1 /*int /2*/; n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1 /*SMALLEST*/];\n s.heap[1 /*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1 /*SMALLEST*/);\n /***/\n\n m = s.heap[1 /*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2] /*.Freq*/ = tree[n * 2] /*.Freq*/ + tree[m * 2] /*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1] /*.Dad*/ = tree[m * 2 + 1] /*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1 /*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1 /*SMALLEST*/);\n } while (s.heap_len >= 2);\n s.heap[--s.heap_max] = s.heap[1 /*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1] /*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/;\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n s.bl_tree[curlen * 2] /*.Freq*/ += count;\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/++;\n }\n s.bl_tree[REP_3_6 * 2] /*.Freq*/++;\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/++;\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/++;\n }\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1] /*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1] /*.Len*/;\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1] /*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1] /*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if (black_mask & 1 && s.dyn_ltree[n * 2] /*.Freq*/ !== 0) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2] /*.Freq*/ !== 0 || s.dyn_ltree[10 * 2] /*.Freq*/ !== 0 || s.dyn_ltree[13 * 2] /*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2] /*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s) {\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = s.opt_len + 3 + 7 >>> 3;\n static_lenb = s.static_len + 3 + 7 >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n if (stored_len + 4 <= opt_lenb && buf !== -1) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2] /*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/++;\n }\n\n // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n return s.last_lit === s.lit_bufsize - 1;\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\ntrees$1._tr_init = _tr_init;\ntrees$1._tr_stored_block = _tr_stored_block;\ntrees$1._tr_flush_block = _tr_flush_block;\ntrees$1._tr_tally = _tr_tally;\ntrees$1._tr_align = _tr_align;\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32$2(adler, buf, len, pos) {\n var s1 = adler & 0xffff | 0,\n s2 = adler >>> 16 & 0xffff | 0,\n n = 0;\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n do {\n s1 = s1 + buf[pos++] | 0;\n s2 = s2 + s1 | 0;\n } while (--n);\n s1 %= 65521;\n s2 %= 65521;\n }\n return s1 | s2 << 16 | 0;\n}\nvar adler32_1 = adler32$2;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c,\n table = [];\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;\n }\n table[n] = c;\n }\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\nfunction crc32$2(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n crc ^= -1;\n for (var i = pos; i < end; i++) {\n crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 0xFF];\n }\n return crc ^ -1; // >>> 0;\n}\nvar crc32_1 = crc32$2;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary',\n /* Z_NEED_DICT 2 */\n 1: 'stream end',\n /* Z_STREAM_END 1 */\n 0: '',\n /* Z_OK 0 */\n '-1': 'file error',\n /* Z_ERRNO (-1) */\n '-2': 'stream error',\n /* Z_STREAM_ERROR (-2) */\n '-3': 'data error',\n /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory',\n /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error',\n /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils$2 = common;\nvar trees = trees$1;\nvar adler32$1 = adler32_1;\nvar crc32$1 = crc32_1;\nvar msg = messages;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH$1 = 4;\nvar Z_BLOCK$1 = 5;\n//var Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$1 = 0;\nvar Z_STREAM_END$1 = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$1 = -2;\nvar Z_DATA_ERROR$1 = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$1 = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/* The deflate compression method */\nvar Z_DEFLATED$1 = 8;\n\n/*============================================================================*/\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;\nvar PRESET_DICT = 0x20;\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\nfunction rank(f) {\n return (f << 1) - (f > 4 ? 9 : 0);\n}\nfunction zero(buf) {\n var len = buf.length;\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) {\n return;\n }\n utils$2.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = b >>> 8 & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n if (len > size) {\n len = size;\n }\n if (len === 0) {\n return 0;\n }\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils$2.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32$1(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = crc32$1(strm.adler, buf, len, start);\n }\n strm.next_in += len;\n strm.total_in += len;\n return len;\n}\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0 /*NIL*/;\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n utils$2.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = m >= _w_size ? m - _w_size : 0;\n } while (--n);\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = m >= _w_size ? m - _w_size : 0;\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask;\n //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$1) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0 /*NIL*/ && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match /*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$1) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0 /*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n if (hash_head !== 0 /*NIL*/ && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD /*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096 /*TOO_FAR*/)) {\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$1) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break;\n } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$1) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$1) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\nvar configuration_table;\nconfiguration_table = [/* good lazy nice chain */\nnew Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\nnew Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\nnew Config(4, 5, 16, 8, deflate_fast), /* 2 */\nnew Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\nnew Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\nnew Config(8, 16, 32, 32, deflate_slow), /* 5 */\nnew Config(8, 16, 128, 128, deflate_slow), /* 6 */\nnew Config(8, 32, 128, 256, deflate_slow), /* 7 */\nnew Config(32, 128, 258, 1024, deflate_slow), /* 8 */\nnew Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */];\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$1; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils$2.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils$2.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils$2.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils$2.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils$2.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils$2.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\nfunction deflateResetKeep(strm) {\n var s;\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$1);\n }\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = s.wrap === 2 ? 0 // crc32(0, Z_NULL, 0)\n : 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK$1;\n}\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK$1) {\n lm_init(strm.state);\n }\n return ret;\n}\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR$1;\n }\n if (strm.state.wrap !== 2) {\n return Z_STREAM_ERROR$1;\n }\n strm.state.gzhead = head;\n return Z_OK$1;\n}\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) {\n // === Z_NULL\n return Z_STREAM_ERROR$1;\n }\n var wrap = 1;\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n if (windowBits < 0) {\n /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$1 || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$1);\n }\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n strm.state = s;\n s.strm = strm;\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n s.window = new utils$2.Buf8(s.w_size * 2);\n s.head = new utils$2.Buf16(s.hash_size);\n s.prev = new utils$2.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << memLevel + 6; /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils$2.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n return deflateReset(strm);\n}\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED$1, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state || flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$1) : Z_STREAM_ERROR$1;\n }\n s = strm.state;\n if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH$1) {\n return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$1);\n }\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) {\n // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, s.gzhead.time >> 8 & 0xff);\n put_byte(s, s.gzhead.time >> 16 & 0xff);\n put_byte(s, s.gzhead.time >> 24 & 0xff);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, s.gzhead.extra.length >> 8 & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else\n // DEFLATE header\n {\n var header = Z_DEFLATED$1 + (s.w_bits - 8 << 4) << 8;\n var level_flags = -1;\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= level_flags << 6;\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n header += 31 - header % 31;\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n //#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra /* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name /* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment /* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n }\n //#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$1;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH$1) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {\n var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$1;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n } else if (flush !== Z_BLOCK$1) {\n /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$1;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$1) {\n return Z_OK$1;\n }\n if (s.wrap <= 0) {\n return Z_STREAM_END$1;\n }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n put_byte(s, strm.adler >> 16 & 0xff);\n put_byte(s, strm.adler >> 24 & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, strm.total_in >> 8 & 0xff);\n put_byte(s, strm.total_in >> 16 & 0xff);\n put_byte(s, strm.total_in >> 24 & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$1 : Z_STREAM_END$1;\n}\nfunction deflateEnd(strm) {\n var status;\n if (!strm /*== Z_NULL*/ || !strm.state /*== Z_NULL*/) {\n return Z_STREAM_ERROR$1;\n }\n status = strm.state.status;\n if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {\n return err(strm, Z_STREAM_ERROR$1);\n }\n strm.state = null;\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$1) : Z_OK$1;\n}\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n if (!strm /*== Z_NULL*/ || !strm.state /*== Z_NULL*/) {\n return Z_STREAM_ERROR$1;\n }\n s = strm.state;\n wrap = s.wrap;\n if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {\n return Z_STREAM_ERROR$1;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32$1(strm.adler, dictionary, dictLength, 0);\n }\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) {\n /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils$2.Buf8(s.w_size);\n utils$2.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$1;\n}\ndeflate$1.deflateInit = deflateInit;\ndeflate$1.deflateInit2 = deflateInit2;\ndeflate$1.deflateReset = deflateReset;\ndeflate$1.deflateResetKeep = deflateResetKeep;\ndeflate$1.deflateSetHeader = deflateSetHeader;\ndeflate$1.deflate = deflate;\ndeflate$1.deflateEnd = deflateEnd;\ndeflate$1.deflateSetDictionary = deflateSetDictionary;\ndeflate$1.deflateInfo = 'pako deflate (from Nodeca project)';\n\nvar inflate$1 = {};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD$1 = 30; /* got a data error -- remain here until reset */\nvar TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n //#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n //#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n //#ifdef INFLATE_STRICT\n dmax = state.dmax;\n //#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top: do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = lcode[hold & lmask];\n dolen: for (;;) {\n // Goto emulation\n op = here >>> 24 /*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff /*here.op*/;\n if (op === 0) {\n /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff /*here.val*/;\n } else if (op & 16) {\n /* length base */\n len = here & 0xffff /*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & (1 << op) - 1;\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n dodist: for (;;) {\n // goto emulation\n op = here >>> 24 /*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff /*here.op*/;\n if (op & 16) {\n /* distance base */\n dist = here & 0xffff /*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & (1 << op) - 1;\n //#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n //#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) {\n /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // if (len <= op - whave) {\n // do {\n // output[_out++] = 0;\n // } while (--len);\n // continue top;\n // }\n // len -= op - whave;\n // do {\n // output[_out++] = 0;\n // } while (--op > whave);\n // if (op === 0) {\n // from = _out - dist;\n // do {\n // output[_out++] = output[from++];\n // } while (--len);\n // continue top;\n // }\n //#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) {\n /* very common case */\n from += wsize - op;\n if (op < len) {\n /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n } else if (wnext < op) {\n /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) {\n /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) {\n /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n } else {\n /* contiguous in window */\n from += wnext - op;\n if (op < len) {\n /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n } else {\n from = _out - dist; /* copy direct from output */\n do {\n /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n } else if ((op & 64) === 0) {\n /* 2nd level distance code */\n here = dcode[(here & 0xffff /*here.val*/) + (hold & (1 << op) - 1)];\n continue dodist;\n } else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n break; // need to emulate goto via \"continue\"\n }\n } else if ((op & 64) === 0) {\n /* 2nd level length code */\n here = lcode[(here & 0xffff /*here.val*/) + (hold & (1 << op) - 1)];\n continue dolen;\n } else if (op & 32) {\n /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n } else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);\n strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils$1 = common;\nvar MAXBITS = 15;\nvar ENOUGH_LENS$1 = 852;\nvar ENOUGH_DISTS$1 = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES$1 = 0;\nvar LENS$1 = 1;\nvar DISTS$1 = 2;\nvar lbase = [/* Length codes 257..285 base */\n3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\nvar lext = [/* Length codes 257..285 extra */\n16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78];\nvar dbase = [/* Distance codes 0..29 base */\n1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0];\nvar dext = [/* Distance codes 0..29 extra */\n16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];\nvar inftrees = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0,\n max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n // var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils$1.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils$1.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) {\n /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = 1 << 24 | 64 << 16 | 0;\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = 1 << 24 | 64 << 16 | 0;\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else {\n /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << len - drop;\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << len - 1;\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) {\n break;\n }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = root << 24 | curr << 16 | next - table_index | 0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = len - drop << 24 | 64 << 16 | 0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = common;\nvar adler32 = adler32_1;\nvar crc32 = crc32_1;\nvar inflate_fast = inffast;\nvar inflate_table = inftrees;\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\nfunction zswap32(q) {\n return (q >>> 24 & 0xff) + (q >>> 8 & 0xff00) + ((q & 0xff00) << 8) + ((q & 0xff) << 24);\n}\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\nfunction inflateResetKeep(strm) {\n var state;\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) {\n /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null /*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\nfunction inflateReset(strm) {\n var state;\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n}\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n if (!strm) {\n return Z_STREAM_ERROR;\n }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null /*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null /*Z_NULL*/;\n }\n return ret;\n}\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n\n /* distance table */\n sym = 0;\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n\n /* do this just once */\n virgin = false;\n }\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n return 0;\n}\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n } /* skip check */\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n inf_leave:\n // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.wrap & 2 && hold === 0x8b1f) {\n /* gzip header */\n state.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff /*BITS(8)*/) << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f /*BITS(4)*/) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f /*BITS(4)*/) + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = hold >> 8 & 1;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n hbuf[2] = hold >>> 16 & 0xff;\n hbuf[3] = hold >>> 24 & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = hold & 0xff;\n state.head.os = hold >> 8;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n } else if (state.head) {\n state.head.extra = null /*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) {\n copy = have;\n }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(state.head.extra, input, next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy, /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len);\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) {\n break inf_leave;\n }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len && state.length < 65536 /*state.head.name_max*/) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len && state.length < 65536 /*state.head.comm_max*/) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = state.flags >> 9 & 1;\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1 /*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) {\n break inf_leave;\n }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = hold & 0x01 /*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch (hold & 0x03 /*BITS(2)*/) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1:\n /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== (hold >>> 16 ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) {\n break inf_leave;\n }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n if (copy > left) {\n copy = left;\n }\n if (copy === 0) {\n break inf_leave;\n }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f /*BITS(5)*/) + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f /*BITS(5)*/) + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f /*BITS(4)*/) + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = hold & 0x07; //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) {\n break;\n }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) {\n break inf_leave;\n }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1 /*BITS(last.bits + last.op)*/) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n if (last_bits + here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & (1 << state.extra) - 1 /*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & (1 << state.distbits) - 1]; /*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n if (here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1 /*BITS(last.bits + last.op)*/) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n if (last_bits + here_bits <= bits) {\n break;\n }\n //--- PULLBYTE() ---//\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = here_op & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & (1 << state.extra) - 1 /*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n copy = _out - left;\n if (state.offset > copy) {\n /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n if (copy > state.length) {\n copy = state.length;\n }\n from_source = state.window;\n } else {\n /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) {\n copy = left;\n }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) {\n state.mode = LEN;\n }\n break;\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/\n state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\nfunction inflateEnd(strm) {\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n if ((state.wrap & 2) === 0) {\n return Z_STREAM_ERROR;\n }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) {\n return Z_STREAM_ERROR;\n }\n state = strm.state;\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\ninflate$1.inflateReset = inflateReset;\ninflate$1.inflateReset2 = inflateReset2;\ninflate$1.inflateResetKeep = inflateResetKeep;\ninflate$1.inflateInit = inflateInit;\ninflate$1.inflateInit2 = inflateInit2;\ninflate$1.inflate = inflate;\ninflate$1.inflateEnd = inflateEnd;\ninflate$1.inflateGetHeader = inflateGetHeader;\ninflate$1.inflateSetDictionary = inflateSetDictionary;\ninflate$1.inflateInfo = 'pako inflate (from Nodeca project)';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants = {\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n(function (exports) {\n\n /* eslint camelcase: \"off\" */\n var assert = require$$4;\n var Zstream = zstream;\n var zlib_deflate = deflate$1;\n var zlib_inflate = inflate$1;\n var constants$1 = constants;\n for (var key in constants$1) {\n exports[key] = constants$1[key];\n }\n\n // zlib modes\n exports.NONE = 0;\n exports.DEFLATE = 1;\n exports.INFLATE = 2;\n exports.GZIP = 3;\n exports.GUNZIP = 4;\n exports.DEFLATERAW = 5;\n exports.INFLATERAW = 6;\n exports.UNZIP = 7;\n var GZIP_HEADER_ID1 = 0x1f;\n var GZIP_HEADER_ID2 = 0x8b;\n\n /**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\n function Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n }\n Zlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n this.pending_close = false;\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n this.mode = exports.NONE;\n this.dictionary = null;\n };\n Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n };\n Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n };\n Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n this.write_in_progress = true;\n assert.equal(false, flush === undefined, 'must provide flush value');\n this.write_in_progress = true;\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n if (input == null) {\n input = Buffer.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n if (!async) {\n // sync version\n this._process();\n if (this._checkError()) {\n return this._afterSync();\n }\n return;\n }\n\n // async version\n var self = this;\n browser$1.nextTick(function () {\n self._process();\n self._after();\n });\n return this;\n };\n Zlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false;\n return [avail_in, avail_out];\n };\n Zlib.prototype._process = function () {\n var next_expected_header_byte = null;\n\n // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n break;\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush\n\n // If data was encoded with dictionary\n );\n if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n };\n Zlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n return false;\n }\n break;\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n return false;\n default:\n // something else.\n this._error('Zlib error');\n return false;\n }\n return true;\n };\n Zlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false;\n\n // call the write() cb\n this.callback(avail_in, avail_out);\n if (this.pending_close) {\n this.close();\n }\n };\n Zlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n this.onerror(message, this.err\n\n // no hope of rescue.\n );\n this.write_in_progress = false;\n if (this.pending_close) {\n this.close();\n }\n };\n Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n this._init(level, windowBits, memLevel, strategy, dictionary);\n this._setDictionary();\n };\n Zlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n };\n Zlib.prototype.reset = function () {\n this._reset();\n this._setDictionary();\n };\n Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n this.flush = exports.Z_NO_FLUSH;\n this.err = exports.Z_OK;\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n this.strm = new Zstream();\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n this.dictionary = dictionary;\n this.write_in_progress = false;\n this.init_done = true;\n };\n Zlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n this.err = exports.Z_OK;\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n }\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n };\n Zlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n }\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n };\n exports.Zlib = Zlib;\n})(binding);\n\nvar require$$3 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_util$1);\n\n(function (exports) {\n\n var Buffer = require$$0.Buffer;\n var Transform = require$$1.Transform;\n var binding$1 = binding;\n var util = require$$3;\n var assert = require$$4.ok;\n var kMaxLength = require$$0.kMaxLength;\n var kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n // zlib doesn't provide these, so kludge them in following the same\n // const naming scheme zlib uses.\n binding$1.Z_MIN_WINDOWBITS = 8;\n binding$1.Z_MAX_WINDOWBITS = 15;\n binding$1.Z_DEFAULT_WINDOWBITS = 15;\n\n // fewer than 64 bytes per chunk is stupid.\n // technically it could work with as few as 8, but even 64 bytes\n // is absurdly low. Usually a MB or more is best.\n binding$1.Z_MIN_CHUNK = 64;\n binding$1.Z_MAX_CHUNK = Infinity;\n binding$1.Z_DEFAULT_CHUNK = 16 * 1024;\n binding$1.Z_MIN_MEMLEVEL = 1;\n binding$1.Z_MAX_MEMLEVEL = 9;\n binding$1.Z_DEFAULT_MEMLEVEL = 8;\n binding$1.Z_MIN_LEVEL = -1;\n binding$1.Z_MAX_LEVEL = 9;\n binding$1.Z_DEFAULT_LEVEL = binding$1.Z_DEFAULT_COMPRESSION;\n\n // expose all the zlib constants\n var bkeys = Object.keys(binding$1);\n for (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true,\n value: binding$1[bkey],\n writable: false\n });\n }\n }\n\n // translation table for return codes.\n var codes = {\n Z_OK: binding$1.Z_OK,\n Z_STREAM_END: binding$1.Z_STREAM_END,\n Z_NEED_DICT: binding$1.Z_NEED_DICT,\n Z_ERRNO: binding$1.Z_ERRNO,\n Z_STREAM_ERROR: binding$1.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding$1.Z_DATA_ERROR,\n Z_MEM_ERROR: binding$1.Z_MEM_ERROR,\n Z_BUF_ERROR: binding$1.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding$1.Z_VERSION_ERROR\n };\n var ckeys = Object.keys(codes);\n for (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n }\n Object.defineProperty(exports, 'codes', {\n enumerable: true,\n value: Object.freeze(codes),\n writable: false\n });\n exports.Deflate = Deflate;\n exports.Inflate = Inflate;\n exports.Gzip = Gzip;\n exports.Gunzip = Gunzip;\n exports.DeflateRaw = DeflateRaw;\n exports.InflateRaw = InflateRaw;\n exports.Unzip = Unzip;\n exports.createDeflate = function (o) {\n return new Deflate(o);\n };\n exports.createInflate = function (o) {\n return new Inflate(o);\n };\n exports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n };\n exports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n };\n exports.createGzip = function (o) {\n return new Gzip(o);\n };\n exports.createGunzip = function (o) {\n return new Gunzip(o);\n };\n exports.createUnzip = function (o) {\n return new Unzip(o);\n };\n\n // Convenience methods.\n // compress/decompress a string or buffer in one step.\n exports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n };\n exports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n };\n exports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n };\n exports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n };\n exports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n };\n exports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n };\n exports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n };\n exports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n };\n exports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n };\n exports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n };\n exports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n };\n exports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n };\n exports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n };\n exports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n };\n function zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n engine.on('error', onError);\n engine.on('end', onEnd);\n engine.end(buffer);\n flow();\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n function onEnd() {\n var buf;\n var err = null;\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n }\n function zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n var flushFlag = engine._finishFlushFlag;\n return engine._processChunk(buffer, flushFlag);\n }\n\n // generic zlib\n // minimal 2-byte header\n function Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding$1.DEFLATE);\n }\n function Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding$1.INFLATE);\n }\n\n // gzip - bigger header, same deflate compression\n function Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding$1.GZIP);\n }\n function Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding$1.GUNZIP);\n }\n\n // raw - no header\n function DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding$1.DEFLATERAW);\n }\n function InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding$1.INFLATERAW);\n }\n\n // auto-detect header.\n function Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding$1.UNZIP);\n }\n function isValidFlushFlag(flag) {\n return flag === binding$1.Z_NO_FLUSH || flag === binding$1.Z_PARTIAL_FLUSH || flag === binding$1.Z_SYNC_FLUSH || flag === binding$1.Z_FULL_FLUSH || flag === binding$1.Z_FINISH || flag === binding$1.Z_BLOCK;\n }\n\n // the Zlib class they all inherit from\n // This thing manages the queue of requests, and returns\n // true or false if there is anything in the queue when\n // you call the .write() method.\n\n function Zlib(opts, mode) {\n var _this = this;\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n Transform.call(this, opts);\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n this._flushFlag = opts.flush || binding$1.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding$1.Z_FINISH;\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n this._handle = new binding$1.Zlib(mode);\n var self = this;\n this._hadError = false;\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n self._hadError = true;\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n this.once('end', this.close);\n Object.defineProperty(this, '_closed', {\n get: function () {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n }\n util.inherits(Zlib, Transform);\n Zlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding$1.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n self._handle.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n browser$1.nextTick(callback);\n }\n };\n Zlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n };\n\n // This is the _flush function called by the transform class,\n // internally, when the last chunk has been written.\n Zlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n };\n Zlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n var ws = this._writableState;\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding$1.Z_FULL_FLUSH;\n }\n if (ws.ended) {\n if (callback) browser$1.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n };\n Zlib.prototype.close = function (callback) {\n _close(this, callback);\n browser$1.nextTick(emitCloseNT, this);\n };\n function _close(engine, callback) {\n if (callback) browser$1.nextTick(callback);\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) return;\n engine._handle.close();\n engine._handle = null;\n }\n function emitCloseNT(self) {\n self.emit('close');\n }\n Zlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n if (!this._handle) return cb(new Error('zlib binding closed'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding$1.Z_NO_FLUSH;\n }\n }\n this._processChunk(chunk, flushFlag, cb);\n };\n Zlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n var self = this;\n var async = typeof cb === 'function';\n if (!async) {\n var buffers = [];\n var nread = 0;\n var error;\n this.on('error', function (er) {\n error = er;\n });\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag, chunk,\n // in\n inOff,\n // in_off\n availInBefore,\n // in_len\n this._buffer,\n // out\n this._offset,\n //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n if (this._hadError) {\n throw error;\n }\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(kRangeErrorMessage);\n }\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n return buf;\n }\n assert(this._handle, 'zlib binding closed');\n var req = this._handle.write(flushFlag, chunk,\n // in\n inOff,\n // in_off\n availInBefore,\n // in_len\n this._buffer,\n // out\n this._offset,\n //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n if (self._hadError) return;\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n if (!async) return true;\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n if (!async) return false;\n\n // finished with the chunk.\n cb();\n }\n };\n util.inherits(Deflate, Zlib);\n util.inherits(Inflate, Zlib);\n util.inherits(Gzip, Zlib);\n util.inherits(Gunzip, Zlib);\n util.inherits(DeflateRaw, Zlib);\n util.inherits(InflateRaw, Zlib);\n util.inherits(Unzip, Zlib);\n})(lib);\nvar zlib = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass PNG {\n static decode(path, fn) {\n {\n throw new Error('PNG.decode not available in browser build');\n }\n }\n static load(path) {\n {\n throw new Error('PNG.load not available in browser build');\n }\n }\n constructor(data) {\n let i;\n this.data = data;\n this.pos = 8; // Skip the default header\n\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.text = {};\n while (true) {\n const chunkSize = this.readUInt32();\n let section = '';\n for (i = 0; i < 4; i++) {\n section += String.fromCharCode(this.data[this.pos++]);\n }\n switch (section) {\n case 'IHDR':\n // we can grab interesting values from here (like width, height, etc)\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 'PLTE':\n this.palette = this.read(chunkSize);\n break;\n case 'IDAT':\n for (i = 0; i < chunkSize; i++) {\n this.imgData.push(this.data[this.pos++]);\n }\n break;\n case 'tRNS':\n // This chunk can only occur once and it must occur after the\n // PLTE chunk and before the IDAT chunk.\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n // Indexed color, RGB. Each byte in this chunk is an alpha for\n // the palette index in the PLTE (\"palette\") chunk up until the\n // last non-opaque entry. Set up an array, stretching over all\n // palette entries which will be 0 (opaque) or 1 (transparent).\n this.transparency.indexed = this.read(chunkSize);\n var short = 255 - this.transparency.indexed.length;\n if (short > 0) {\n for (i = 0; i < short; i++) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n // Greyscale. Corresponding to entries in the PLTE chunk.\n // Grey is two bytes, range 0 .. (2 ^ bit-depth) - 1\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n // True color with proper alpha channel.\n this.transparency.rgb = this.read(chunkSize);\n break;\n }\n break;\n case 'tEXt':\n var text = this.read(chunkSize);\n var index = text.indexOf(0);\n var key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(String, text.slice(index + 1));\n break;\n case 'IEND':\n // we've got everything we need!\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n this.colors = 1;\n break;\n case 2:\n case 6:\n this.colors = 3;\n break;\n }\n this.hasAlphaChannel = [4, 6].includes(this.colorType);\n var colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n switch (this.colors) {\n case 1:\n this.colorSpace = 'DeviceGray';\n break;\n case 3:\n this.colorSpace = 'DeviceRGB';\n break;\n }\n this.imgData = Buffer.from(this.imgData);\n return;\n default:\n // unknown (or unimportant) section, skip it\n this.pos += chunkSize;\n }\n this.pos += 4; // Skip the CRC\n\n if (this.pos > this.data.length) {\n throw new Error('Incomplete or corrupt PNG file');\n }\n }\n }\n read(bytes) {\n const result = new Array(bytes);\n for (let i = 0; i < bytes; i++) {\n result[i] = this.data[this.pos++];\n }\n return result;\n }\n readUInt32() {\n const b1 = this.data[this.pos++] << 24;\n const b2 = this.data[this.pos++] << 16;\n const b3 = this.data[this.pos++] << 8;\n const b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n }\n readUInt16() {\n const b1 = this.data[this.pos++] << 8;\n const b2 = this.data[this.pos++];\n return b1 | b2;\n }\n decodePixels(fn) {\n return zlib.inflate(this.imgData, (err, data) => {\n if (err) throw err;\n var pos = 0;\n const {\n width,\n height\n } = this;\n var pixelBytes = this.pixelBitlength / 8;\n const pixels = Buffer.alloc(width * height * pixelBytes);\n function pass(x0, y0, dx, dy, singlePass) {\n if (singlePass === void 0) {\n singlePass = false;\n }\n const w = Math.ceil((width - x0) / dx);\n const h = Math.ceil((height - y0) / dy);\n const scanlineLength = pixelBytes * w;\n const buffer = singlePass ? pixels : Buffer.alloc(scanlineLength * h);\n let row = 0;\n let c = 0;\n while (row < h && pos < data.length) {\n var byte;\n var col;\n var i;\n var left;\n var upper;\n switch (data[pos++]) {\n case 0:\n // None\n for (i = 0; i < scanlineLength; i++) {\n buffer[c++] = data[pos++];\n }\n break;\n case 1:\n // Sub\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n buffer[c++] = (byte + left) % 256;\n }\n break;\n case 2:\n // Up\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (upper + byte) % 256;\n }\n break;\n case 3:\n // Average\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (byte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n // Paeth\n for (i = 0; i < scanlineLength; i++) {\n var paeth;\n var upperLeft;\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper = buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n upperLeft = col && buffer[(row - 1) * scanlineLength + (col - 1) * pixelBytes + i % pixelBytes];\n }\n const p = left + upper - upperLeft;\n const pa = Math.abs(p - left);\n const pb = Math.abs(p - upper);\n const 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 buffer[c++] = (byte + paeth) % 256;\n }\n break;\n default:\n throw new Error(`Invalid filter algorithm: ${data[pos - 1]}`);\n }\n if (!singlePass) {\n let pixelsPos = ((y0 + row * dy) * width + x0) * pixelBytes;\n let bufferPos = row * scanlineLength;\n for (i = 0; i < w; i++) {\n for (let j = 0; j < pixelBytes; j++) pixels[pixelsPos++] = buffer[bufferPos++];\n pixelsPos += (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 pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1, true);\n }\n return fn(pixels);\n });\n }\n decodePalette() {\n const {\n palette\n } = this;\n const {\n length\n } = palette;\n const transparency = this.transparency.indexed || [];\n const ret = Buffer.alloc(transparency.length + length);\n let pos = 0;\n let c = 0;\n for (let i = 0; i < length; i += 3) {\n var left;\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (left = transparency[c++]) != null ? left : 255;\n }\n return ret;\n }\n copyToImageData(imageData, pixels) {\n let j;\n var k;\n let {\n colors\n } = this;\n let palette = null;\n let alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette = this._decodedPalette || (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n const data = imageData.data || imageData;\n const {\n length\n } = data;\n const input = palette || pixels;\n let i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n const 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 decode(fn) {\n const ret = Buffer.alloc(this.width * this.height * 4);\n return this.decodePixels(pixels => {\n this.copyToImageData(ret, pixels);\n return fn(ret);\n });\n }\n}\n\nexport { PNG as default };\n","import require$$1$2 from 'pako/lib/zlib/zstream.js';\nimport require$$2 from 'pako/lib/zlib/deflate.js';\nimport require$$3$1 from 'pako/lib/zlib/inflate.js';\nimport require$$4$1 from 'pako/lib/zlib/constants.js';\nimport MD5 from 'crypto-js/md5.js';\nimport * as fontkit from 'fontkit';\nimport _JPEG from 'jay-peg';\nimport PNG from '@react-pdf/png-js';\nimport * as CryptoJS from 'crypto-js/core.js';\n\nvar global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray$1 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer$2.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer$2.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$2.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$2(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer$2 (arg, encodingOrOffset, length) {\n if (!Buffer$2.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$2)) {\n return new Buffer$2(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from$1(this, arg, encodingOrOffset, length)\n}\n\nBuffer$2.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer$2._augment = function (arr) {\n arr.__proto__ = Buffer$2.prototype;\n return arr\n};\n\nfunction from$1 (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer$2.from = function (value, encodingOrOffset, length) {\n return from$1(null, value, encodingOrOffset, length)\n};\n\nif (Buffer$2.TYPED_ARRAY_SUPPORT) {\n Buffer$2.prototype.__proto__ = Uint8Array.prototype;\n Buffer$2.__proto__ = Uint8Array;\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer$2[Symbol.species] === Buffer$2) ;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer$2.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer$2.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer$2.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer$2.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$2.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$2.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$1(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer$2.alloc(+length)\n}\nBuffer$2.isBuffer = isBuffer$1;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer$2.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer$2.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer$2.concat = function concat (list, length) {\n if (!isArray$1(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$2.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$2.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer$2.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer$2.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer$2.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer$2.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer$2.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer$2.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer$2.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$2.compare(this, b) === 0\n};\n\nBuffer$2.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return ''\n};\n\nBuffer$2.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer$2.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer$2.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer$2.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer$2.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer$2.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer$2.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer$2.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex$1(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer$2.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$2.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$2(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer$2.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer$2.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer$2.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer$2.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer$2.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer$2.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer$2.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer$2.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$2.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$2.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer$2.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$2.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$2.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer$2.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer$2.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer$2.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer$2.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer$2.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer$2.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$2.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$2.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer$2.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer$2.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$2.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer$2.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$2.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer$2.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$2.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$2.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$2.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer$2.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$2.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer$2.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$2.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer$2.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer$2.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer$2.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer$2.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer$2.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer$2.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$2.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer$2.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer$2.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer$2(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex$1 (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer$1(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nvar _polyfillNode_buffer = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Buffer: Buffer$2,\n INSPECT_MAX_BYTES: INSPECT_MAX_BYTES,\n SlowBuffer: SlowBuffer,\n isBuffer: isBuffer$1,\n kMaxLength: _kMaxLength\n});\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n\tif (typeof f == \"function\") {\n\t\tvar a = function a () {\n\t\t\tif (this instanceof a) {\n return Reflect.construct(f, arguments, this.constructor);\n\t\t\t}\n\t\t\treturn f.apply(this, arguments);\n\t\t};\n\t\ta.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nvar readableBrowser = {exports: {}};\n\nvar _registry = {};\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser$1 = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config$1 = {};\n\nfunction noop$2() {}\n\nvar on = noop$2;\nvar addListener = noop$2;\nvar once$2 = noop$2;\nvar off = noop$2;\nvar removeListener = noop$2;\nvar removeAllListeners = noop$2;\nvar emit = noop$2;\n\nfunction binding$1(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global$1.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser$1,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once$2,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding$1,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config$1,\n uptime: uptime\n};\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n \n// Alias for removeListener added in NodeJS 10.0\n// https://nodejs.org/api/events.html#events_emitter_off_eventname_listener\nEventEmitter.prototype.off = function(type, listener){\n return this.removeListener(type, listener);\n};\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nvar _polyfillNode_events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n EventEmitter: EventEmitter,\n default: EventEmitter\n});\n\nvar require$$1$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_events);\n\nvar streamBrowser = require$$1$1.EventEmitter;\n\nvar require$$0 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_buffer);\n\nvar inherits$2;\nif (typeof Object.create === 'function'){\n inherits$2 = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits$2 = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$3 = inherits$2;\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nfunction format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect$1(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect$1(x);\n }\n }\n return str;\n}\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nfunction deprecate$1(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global$1.process)) {\n return function() {\n return deprecate$1(fn, msg).apply(this, arguments);\n };\n }\n\n if (browser$1$1.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (browser$1$1.throwDeprecation) {\n throw new Error(msg);\n } else if (browser$1$1.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\nvar debugs = {};\nvar debugEnviron;\nfunction debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = browser$1$1.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n}\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect$1(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect$1.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect$1.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect$1.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect$1.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect$1.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect$1 &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nfunction isBuffer(maybeBuf) {\n return Buffer$2.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad$1(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad$1(d.getHours()),\n pad$1(d.getMinutes()),\n pad$1(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nfunction log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\nfunction _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nfunction promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\npromisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { browser$1$1.nextTick(cb.bind(null, null, ret)); },\n function(rej) { browser$1$1.nextTick(callbackifyOnRejected.bind(null, rej, cb)); });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nvar _polyfillNode_util = {\n inherits: inherits$3,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect$1,\n deprecate: deprecate$1,\n format: format,\n debuglog: debuglog,\n promisify: promisify,\n callbackify: callbackify,\n};\n\nvar _polyfillNode_util$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _extend: _extend,\n callbackify: callbackify,\n debuglog: debuglog,\n default: _polyfillNode_util,\n deprecate: deprecate$1,\n format: format,\n inherits: inherits$3,\n inspect: inspect$1,\n isArray: isArray,\n isBoolean: isBoolean,\n isBuffer: isBuffer,\n isDate: isDate,\n isError: isError,\n isFunction: isFunction,\n isNull: isNull,\n isNullOrUndefined: isNullOrUndefined,\n isNumber: isNumber,\n isObject: isObject,\n isPrimitive: isPrimitive,\n isRegExp: isRegExp,\n isString: isString,\n isSymbol: isSymbol,\n isUndefined: isUndefined,\n log: log,\n promisify: promisify\n});\n\nvar require$$3 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_util$1);\n\nvar buffer_list;\nvar hasRequiredBuffer_list;\nfunction requireBuffer_list() {\n if (hasRequiredBuffer_list) return buffer_list;\n hasRequiredBuffer_list = 1;\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require$$0,\n Buffer = _require.Buffer;\n var _require2 = require$$3,\n inspect = _require2.inspect;\n var custom = inspect && inspect.custom || 'inspect';\n function copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n }\n buffer_list = /*#__PURE__*/\n function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n return buffer_list;\n}\n\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n browser$1$1.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n browser$1$1.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n browser$1$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n browser$1$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n browser$1$1.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n browser$1$1.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n browser$1$1.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy$2(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nvar destroy_1 = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy$2\n};\n\nvar errorsBrowser = {};\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar codes = {};\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nerrorsBrowser.codes = codes;\n\nvar ERR_INVALID_OPT_VALUE = errorsBrowser.codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark$2(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n } // Default value\n\n return state.objectMode ? 16 : 16 * 1024;\n}\nvar state = {\n getHighWaterMark: getHighWaterMark$2\n};\n\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$1 = inherits;\n\nvar _polyfillNode_inherits = /*#__PURE__*/Object.freeze({\n __proto__: null,\n default: inherits$1\n});\n\nvar require$$1 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_inherits);\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// 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 permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// 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\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar isBufferEncoding = Buffer$2.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nfunction StringDecoder$1(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$2(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n}\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder$1.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder$1.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder$1.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\nvar _polyfillNode_string_decoder = /*#__PURE__*/Object.freeze({\n __proto__: null,\n StringDecoder: StringDecoder$1\n});\n\nvar require$$10 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_string_decoder);\n\nvar ERR_STREAM_PREMATURE_CLOSE = errorsBrowser.codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once$1(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop$1() {}\nfunction isRequest$1(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos$1(stream, opts, callback) {\n if (typeof opts === 'function') return eos$1(stream, null, opts);\n if (!opts) opts = {};\n callback = once$1(callback || noop$1);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest$1(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nvar endOfStream = eos$1;\n\nvar async_iterator;\nvar hasRequiredAsync_iterator;\nfunction requireAsync_iterator() {\n if (hasRequiredAsync_iterator) return async_iterator;\n hasRequiredAsync_iterator = 1;\n var _Object$setPrototypeO;\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n var finished = endOfStream;\n var kLastResolve = Symbol('lastResolve');\n var kLastReject = Symbol('lastReject');\n var kError = Symbol('error');\n var kEnded = Symbol('ended');\n var kLastPromise = Symbol('lastPromise');\n var kHandlePromise = Symbol('handlePromise');\n var kStream = Symbol('stream');\n function createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n browser$1$1.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n browser$1$1.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n }), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n };\n async_iterator = createReadableStreamAsyncIterator;\n return async_iterator;\n}\n\nvar fromBrowser;\nvar hasRequiredFromBrowser;\nfunction requireFromBrowser() {\n if (hasRequiredFromBrowser) return fromBrowser;\n hasRequiredFromBrowser = 1;\n fromBrowser = function () {\n throw new Error('Readable.from is not available in the browser');\n };\n return fromBrowser;\n}\n\nconst Registry$4 = _registry;\nRegistry$4.Readable = Readable;\nReadable.ReadableState = ReadableState;\n/**/\n\nrequire$$1$1.EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\nvar Stream$1 = streamBrowser;\n/**/\n\nvar Buffer$1 = require$$0.Buffer;\nvar OurUint8Array$1 = commonjsGlobal.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer$1(chunk) {\n return Buffer$1.from(chunk);\n}\nfunction _isUint8Array$1(obj) {\n return Buffer$1.isBuffer(obj) || obj instanceof OurUint8Array$1;\n}\n/**/\n\nvar debugUtil = require$$3;\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = requireBuffer_list();\nvar destroyImpl$1 = destroy_1;\nvar _require$1 = state,\n getHighWaterMark$1 = _require$1.getHighWaterMark;\nvar _require$codes$3 = errorsBrowser.codes,\n ERR_INVALID_ARG_TYPE$1 = _require$codes$3.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes$3.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED$2 = _require$codes$3.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes$3.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire$$1(Readable, Stream$1);\nvar errorOrDestroy$1 = destroyImpl$1.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Registry$4.Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark$1(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require$$10.StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Registry$4.Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream$1.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl$1.destroy;\nReadable.prototype._undestroy = destroyImpl$1.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer$1.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy$1(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer$1.prototype) {\n chunk = _uint8ArrayToBuffer$1(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy$1(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy$1(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array$1(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE$1('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require$$10.StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n browser$1$1.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n browser$1$1.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\nReadable.prototype._read = function (n) {\n errorOrDestroy$1(this, new ERR_METHOD_NOT_IMPLEMENTED$2('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== browser$1$1.stdout && dest !== browser$1$1.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) browser$1$1.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy$1(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n return this;\n } // try to find the right one.\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream$1.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n browser$1$1.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream$1.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n browser$1$1.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream$1.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n browser$1$1.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n browser$1$1.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = requireAsync_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n browser$1$1.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = requireFromBrowser();\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n/**\n * Module exports.\n */\n\nvar browser = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate(fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config(name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!commonjsGlobal.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = commonjsGlobal.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n\nconst Registry$3 = _registry;\nRegistry$3.Writable = Writable;\n// there will be only 2 of these for each stream\n\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: browser\n};\n/**/\n\n/**/\n\nvar Stream = streamBrowser;\n/**/\n\nvar Buffer = require$$0.Buffer;\nvar OurUint8Array = commonjsGlobal.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = destroy_1;\nvar _require = state,\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes$2 = errorsBrowser.codes,\n ERR_INVALID_ARG_TYPE = _require$codes$2.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED$1 = _require$codes$2.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK$1 = _require$codes$2.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes$2.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED$1 = _require$codes$2.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes$2.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes$2.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes$2.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire$$1(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Registry$3.Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Registry$3.Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n browser$1$1.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n browser$1$1.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED$1('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n browser$1$1.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n browser$1$1.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK$1();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n browser$1$1.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED$1('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish$1(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n browser$1$1.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish$1(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) browser$1$1.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n/**/\n\nvar objectKeys$1 = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }\n return keys;\n};\n/**/\n\nconst Registry$2 = _registry;\nRegistry$2.Duplex = Duplex;\nrequire$$1(Duplex, Registry$2.Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys$1(Registry$2.Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Registry$2.Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Registry$2.Readable.call(this, options);\n Registry$2.Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n browser$1$1.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nconst Registry$1 = _registry;\nRegistry$1.Transform = Transform$1;\nvar _require$codes$1 = errorsBrowser.codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes$1.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes$1.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes$1.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes$1.ERR_TRANSFORM_WITH_LENGTH_0;\nrequire$$1(Transform$1, Registry$1.Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform$1(options) {\n if (!(this instanceof Transform$1)) return new Transform$1(options);\n Registry$1.Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform$1.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Registry$1.Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\nTransform$1.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform$1.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\nTransform$1.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform$1.prototype._destroy = function (err, cb) {\n Registry$1.Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}\n\nconst Registry = _registry;\nRegistry.PassThrough = PassThrough;\nrequire$$1(PassThrough, Registry.Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = errorsBrowser.codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = endOfStream;\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nvar pipeline_1 = pipeline;\n\n(function (module, exports) {\n const Registry = _registry;\n exports = module.exports = Registry.Readable;\n exports.Stream = Registry.Readable;\n exports.Readable = Registry.Readable;\n exports.Writable = Registry.Writable;\n exports.Duplex = Registry.Duplex;\n exports.Transform = Registry.Transform;\n exports.PassThrough = Registry.PassThrough;\n exports.finished = endOfStream;\n exports.pipeline = pipeline_1;\n})(readableBrowser, readableBrowser.exports);\nvar readableBrowserExports = readableBrowser.exports;\nvar stream = /*@__PURE__*/getDefaultExportFromCjs(readableBrowserExports);\n\nvar lib = {};\n\nvar binding = {};\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\nvar pSlice = Array.prototype.slice;\nvar _functionsHaveNames;\nfunction functionsHaveNames() {\n if (typeof _functionsHaveNames !== 'undefined') {\n return _functionsHaveNames;\n }\n return _functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n }());\n}\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer$1(arrbuf)) {\n return false;\n }\n if (typeof global$1.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nfunction assert(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!isFunction(func)) {\n return;\n }\n if (functionsHaveNames()) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = AssertionError;\nfunction AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}\n\n// assert.AssertionError instanceof Error\ninherits$3(AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames() || !isFunction(something)) {\n return inspect$1(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\nassert.equal = equal;\nfunction equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', equal);\n}\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\nassert.notEqual = notEqual;\nfunction notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', notEqual);\n }\n}\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\nassert.deepEqual = deepEqual;\nfunction deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', deepEqual);\n }\n}\nassert.deepStrictEqual = deepStrictEqual;\nfunction deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', deepStrictEqual);\n }\n}\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer$1(actual) && isBuffer$1(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer$1(actual) !== isBuffer$1(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\nassert.notDeepEqual = notDeepEqual;\nfunction notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', notDeepEqual);\n }\n}\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\nassert.strictEqual = strictEqual;\nfunction strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', strictEqual);\n }\n}\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\nassert.notStrictEqual = notStrictEqual;\nfunction notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', notStrictEqual);\n }\n}\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\nassert.throws = throws;\nfunction throws(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n}\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = doesNotThrow;\nfunction doesNotThrow(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n}\n\nassert.ifError = ifError;\nfunction ifError(err) {\n if (err) throw err;\n}\n\nvar _polyfillNode_assert = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AssertionError: AssertionError,\n assert: ok,\n deepEqual: deepEqual,\n deepStrictEqual: deepStrictEqual,\n default: assert,\n doesNotThrow: doesNotThrow,\n equal: equal,\n fail: fail,\n ifError: ifError,\n notDeepEqual: notDeepEqual,\n notDeepStrictEqual: notDeepStrictEqual,\n notEqual: notEqual,\n notStrictEqual: notStrictEqual,\n ok: ok,\n strictEqual: strictEqual,\n throws: throws\n});\n\nvar require$$4 = /*@__PURE__*/getAugmentedNamespace(_polyfillNode_assert);\n\n(function (exports) {\n\n /* eslint camelcase: \"off\" */\n var assert = require$$4;\n var Zstream = require$$1$2;\n var zlib_deflate = require$$2;\n var zlib_inflate = require$$3$1;\n var constants = require$$4$1;\n for (var key in constants) {\n exports[key] = constants[key];\n }\n\n // zlib modes\n exports.NONE = 0;\n exports.DEFLATE = 1;\n exports.INFLATE = 2;\n exports.GZIP = 3;\n exports.GUNZIP = 4;\n exports.DEFLATERAW = 5;\n exports.INFLATERAW = 6;\n exports.UNZIP = 7;\n var GZIP_HEADER_ID1 = 0x1f;\n var GZIP_HEADER_ID2 = 0x8b;\n\n /**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\n function Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n }\n Zlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n this.pending_close = false;\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n this.mode = exports.NONE;\n this.dictionary = null;\n };\n Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n };\n Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n };\n Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n this.write_in_progress = true;\n assert.equal(false, flush === undefined, 'must provide flush value');\n this.write_in_progress = true;\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n if (input == null) {\n input = Buffer$2.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n if (!async) {\n // sync version\n this._process();\n if (this._checkError()) {\n return this._afterSync();\n }\n return;\n }\n\n // async version\n var self = this;\n browser$1$1.nextTick(function () {\n self._process();\n self._after();\n });\n return this;\n };\n Zlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false;\n return [avail_in, avail_out];\n };\n Zlib.prototype._process = function () {\n var next_expected_header_byte = null;\n\n // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n break;\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush\n\n // If data was encoded with dictionary\n );\n if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n };\n Zlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n return false;\n }\n break;\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n return false;\n default:\n // something else.\n this._error('Zlib error');\n return false;\n }\n return true;\n };\n Zlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false;\n\n // call the write() cb\n this.callback(avail_in, avail_out);\n if (this.pending_close) {\n this.close();\n }\n };\n Zlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n this.onerror(message, this.err\n\n // no hope of rescue.\n );\n this.write_in_progress = false;\n if (this.pending_close) {\n this.close();\n }\n };\n Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n this._init(level, windowBits, memLevel, strategy, dictionary);\n this._setDictionary();\n };\n Zlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n };\n Zlib.prototype.reset = function () {\n this._reset();\n this._setDictionary();\n };\n Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n this.flush = exports.Z_NO_FLUSH;\n this.err = exports.Z_OK;\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n this.strm = new Zstream();\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n this.dictionary = dictionary;\n this.write_in_progress = false;\n this.init_done = true;\n };\n Zlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n this.err = exports.Z_OK;\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n }\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n };\n Zlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n }\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n };\n exports.Zlib = Zlib;\n})(binding);\n\n(function (exports) {\n\n var Buffer = require$$0.Buffer;\n var Transform = readableBrowserExports.Transform;\n var binding$1 = binding;\n var util = require$$3;\n var assert = require$$4.ok;\n var kMaxLength = require$$0.kMaxLength;\n var kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n // zlib doesn't provide these, so kludge them in following the same\n // const naming scheme zlib uses.\n binding$1.Z_MIN_WINDOWBITS = 8;\n binding$1.Z_MAX_WINDOWBITS = 15;\n binding$1.Z_DEFAULT_WINDOWBITS = 15;\n\n // fewer than 64 bytes per chunk is stupid.\n // technically it could work with as few as 8, but even 64 bytes\n // is absurdly low. Usually a MB or more is best.\n binding$1.Z_MIN_CHUNK = 64;\n binding$1.Z_MAX_CHUNK = Infinity;\n binding$1.Z_DEFAULT_CHUNK = 16 * 1024;\n binding$1.Z_MIN_MEMLEVEL = 1;\n binding$1.Z_MAX_MEMLEVEL = 9;\n binding$1.Z_DEFAULT_MEMLEVEL = 8;\n binding$1.Z_MIN_LEVEL = -1;\n binding$1.Z_MAX_LEVEL = 9;\n binding$1.Z_DEFAULT_LEVEL = binding$1.Z_DEFAULT_COMPRESSION;\n\n // expose all the zlib constants\n var bkeys = Object.keys(binding$1);\n for (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true,\n value: binding$1[bkey],\n writable: false\n });\n }\n }\n\n // translation table for return codes.\n var codes = {\n Z_OK: binding$1.Z_OK,\n Z_STREAM_END: binding$1.Z_STREAM_END,\n Z_NEED_DICT: binding$1.Z_NEED_DICT,\n Z_ERRNO: binding$1.Z_ERRNO,\n Z_STREAM_ERROR: binding$1.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding$1.Z_DATA_ERROR,\n Z_MEM_ERROR: binding$1.Z_MEM_ERROR,\n Z_BUF_ERROR: binding$1.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding$1.Z_VERSION_ERROR\n };\n var ckeys = Object.keys(codes);\n for (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n }\n Object.defineProperty(exports, 'codes', {\n enumerable: true,\n value: Object.freeze(codes),\n writable: false\n });\n exports.Deflate = Deflate;\n exports.Inflate = Inflate;\n exports.Gzip = Gzip;\n exports.Gunzip = Gunzip;\n exports.DeflateRaw = DeflateRaw;\n exports.InflateRaw = InflateRaw;\n exports.Unzip = Unzip;\n exports.createDeflate = function (o) {\n return new Deflate(o);\n };\n exports.createInflate = function (o) {\n return new Inflate(o);\n };\n exports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n };\n exports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n };\n exports.createGzip = function (o) {\n return new Gzip(o);\n };\n exports.createGunzip = function (o) {\n return new Gunzip(o);\n };\n exports.createUnzip = function (o) {\n return new Unzip(o);\n };\n\n // Convenience methods.\n // compress/decompress a string or buffer in one step.\n exports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n };\n exports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n };\n exports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n };\n exports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n };\n exports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n };\n exports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n };\n exports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n };\n exports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n };\n exports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n };\n exports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n };\n exports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n };\n exports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n };\n exports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n };\n exports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n };\n function zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n engine.on('error', onError);\n engine.on('end', onEnd);\n engine.end(buffer);\n flow();\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n function onEnd() {\n var buf;\n var err = null;\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n }\n function zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n var flushFlag = engine._finishFlushFlag;\n return engine._processChunk(buffer, flushFlag);\n }\n\n // generic zlib\n // minimal 2-byte header\n function Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding$1.DEFLATE);\n }\n function Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding$1.INFLATE);\n }\n\n // gzip - bigger header, same deflate compression\n function Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding$1.GZIP);\n }\n function Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding$1.GUNZIP);\n }\n\n // raw - no header\n function DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding$1.DEFLATERAW);\n }\n function InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding$1.INFLATERAW);\n }\n\n // auto-detect header.\n function Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding$1.UNZIP);\n }\n function isValidFlushFlag(flag) {\n return flag === binding$1.Z_NO_FLUSH || flag === binding$1.Z_PARTIAL_FLUSH || flag === binding$1.Z_SYNC_FLUSH || flag === binding$1.Z_FULL_FLUSH || flag === binding$1.Z_FINISH || flag === binding$1.Z_BLOCK;\n }\n\n // the Zlib class they all inherit from\n // This thing manages the queue of requests, and returns\n // true or false if there is anything in the queue when\n // you call the .write() method.\n\n function Zlib(opts, mode) {\n var _this = this;\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n Transform.call(this, opts);\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n this._flushFlag = opts.flush || binding$1.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding$1.Z_FINISH;\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n this._handle = new binding$1.Zlib(mode);\n var self = this;\n this._hadError = false;\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n self._hadError = true;\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n this.once('end', this.close);\n Object.defineProperty(this, '_closed', {\n get: function () {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n }\n util.inherits(Zlib, Transform);\n Zlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding$1.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n self._handle.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n browser$1$1.nextTick(callback);\n }\n };\n Zlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n };\n\n // This is the _flush function called by the transform class,\n // internally, when the last chunk has been written.\n Zlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n };\n Zlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n var ws = this._writableState;\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding$1.Z_FULL_FLUSH;\n }\n if (ws.ended) {\n if (callback) browser$1$1.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n };\n Zlib.prototype.close = function (callback) {\n _close(this, callback);\n browser$1$1.nextTick(emitCloseNT, this);\n };\n function _close(engine, callback) {\n if (callback) browser$1$1.nextTick(callback);\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) return;\n engine._handle.close();\n engine._handle = null;\n }\n function emitCloseNT(self) {\n self.emit('close');\n }\n Zlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n if (!this._handle) return cb(new Error('zlib binding closed'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding$1.Z_NO_FLUSH;\n }\n }\n this._processChunk(chunk, flushFlag, cb);\n };\n Zlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n var self = this;\n var async = typeof cb === 'function';\n if (!async) {\n var buffers = [];\n var nread = 0;\n var error;\n this.on('error', function (er) {\n error = er;\n });\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag, chunk,\n // in\n inOff,\n // in_off\n availInBefore,\n // in_len\n this._buffer,\n // out\n this._offset,\n //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n if (this._hadError) {\n throw error;\n }\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(kRangeErrorMessage);\n }\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n return buf;\n }\n assert(this._handle, 'zlib binding closed');\n var req = this._handle.write(flushFlag, chunk,\n // in\n inOff,\n // in_off\n availInBefore,\n // in_len\n this._buffer,\n // out\n this._offset,\n //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n if (self._hadError) return;\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n if (!async) return true;\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n if (!async) return false;\n\n // finished with the chunk.\n cb();\n }\n };\n util.inherits(Deflate, Zlib);\n util.inherits(Inflate, Zlib);\n util.inherits(Gzip, Zlib);\n util.inherits(Gunzip, Zlib);\n util.inherits(DeflateRaw, Zlib);\n util.inherits(InflateRaw, Zlib);\n util.inherits(Unzip, Zlib);\n})(lib);\nvar zlib = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass PDFReference extends stream.Writable {\n constructor(document, id, data) {\n super({\n decodeStrings: false\n });\n this.finalize = this.finalize.bind(this);\n this.document = document;\n this.id = id;\n if (data == null) {\n data = {};\n }\n this.data = data;\n this.gen = 0;\n this.deflate = null;\n this.compress = this.document.compress && !this.data.Filter;\n this.uncompressedLength = 0;\n this.chunks = [];\n }\n initDeflate() {\n this.data.Filter = 'FlateDecode';\n this.deflate = zlib.createDeflate();\n this.deflate.on('data', chunk => {\n this.chunks.push(chunk);\n return this.data.Length += chunk.length;\n });\n return this.deflate.on('end', this.finalize);\n }\n _write(chunk, encoding, callback) {\n if (!(chunk instanceof Uint8Array)) {\n chunk = Buffer$2.from(chunk + '\\n', 'binary');\n }\n this.uncompressedLength += chunk.length;\n if (this.data.Length == null) {\n this.data.Length = 0;\n }\n if (this.compress) {\n if (!this.deflate) {\n this.initDeflate();\n }\n this.deflate.write(chunk);\n } else {\n this.chunks.push(chunk);\n this.data.Length += chunk.length;\n }\n return callback();\n }\n end() {\n super.end(...arguments);\n if (this.deflate) {\n return this.deflate.end();\n }\n return this.finalize();\n }\n finalize() {\n this.offset = this.document._offset;\n this.document._write(`${this.id} ${this.gen} obj`);\n this.document._write(PDFObject$1.convert(this.data));\n if (this.chunks.length) {\n this.document._write('stream');\n for (let chunk of Array.from(this.chunks)) {\n this.document._write(chunk);\n }\n this.chunks.length = 0; // free up memory\n this.document._write('\\nendstream');\n }\n this.document._write('endobj');\n return this.document._refEnd(this);\n }\n toString() {\n return `${this.id} ${this.gen} R`;\n }\n}\n\n/*\nPDFTree - abstract base class for name and number tree objects\n*/\n\nclass PDFTree {\n constructor(options) {\n if (options === void 0) {\n options = {};\n }\n this._items = {};\n // disable /Limits output for this tree\n this.limits = typeof options.limits === 'boolean' ? options.limits : true;\n }\n add(key, val) {\n return this._items[key] = val;\n }\n get(key) {\n return this._items[key];\n }\n toString() {\n // Needs to be sorted by key\n const sortedKeys = Object.keys(this._items).sort((a, b) => this._compareKeys(a, b));\n const out = ['<<'];\n if (this.limits && sortedKeys.length > 1) {\n const first = sortedKeys[0],\n last = sortedKeys[sortedKeys.length - 1];\n out.push(` /Limits ${PDFObject$1.convert([this._dataForKey(first), this._dataForKey(last)])}`);\n }\n out.push(` /${this._keysName()} [`);\n for (let key of sortedKeys) {\n out.push(` ${PDFObject$1.convert(this._dataForKey(key))} ${PDFObject$1.convert(this._items[key])}`);\n }\n out.push(']');\n out.push('>>');\n return out.join('\\n');\n }\n _compareKeys( /*a, b*/\n ) {\n throw new Error('Must be implemented by subclasses');\n }\n _keysName() {\n throw new Error('Must be implemented by subclasses');\n }\n _dataForKey( /*k*/\n ) {\n throw new Error('Must be implemented by subclasses');\n }\n}\n\n/*\nPDFNameTree - represents a name tree object\n*/\n\nclass PDFNameTree extends PDFTree {\n _compareKeys(a, b) {\n return a.localeCompare(b);\n }\n _keysName() {\n return 'Names';\n }\n _dataForKey(k) {\n return new String(k);\n }\n}\n\nconst escapableRe = /[\\n\\r\\t\\b\\f\\(\\)\\\\]/g;\nconst escapable = {\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\\\': '\\\\\\\\',\n '(': '\\\\(',\n ')': '\\\\)'\n};\nconst pad = (str, length) => (Array(length + 1).join('0') + str).slice(-length);\n\n// Convert little endian UTF-16 to big endian\nconst swapBytes = function (buff) {\n const l = buff.length;\n if (l & 0x01) {\n throw new Error('Buffer length must be even');\n } else {\n for (let i = 0, end = l - 1; i < end; i += 2) {\n const a = buff[i];\n buff[i] = buff[i + 1];\n buff[i + 1] = a;\n }\n }\n return buff;\n};\nclass PDFObject {\n static convert(object) {\n // String literals are converted to the PDF name type\n if (typeof object === 'string') {\n return `/${object}`;\n }\n\n // String objects are converted to PDF strings (UTF-16)\n if (object instanceof String) {\n let string = object;\n // Detect if this is a unicode string\n let isUnicode = false;\n for (let i = 0, end = string.length; i < end; i++) {\n if (string.charCodeAt(i) > 0x7f) {\n isUnicode = true;\n break;\n }\n }\n\n // If so, encode it as big endian UTF-16\n if (isUnicode) {\n string = swapBytes(Buffer$2.from(`\\ufeff${string}`, 'utf16le')).toString('binary');\n }\n\n // Escape characters as required by the spec\n string = string.replace(escapableRe, c => escapable[c]);\n return `(${string})`;\n\n // Buffers are converted to PDF hex strings\n }\n if (Buffer$2.isBuffer(object)) {\n return `<${object.toString('hex')}>`;\n }\n if (object instanceof PDFReference || object instanceof PDFNameTree) {\n return object.toString();\n }\n if (object instanceof Date) {\n return `(D:${pad(object.getUTCFullYear(), 4)}` + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + 'Z)';\n }\n if (Array.isArray(object)) {\n const items = Array.from(object).map(e => PDFObject.convert(e)).join(' ');\n return `[${items}]`;\n }\n if ({}.toString.call(object) === '[object Object]') {\n const out = ['<<'];\n for (let key in object) {\n const val = object[key];\n out.push(`/${key} ${PDFObject.convert(val)}`);\n }\n out.push('>>');\n return out.join('\\n');\n }\n if (typeof object === 'number') {\n return PDFObject.number(object);\n }\n return `${object}`;\n }\n static number(n) {\n if (n > -1e21 && n < 1e21) {\n return Math.round(n * 1e6) / 1e6;\n }\n throw new Error(`unsupported number: ${n}`);\n }\n}\nvar PDFObject$1 = PDFObject;\n\n/*\nPDFPage - represents a single page in the PDF document\nBy Devon Govett\n*/\n\nconst DEFAULT_MARGINS = {\n top: 72,\n left: 72,\n bottom: 72,\n right: 72\n};\nconst SIZES = {\n '4A0': [4767.87, 6740.79],\n '2A0': [3370.39, 4767.87],\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 RA0: [2437.8, 3458.27],\n RA1: [1729.13, 2437.8],\n RA2: [1218.9, 1729.13],\n RA3: [864.57, 1218.9],\n RA4: [609.45, 864.57],\n SRA0: [2551.18, 3628.35],\n SRA1: [1814.17, 2551.18],\n SRA2: [1275.59, 1814.17],\n SRA3: [907.09, 1275.59],\n SRA4: [637.8, 907.09],\n EXECUTIVE: [521.86, 756.0],\n FOLIO: [612.0, 936.0],\n LEGAL: [612.0, 1008.0],\n LETTER: [612.0, 792.0],\n TABLOID: [792.0, 1224.0]\n};\nclass PDFPage {\n constructor(document, options) {\n if (options === void 0) {\n options = {};\n }\n this.document = document;\n this.size = options.size || 'letter';\n this.layout = options.layout || 'portrait';\n this.userUnit = options.userUnit || 1.0;\n\n // process margins\n if (typeof options.margin === 'number') {\n this.margins = {\n top: options.margin,\n left: options.margin,\n bottom: options.margin,\n right: options.margin\n };\n\n // default to 1 inch margins\n } else {\n this.margins = options.margins || DEFAULT_MARGINS;\n }\n\n // calculate page dimensions\n const dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()];\n this.width = dimensions[this.layout === 'portrait' ? 0 : 1];\n this.height = dimensions[this.layout === 'portrait' ? 1 : 0];\n this.content = this.document.ref();\n\n // Initialize the Font, XObject, and ExtGState dictionaries\n this.resources = this.document.ref({\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI']\n });\n\n // The page dictionary\n this.dictionary = this.document.ref({\n Type: 'Page',\n Parent: this.document._root.data.Pages,\n MediaBox: [0, 0, this.width, this.height],\n Contents: this.content,\n Resources: this.resources,\n UserUnit: this.userUnit\n });\n this.markings = [];\n }\n\n // Lazily create these objects\n get fonts() {\n const data = this.resources.data;\n return data.Font != null ? data.Font : data.Font = {};\n }\n get xobjects() {\n const data = this.resources.data;\n return data.XObject != null ? data.XObject : data.XObject = {};\n }\n get ext_gstates() {\n const data = this.resources.data;\n return data.ExtGState != null ? data.ExtGState : data.ExtGState = {};\n }\n get patterns() {\n const data = this.resources.data;\n return data.Pattern != null ? data.Pattern : data.Pattern = {};\n }\n get colorSpaces() {\n const data = this.resources.data;\n return data.ColorSpace || (data.ColorSpace = {});\n }\n get annotations() {\n const data = this.dictionary.data;\n return data.Annots != null ? data.Annots : data.Annots = [];\n }\n get structParentTreeKey() {\n const data = this.dictionary.data;\n return data.StructParents != null ? data.StructParents : data.StructParents = this.document.createStructParentTreeNextKey();\n }\n maxY() {\n return this.height - this.margins.bottom;\n }\n write(chunk) {\n return this.content.write(chunk);\n }\n end() {\n this.dictionary.end();\n this.resources.end();\n return this.content.end();\n }\n}\n\nconst wordArrayToBuffer = wordArray => {\n const byteArray = [];\n for (let i = 0; i < wordArray.sigBytes; i++) {\n byteArray.push(wordArray.words[Math.floor(i / 4)] >> 8 * (3 - i % 4) & 0xff);\n }\n return Buffer$2.from(byteArray);\n};\nclass PDFSecurity {\n static generateFileID(info) {\n if (info === void 0) {\n info = {};\n }\n let infoStr = `${info.CreationDate.getTime()}\\n`;\n for (let key in info) {\n if (!info.hasOwnProperty(key)) continue;\n infoStr += `${key}: ${info[key].valueOf()}\\n`;\n }\n return wordArrayToBuffer(MD5(infoStr));\n }\n}\n\nconst {\n number: number$2\n} = PDFObject$1;\nlet PDFGradient$1 = class PDFGradient {\n constructor(doc) {\n this.doc = doc;\n this.stops = [];\n this.embedded = false;\n this.transform = [1, 0, 0, 1, 0, 0];\n }\n stop(pos, color, opacity) {\n if (opacity == null) {\n opacity = 1;\n }\n color = this.doc._normalizeColor(color);\n if (this.stops.length === 0) {\n if (color.length === 3) {\n this._colorSpace = 'DeviceRGB';\n } else if (color.length === 4) {\n this._colorSpace = 'DeviceCMYK';\n } else if (color.length === 1) {\n this._colorSpace = 'DeviceGray';\n } else {\n throw new Error('Unknown color space');\n }\n } else if (this._colorSpace === 'DeviceRGB' && color.length !== 3 || this._colorSpace === 'DeviceCMYK' && color.length !== 4 || this._colorSpace === 'DeviceGray' && color.length !== 1) {\n throw new Error('All gradient stops must use the same color space');\n }\n opacity = Math.max(0, Math.min(1, opacity));\n this.stops.push([pos, color, opacity]);\n return this;\n }\n setTransform(m11, m12, m21, m22, dx, dy) {\n this.transform = [m11, m12, m21, m22, dx, dy];\n return this;\n }\n embed(m) {\n let fn;\n const stopsLength = this.stops.length;\n if (stopsLength === 0) {\n return;\n }\n this.embedded = true;\n this.matrix = m;\n\n // if the last stop comes before 100%, add a copy at 100%\n const last = this.stops[stopsLength - 1];\n if (last[0] < 1) {\n this.stops.push([1, last[1], last[2]]);\n }\n const bounds = [];\n const encode = [];\n const stops = [];\n for (let i = 0; i < stopsLength - 1; i++) {\n encode.push(0, 1);\n if (i + 2 !== stopsLength) {\n bounds.push(this.stops[i + 1][0]);\n }\n fn = this.doc.ref({\n FunctionType: 2,\n Domain: [0, 1],\n C0: this.stops[i + 0][1],\n C1: this.stops[i + 1][1],\n N: 1\n });\n stops.push(fn);\n fn.end();\n }\n\n // if there are only two stops, we don't need a stitching function\n if (stopsLength === 1) {\n fn = stops[0];\n } else {\n fn = this.doc.ref({\n FunctionType: 3,\n // stitching function\n Domain: [0, 1],\n Functions: stops,\n Bounds: bounds,\n Encode: encode\n });\n fn.end();\n }\n this.id = `Sh${++this.doc._gradCount}`;\n const shader = this.shader(fn);\n shader.end();\n const pattern = this.doc.ref({\n Type: 'Pattern',\n PatternType: 2,\n Shading: shader,\n Matrix: this.matrix.map(number$2)\n });\n pattern.end();\n if (this.stops.some(stop => stop[2] < 1)) {\n let grad = this.opacityGradient();\n grad._colorSpace = 'DeviceGray';\n for (let stop of this.stops) {\n grad.stop(stop[0], [stop[2]]);\n }\n grad = grad.embed(this.matrix);\n const pageBBox = [0, 0, this.doc.page.width, this.doc.page.height];\n const form = this.doc.ref({\n Type: 'XObject',\n Subtype: 'Form',\n FormType: 1,\n BBox: pageBBox,\n Group: {\n Type: 'Group',\n S: 'Transparency',\n CS: 'DeviceGray'\n },\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n Pattern: {\n Sh1: grad\n }\n }\n });\n form.write('/Pattern cs /Sh1 scn');\n form.end(`${pageBBox.join(' ')} re f`);\n const gstate = this.doc.ref({\n Type: 'ExtGState',\n SMask: {\n Type: 'Mask',\n S: 'Luminosity',\n G: form\n }\n });\n gstate.end();\n const opacityPattern = this.doc.ref({\n Type: 'Pattern',\n PatternType: 1,\n PaintType: 1,\n TilingType: 2,\n BBox: pageBBox,\n XStep: pageBBox[2],\n YStep: pageBBox[3],\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n Pattern: {\n Sh1: pattern\n },\n ExtGState: {\n Gs1: gstate\n }\n }\n });\n opacityPattern.write('/Gs1 gs /Pattern cs /Sh1 scn');\n opacityPattern.end(`${pageBBox.join(' ')} re f`);\n this.doc.page.patterns[this.id] = opacityPattern;\n } else {\n this.doc.page.patterns[this.id] = pattern;\n }\n return pattern;\n }\n apply(stroke) {\n // apply gradient transform to existing document ctm\n const [m0, m1, m2, m3, m4, m5] = this.doc._ctm;\n const [m11, m12, m21, m22, dx, dy] = this.transform;\n const m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];\n if (!this.embedded || m.join(' ') !== this.matrix.join(' ')) {\n this.embed(m);\n }\n this.doc._setColorSpace('Pattern', stroke);\n const op = stroke ? 'SCN' : 'scn';\n return this.doc.addContent(`/${this.id} ${op}`);\n }\n};\nlet PDFLinearGradient$1 = class PDFLinearGradient extends PDFGradient$1 {\n constructor(doc, x1, y1, x2, y2) {\n super(doc);\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n }\n shader(fn) {\n return this.doc.ref({\n ShadingType: 2,\n ColorSpace: this._colorSpace,\n Coords: [this.x1, this.y1, this.x2, this.y2],\n Function: fn,\n Extend: [true, true]\n });\n }\n opacityGradient() {\n return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2);\n }\n};\nlet PDFRadialGradient$1 = class PDFRadialGradient extends PDFGradient$1 {\n constructor(doc, x1, y1, r1, x2, y2, r2) {\n super(doc);\n this.doc = doc;\n this.x1 = x1;\n this.y1 = y1;\n this.r1 = r1;\n this.x2 = x2;\n this.y2 = y2;\n this.r2 = r2;\n }\n shader(fn) {\n return this.doc.ref({\n ShadingType: 3,\n ColorSpace: this._colorSpace,\n Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2],\n Function: fn,\n Extend: [true, true]\n });\n }\n opacityGradient() {\n return new PDFRadialGradient(this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2);\n }\n};\nvar Gradient = {\n PDFGradient: PDFGradient$1,\n PDFLinearGradient: PDFLinearGradient$1,\n PDFRadialGradient: PDFRadialGradient$1\n};\n\n/*\nPDF tiling pattern support. Uncolored only.\n */\n\nconst underlyingColorSpaces = ['DeviceCMYK', 'DeviceRGB'];\nlet PDFTilingPattern$1 = class PDFTilingPattern {\n constructor(doc, bBox, xStep, yStep, stream) {\n this.doc = doc;\n this.bBox = bBox;\n this.xStep = xStep;\n this.yStep = yStep;\n this.stream = stream;\n }\n createPattern() {\n // no resources needed for our current usage\n // required entry\n const resources = this.doc.ref();\n resources.end();\n // apply default transform matrix (flipped in the default doc._ctm)\n // see document.js & gradient.js\n const [m0, m1, m2, m3, m4, m5] = this.doc._ctm;\n const [m11, m12, m21, m22, dx, dy] = [1, 0, 0, 1, 0, 0];\n const m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];\n const pattern = this.doc.ref({\n Type: 'Pattern',\n PatternType: 1,\n // tiling\n PaintType: 2,\n // 1-colored, 2-uncolored\n TilingType: 2,\n // 2-no distortion\n BBox: this.bBox,\n XStep: this.xStep,\n YStep: this.yStep,\n Matrix: m.map(v => +v.toFixed(5)),\n Resources: resources\n });\n pattern.end(this.stream);\n return pattern;\n }\n embedPatternColorSpaces() {\n // map each pattern to an underlying color space\n // and embed on each page\n underlyingColorSpaces.forEach(csName => {\n const csId = this.getPatternColorSpaceId(csName);\n if (this.doc.page.colorSpaces[csId]) return;\n const cs = this.doc.ref(['Pattern', csName]);\n cs.end();\n this.doc.page.colorSpaces[csId] = cs;\n });\n }\n getPatternColorSpaceId(underlyingColorspace) {\n return `CsP${underlyingColorspace}`;\n }\n embed() {\n if (!this.id) {\n this.doc._patternCount = this.doc._patternCount + 1;\n this.id = 'P' + this.doc._patternCount;\n this.pattern = this.createPattern();\n }\n\n // patterns are embedded in each page\n if (!this.doc.page.patterns[this.id]) {\n this.doc.page.patterns[this.id] = this.pattern;\n }\n }\n apply(stroke, patternColor) {\n // do any embedding/creating that might be needed\n this.embedPatternColorSpaces();\n this.embed();\n const normalizedColor = this.doc._normalizeColor(patternColor);\n if (!normalizedColor) throw Error(`invalid pattern color. (value: ${patternColor})`);\n\n // select one of the pattern color spaces\n const csId = this.getPatternColorSpaceId(this.doc._getColorSpace(normalizedColor));\n this.doc._setColorSpace(csId, stroke);\n\n // stroke/fill using the pattern and color (in the above underlying color space)\n const op = stroke ? 'SCN' : 'scn';\n return this.doc.addContent(`${normalizedColor.join(' ')} /${this.id} ${op}`);\n }\n};\nvar pattern = {\n PDFTilingPattern: PDFTilingPattern$1\n};\n\nconst {\n PDFGradient,\n PDFLinearGradient,\n PDFRadialGradient\n} = Gradient;\nconst {\n PDFTilingPattern\n} = pattern;\nvar ColorMixin = {\n initColor() {\n // The opacity dictionaries\n this._opacityRegistry = {};\n this._opacityCount = 0;\n this._patternCount = 0;\n return this._gradCount = 0;\n },\n _normalizeColor(color) {\n if (typeof color === 'string') {\n if (color.charAt(0) === '#') {\n if (color.length === 4) {\n color = color.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i, '#$1$1$2$2$3$3');\n }\n const hex = parseInt(color.slice(1), 16);\n color = [hex >> 16, hex >> 8 & 0xff, hex & 0xff];\n } else if (namedColors[color]) {\n color = namedColors[color];\n }\n }\n if (Array.isArray(color)) {\n // RGB\n if (color.length === 3) {\n color = color.map(part => part / 255);\n // CMYK\n } else if (color.length === 4) {\n color = color.map(part => part / 100);\n }\n return color;\n }\n return null;\n },\n _setColor(color, stroke) {\n if (color instanceof PDFGradient) {\n color.apply(stroke);\n return true;\n // see if tiling pattern, decode & apply it it\n } else if (Array.isArray(color) && color[0] instanceof PDFTilingPattern) {\n color[0].apply(stroke, color[1]);\n return true;\n }\n // any other case should be a normal color and not a pattern\n return this._setColorCore(color, stroke);\n },\n _setColorCore(color, stroke) {\n color = this._normalizeColor(color);\n if (!color) {\n return false;\n }\n const op = stroke ? 'SCN' : 'scn';\n const space = this._getColorSpace(color);\n this._setColorSpace(space, stroke);\n color = color.join(' ');\n this.addContent(`${color} ${op}`);\n return true;\n },\n _setColorSpace(space, stroke) {\n const op = stroke ? 'CS' : 'cs';\n return this.addContent(`/${space} ${op}`);\n },\n _getColorSpace(color) {\n return color.length === 4 ? 'DeviceCMYK' : 'DeviceRGB';\n },\n fillColor(color, opacity) {\n const set = this._setColor(color, false);\n if (set) {\n this.fillOpacity(opacity);\n }\n\n // save this for text wrapper, which needs to reset\n // the fill color on new pages\n this._fillColor = [color, opacity];\n return this;\n },\n strokeColor(color, opacity) {\n const set = this._setColor(color, true);\n if (set) {\n this.strokeOpacity(opacity);\n }\n return this;\n },\n opacity(opacity) {\n this._doOpacity(opacity, opacity);\n return this;\n },\n fillOpacity(opacity) {\n this._doOpacity(opacity, null);\n return this;\n },\n strokeOpacity(opacity) {\n this._doOpacity(null, opacity);\n return this;\n },\n _doOpacity(fillOpacity, strokeOpacity) {\n let dictionary, name;\n if (fillOpacity == null && strokeOpacity == null) {\n return;\n }\n if (fillOpacity != null) {\n fillOpacity = Math.max(0, Math.min(1, fillOpacity));\n }\n if (strokeOpacity != null) {\n strokeOpacity = Math.max(0, Math.min(1, strokeOpacity));\n }\n const key = `${fillOpacity}_${strokeOpacity}`;\n if (this._opacityRegistry[key]) {\n [dictionary, name] = this._opacityRegistry[key];\n } else {\n dictionary = {\n Type: 'ExtGState'\n };\n if (fillOpacity != null) {\n dictionary.ca = fillOpacity;\n }\n if (strokeOpacity != null) {\n dictionary.CA = strokeOpacity;\n }\n dictionary = this.ref(dictionary);\n dictionary.end();\n const id = ++this._opacityCount;\n name = `Gs${id}`;\n this._opacityRegistry[key] = [dictionary, name];\n }\n this.page.ext_gstates[name] = dictionary;\n return this.addContent(`/${name} gs`);\n },\n linearGradient(x1, y1, x2, y2) {\n return new PDFLinearGradient(this, x1, y1, x2, y2);\n },\n radialGradient(x1, y1, r1, x2, y2, r2) {\n return new PDFRadialGradient(this, x1, y1, r1, x2, y2, r2);\n },\n pattern(bbox, xStep, yStep, stream) {\n return new PDFTilingPattern(this, bbox, xStep, yStep, stream);\n }\n};\nvar namedColors = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\n\n/* eslint-disable no-lonely-if */\nlet cx;\nlet cy;\nlet px;\nlet py;\nlet sx;\nlet sy;\ncx = cy = px = py = sx = sy = 0;\n\n// parseDataPath copy pasted from svgo\n// https://github.com/svg/svgo/blob/e4918ccdd1a2b5831defe0f00c1286744b479448/lib/path.js\n\n/**\n * @typedef {'M' | 'm' | 'Z' | 'z' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a'} PathDataCommand\n */\n\n/**\n * @typedef {Object} PathDataItem\n * @property {PathDataCommand} command\n * @property {number[]} args\n */\n\nconst argsCountPerCommand = {\n M: 2,\n m: 2,\n Z: 0,\n z: 0,\n L: 2,\n l: 2,\n H: 1,\n h: 1,\n V: 1,\n v: 1,\n C: 6,\n c: 6,\n S: 4,\n s: 4,\n Q: 4,\n q: 4,\n T: 2,\n t: 2,\n A: 7,\n a: 7\n};\n\n/**\n * @type {(c: string) => c is PathDataCommand}\n */\nconst isCommand = c => {\n return c in argsCountPerCommand;\n};\n\n/**\n * @type {(c: string) => boolean}\n */\nconst isWsp = c => {\n const codePoint = c.codePointAt(0);\n return codePoint === 0x20 || codePoint === 0x9 || codePoint === 0xd || codePoint === 0xa;\n};\n\n/**\n * @type {(c: string) => boolean}\n */\nconst isDigit = c => {\n const codePoint = c.codePointAt(0);\n if (codePoint == null) {\n return false;\n }\n return 48 <= codePoint && codePoint <= 57;\n};\n\n/**\n * @typedef {'none' | 'sign' | 'whole' | 'decimal_point' | 'decimal' | 'e' | 'exponent_sign' | 'exponent'} ReadNumberState\n */\n\n/**\n * @type {(string: string, cursor: number) => [number, number | null]}\n */\nconst readNumber = (string, cursor) => {\n let i = cursor;\n let value = '';\n let state = /** @type {ReadNumberState} */'none';\n for (; i < string.length; i += 1) {\n const c = string[i];\n if (c === '+' || c === '-') {\n if (state === 'none') {\n state = 'sign';\n value += c;\n continue;\n }\n if (state === 'e') {\n state = 'exponent_sign';\n value += c;\n continue;\n }\n }\n if (isDigit(c)) {\n if (state === 'none' || state === 'sign' || state === 'whole') {\n state = 'whole';\n value += c;\n continue;\n }\n if (state === 'decimal_point' || state === 'decimal') {\n state = 'decimal';\n value += c;\n continue;\n }\n if (state === 'e' || state === 'exponent_sign' || state === 'exponent') {\n state = 'exponent';\n value += c;\n continue;\n }\n }\n if (c === '.') {\n if (state === 'none' || state === 'sign' || state === 'whole') {\n state = 'decimal_point';\n value += c;\n continue;\n }\n }\n if (c === 'E' || c === 'e') {\n if (state === 'whole' || state === 'decimal_point' || state === 'decimal') {\n state = 'e';\n value += c;\n continue;\n }\n }\n break;\n }\n const number = Number.parseFloat(value);\n if (Number.isNaN(number)) {\n return [cursor, null];\n }\n // step back to delegate iteration to parent loop\n return [i - 1, number];\n};\n\n/**\n * @type {(string: string) => Array}\n */\nconst parsePathData = string => {\n /**\n * @type {Array}\n */\n const pathData = [];\n /**\n * @type {null | PathDataCommand}\n */\n let command = null;\n let args = /** @type {number[]} */[];\n let argsCount = 0;\n let canHaveComma = false;\n let hadComma = false;\n for (let i = 0; i < string.length; i += 1) {\n const c = string.charAt(i);\n if (isWsp(c)) {\n continue;\n }\n // allow comma only between arguments\n if (canHaveComma && c === ',') {\n if (hadComma) {\n break;\n }\n hadComma = true;\n continue;\n }\n if (isCommand(c)) {\n if (hadComma) {\n return pathData;\n }\n if (command == null) {\n // moveto should be leading command\n if (c !== 'M' && c !== 'm') {\n return pathData;\n }\n } else {\n // stop if previous command arguments are not flushed\n if (args.length !== 0) {\n return pathData;\n }\n }\n command = c;\n args = [];\n argsCount = argsCountPerCommand[command];\n canHaveComma = false;\n // flush command without arguments\n if (argsCount === 0) {\n pathData.push({\n command,\n args\n });\n }\n continue;\n }\n // avoid parsing arguments if no command detected\n if (command == null) {\n return pathData;\n }\n // read next argument\n let newCursor = i;\n let number = null;\n if (command === 'A' || command === 'a') {\n const position = args.length;\n if (position === 0 || position === 1) {\n // allow only positive number without sign as first two arguments\n if (c !== '+' && c !== '-') {\n [newCursor, number] = readNumber(string, i);\n }\n }\n if (position === 2 || position === 5 || position === 6) {\n [newCursor, number] = readNumber(string, i);\n }\n if (position === 3 || position === 4) {\n // read flags\n if (c === '0') {\n number = 0;\n }\n if (c === '1') {\n number = 1;\n }\n }\n } else {\n [newCursor, number] = readNumber(string, i);\n }\n if (number == null) {\n return pathData;\n }\n args.push(number);\n canHaveComma = true;\n hadComma = false;\n i = newCursor;\n // flush arguments when necessary count is reached\n if (args.length === argsCount) {\n pathData.push({\n command,\n args\n });\n // subsequent moveto coordinates are threated as implicit lineto commands\n if (command === 'M') {\n command = 'L';\n }\n if (command === 'm') {\n command = 'l';\n }\n args = [];\n }\n }\n return pathData;\n};\nconst apply = function (commands, doc) {\n // current point, control point, and subpath starting point\n cx = cy = px = py = sx = sy = 0;\n\n // run the commands\n for (let i = 0; i < commands.length; i++) {\n const {\n command,\n args\n } = commands[i];\n if (typeof runners[command] === 'function') {\n runners[command](doc, args);\n }\n }\n};\nconst runners = {\n M(doc, a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return doc.moveTo(cx, cy);\n },\n m(doc, a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return doc.moveTo(cx, cy);\n },\n C(doc, a) {\n cx = a[4];\n cy = a[5];\n px = a[2];\n py = a[3];\n return doc.bezierCurveTo(...a);\n },\n c(doc, a) {\n doc.bezierCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy);\n px = cx + a[2];\n py = cy + a[3];\n cx += a[4];\n return cy += a[5];\n },\n S(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n }\n doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]);\n px = a[0];\n py = a[1];\n cx = a[2];\n return cy = a[3];\n },\n s(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n }\n doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3]);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n return cy += a[3];\n },\n Q(doc, a) {\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return doc.quadraticCurveTo(a[0], a[1], cx, cy);\n },\n q(doc, a) {\n doc.quadraticCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n return cy += a[3];\n },\n T(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n doc.quadraticCurveTo(px, py, a[0], a[1]);\n px = cx - (px - cx);\n py = cy - (py - cy);\n cx = a[0];\n return cy = a[1];\n },\n t(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n doc.quadraticCurveTo(px, py, cx + a[0], cy + a[1]);\n cx += a[0];\n return cy += a[1];\n },\n A(doc, a) {\n solveArc(doc, cx, cy, a);\n cx = a[5];\n return cy = a[6];\n },\n a(doc, a) {\n a[5] += cx;\n a[6] += cy;\n solveArc(doc, cx, cy, a);\n cx = a[5];\n return cy = a[6];\n },\n L(doc, a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n l(doc, a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n H(doc, a) {\n cx = a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n h(doc, a) {\n cx += a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n V(doc, a) {\n cy = a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n v(doc, a) {\n cy += a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n Z(doc) {\n doc.closePath();\n cx = sx;\n return cy = sy;\n },\n z(doc) {\n doc.closePath();\n cx = sx;\n return cy = sy;\n }\n};\nconst solveArc = function (doc, x, y, coords) {\n const [rx, ry, rot, large, sweep, ex, ey] = coords;\n const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n for (let seg of segs) {\n const bez = segmentToBezier(...seg);\n doc.bezierCurveTo(...bez);\n }\n};\n\n// from Inkscape svgtopdf, thanks!\nconst arcToSegments = function (x, y, rx, ry, large, sweep, rotateX, ox, oy) {\n const th = rotateX * (Math.PI / 180);\n const sin_th = Math.sin(th);\n const cos_th = Math.cos(th);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5;\n py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5;\n let pl = px * px / (rx * rx) + py * py / (ry * ry);\n if (pl > 1) {\n pl = Math.sqrt(pl);\n rx *= pl;\n ry *= pl;\n }\n const a00 = cos_th / rx;\n const a01 = sin_th / rx;\n const a10 = -sin_th / ry;\n const a11 = cos_th / ry;\n const x0 = a00 * ox + a01 * oy;\n const y0 = a10 * ox + a11 * oy;\n const x1 = a00 * x + a01 * y;\n const y1 = a10 * x + a11 * y;\n const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n let sfactor_sq = 1 / d - 0.25;\n if (sfactor_sq < 0) {\n sfactor_sq = 0;\n }\n let sfactor = Math.sqrt(sfactor_sq);\n if (sweep === large) {\n sfactor = -sfactor;\n }\n const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n const th0 = Math.atan2(y0 - yc, x0 - xc);\n const th1 = Math.atan2(y1 - yc, x1 - xc);\n let th_arc = th1 - th0;\n if (th_arc < 0 && sweep === 1) {\n th_arc += 2 * Math.PI;\n } else if (th_arc > 0 && sweep === 0) {\n th_arc -= 2 * Math.PI;\n }\n const segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 0.001)));\n const result = [];\n for (let i = 0; i < segments; i++) {\n const th2 = th0 + i * th_arc / segments;\n const th3 = th0 + (i + 1) * th_arc / segments;\n result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];\n }\n return result;\n};\nconst segmentToBezier = function (cx, cy, th0, th1, rx, ry, sin_th, cos_th) {\n const a00 = cos_th * rx;\n const a01 = -sin_th * ry;\n const a10 = sin_th * rx;\n const a11 = cos_th * ry;\n const th_half = 0.5 * (th1 - th0);\n const t = 8 / 3 * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5) / Math.sin(th_half);\n const x1 = cx + Math.cos(th0) - t * Math.sin(th0);\n const y1 = cy + Math.sin(th0) + t * Math.cos(th0);\n const x3 = cx + Math.cos(th1);\n const y3 = cy + Math.sin(th1);\n const x2 = x3 + t * Math.sin(th1);\n const y2 = y3 - t * Math.cos(th1);\n return [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];\n};\nclass SVGPath {\n static apply(doc, path) {\n const commands = parsePathData(path);\n apply(commands, doc);\n }\n}\n\nconst {\n number: number$1\n} = PDFObject$1;\n\n// This constant is used to approximate a symmetrical arc using a cubic\n// Bezier curve.\nconst KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nvar VectorMixin = {\n initVector() {\n this._ctm = [1, 0, 0, 1, 0, 0]; // current transformation matrix\n return this._ctmStack = [];\n },\n save() {\n this._ctmStack.push(this._ctm.slice());\n // TODO: save/restore colorspace and styles so not setting it unnessesarily all the time?\n return this.addContent('q');\n },\n restore() {\n this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0];\n return this.addContent('Q');\n },\n closePath() {\n return this.addContent('h');\n },\n lineWidth(w) {\n return this.addContent(`${number$1(w)} w`);\n },\n _CAP_STYLES: {\n BUTT: 0,\n ROUND: 1,\n SQUARE: 2\n },\n lineCap(c) {\n if (typeof c === 'string') {\n c = this._CAP_STYLES[c.toUpperCase()];\n }\n return this.addContent(`${c} J`);\n },\n _JOIN_STYLES: {\n MITER: 0,\n ROUND: 1,\n BEVEL: 2\n },\n lineJoin(j) {\n if (typeof j === 'string') {\n j = this._JOIN_STYLES[j.toUpperCase()];\n }\n return this.addContent(`${j} j`);\n },\n miterLimit(m) {\n return this.addContent(`${number$1(m)} M`);\n },\n dash(length, options) {\n if (options === void 0) {\n options = {};\n }\n const originalLength = length;\n if (!Array.isArray(length)) {\n length = [length, options.space || length];\n }\n const valid = length.every(x => Number.isFinite(x) && x >= 0);\n if (!valid) {\n throw new Error(`dash(${JSON.stringify(originalLength)}, ${JSON.stringify(options)}) invalid, lengths must be numeric and greater than or equal to zero`);\n }\n length = length.map(number$1).join(' ');\n return this.addContent(`[${length}] ${number$1(options.phase || 0)} d`);\n },\n undash() {\n return this.addContent('[] 0 d');\n },\n moveTo(x, y) {\n return this.addContent(`${number$1(x)} ${number$1(y)} m`);\n },\n lineTo(x, y) {\n return this.addContent(`${number$1(x)} ${number$1(y)} l`);\n },\n bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n return this.addContent(`${number$1(cp1x)} ${number$1(cp1y)} ${number$1(cp2x)} ${number$1(cp2y)} ${number$1(x)} ${number$1(y)} c`);\n },\n quadraticCurveTo(cpx, cpy, x, y) {\n return this.addContent(`${number$1(cpx)} ${number$1(cpy)} ${number$1(x)} ${number$1(y)} v`);\n },\n rect(x, y, w, h) {\n return this.addContent(`${number$1(x)} ${number$1(y)} ${number$1(w)} ${number$1(h)} re`);\n },\n roundedRect(x, y, w, h, r) {\n if (r == null) {\n r = 0;\n }\n r = Math.min(r, 0.5 * w, 0.5 * h);\n\n // amount to inset control points from corners (see `ellipse`)\n const c = r * (1.0 - KAPPA);\n this.moveTo(x + r, y);\n this.lineTo(x + w - r, y);\n this.bezierCurveTo(x + w - c, y, x + w, y + c, x + w, y + r);\n this.lineTo(x + w, y + h - r);\n this.bezierCurveTo(x + w, y + h - c, x + w - c, y + h, x + w - r, y + h);\n this.lineTo(x + r, y + h);\n this.bezierCurveTo(x + c, y + h, x, y + h - c, x, y + h - r);\n this.lineTo(x, y + r);\n this.bezierCurveTo(x, y + c, x + c, y, x + r, y);\n return this.closePath();\n },\n ellipse(x, y, r1, r2) {\n // based on http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084\n if (r2 == null) {\n r2 = r1;\n }\n x -= r1;\n y -= r2;\n const ox = r1 * KAPPA;\n const oy = r2 * KAPPA;\n const xe = x + r1 * 2;\n const ye = y + r2 * 2;\n const xm = x + r1;\n const ym = y + r2;\n this.moveTo(x, ym);\n this.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n this.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n return this.closePath();\n },\n circle(x, y, radius) {\n return this.ellipse(x, y, radius);\n },\n arc(x, y, radius, startAngle, endAngle, anticlockwise) {\n if (anticlockwise == null) {\n anticlockwise = false;\n }\n const TWO_PI = 2.0 * Math.PI;\n const HALF_PI = 0.5 * Math.PI;\n let deltaAng = endAngle - startAngle;\n if (Math.abs(deltaAng) > TWO_PI) {\n // draw only full circle if more than that is specified\n deltaAng = TWO_PI;\n } else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) {\n // necessary to flip direction of rendering\n const dir = anticlockwise ? -1 : 1;\n deltaAng = dir * TWO_PI + deltaAng;\n }\n const numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI);\n const segAng = deltaAng / numSegs;\n const handleLen = segAng / HALF_PI * KAPPA * radius;\n let curAng = startAngle;\n\n // component distances between anchor point and control point\n let deltaCx = -Math.sin(curAng) * handleLen;\n let deltaCy = Math.cos(curAng) * handleLen;\n\n // anchor point\n let ax = x + Math.cos(curAng) * radius;\n let ay = y + Math.sin(curAng) * radius;\n\n // calculate and render segments\n this.moveTo(ax, ay);\n for (let segIdx = 0; segIdx < numSegs; segIdx++) {\n // starting control point\n const cp1x = ax + deltaCx;\n const cp1y = ay + deltaCy;\n\n // step angle\n curAng += segAng;\n\n // next anchor point\n ax = x + Math.cos(curAng) * radius;\n ay = y + Math.sin(curAng) * radius;\n\n // next control point delta\n deltaCx = -Math.sin(curAng) * handleLen;\n deltaCy = Math.cos(curAng) * handleLen;\n\n // ending control point\n const cp2x = ax - deltaCx;\n const cp2y = ay - deltaCy;\n\n // render segment\n this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay);\n }\n return this;\n },\n polygon() {\n for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\n points[_key] = arguments[_key];\n }\n this.moveTo(...(points.shift() || []));\n for (let point of points) {\n this.lineTo(...(point || []));\n }\n return this.closePath();\n },\n path(path) {\n SVGPath.apply(this, path);\n return this;\n },\n _windingRule(rule) {\n if (/even-?odd/.test(rule)) {\n return '*';\n }\n return '';\n },\n fill(color, rule) {\n if (/(even-?odd)|(non-?zero)/.test(color)) {\n rule = color;\n color = null;\n }\n if (color) {\n this.fillColor(color);\n }\n return this.addContent(`f${this._windingRule(rule)}`);\n },\n stroke(color) {\n if (color) {\n this.strokeColor(color);\n }\n return this.addContent('S');\n },\n fillAndStroke(fillColor, strokeColor, rule) {\n if (strokeColor == null) {\n strokeColor = fillColor;\n }\n const isFillRule = /(even-?odd)|(non-?zero)/;\n if (isFillRule.test(fillColor)) {\n rule = fillColor;\n fillColor = null;\n }\n if (isFillRule.test(strokeColor)) {\n rule = strokeColor;\n strokeColor = fillColor;\n }\n if (fillColor) {\n this.fillColor(fillColor);\n this.strokeColor(strokeColor);\n }\n return this.addContent(`B${this._windingRule(rule)}`);\n },\n clip(rule) {\n return this.addContent(`W${this._windingRule(rule)} n`);\n },\n transform(m11, m12, m21, m22, dx, dy) {\n // keep track of the current transformation matrix\n if (m11 === 1 && m12 === 0 && m21 === 0 && m22 === 1 && dx === 0 && dy === 0) {\n // Ignore identity transforms\n return this;\n }\n const m = this._ctm;\n const [m0, m1, m2, m3, m4, m5] = m;\n m[0] = m0 * m11 + m2 * m12;\n m[1] = m1 * m11 + m3 * m12;\n m[2] = m0 * m21 + m2 * m22;\n m[3] = m1 * m21 + m3 * m22;\n m[4] = m0 * dx + m2 * dy + m4;\n m[5] = m1 * dx + m3 * dy + m5;\n const values = [m11, m12, m21, m22, dx, dy].map(v => number$1(v)).join(' ');\n return this.addContent(`${values} cm`);\n },\n translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n },\n rotate(angle, options) {\n if (options === void 0) {\n options = {};\n }\n let y;\n const rad = angle * Math.PI / 180;\n const cos = Math.cos(rad);\n const sin = Math.sin(rad);\n let x = y = 0;\n if (options.origin != null) {\n [x, y] = options.origin;\n const x1 = x * cos - y * sin;\n const y1 = x * sin + y * cos;\n x -= x1;\n y -= y1;\n }\n return this.transform(cos, sin, -sin, cos, x, y);\n },\n scale(xFactor, yFactor, options) {\n if (options === void 0) {\n options = {};\n }\n let y;\n if (yFactor == null) {\n yFactor = xFactor;\n }\n if (typeof yFactor === 'object') {\n options = yFactor;\n yFactor = xFactor;\n }\n let x = y = 0;\n if (options.origin != null) {\n [x, y] = options.origin;\n x -= xFactor * x;\n y -= yFactor * y;\n }\n return this.transform(xFactor, 0, 0, yFactor, x, y);\n }\n};\n\nvar fs = {};\n\nconst range = (left, right, inclusive) => {\n let range = [];\n let ascending = left < right;\n let end = !inclusive ? right : ascending ? right + 1 : right - 1;\n for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n return range;\n};\n\n/* eslint-disable no-var */\n/* eslint-disable no-cond-assign */\n\nconst WIN_ANSI_MAP = {\n 402: 131,\n 8211: 150,\n 8212: 151,\n 8216: 145,\n 8217: 146,\n 8218: 130,\n 8220: 147,\n 8221: 148,\n 8222: 132,\n 8224: 134,\n 8225: 135,\n 8226: 149,\n 8230: 133,\n 8364: 128,\n 8240: 137,\n 8249: 139,\n 8250: 155,\n 710: 136,\n 8482: 153,\n 338: 140,\n 339: 156,\n 732: 152,\n 352: 138,\n 353: 154,\n 376: 159,\n 381: 142,\n 382: 158\n};\nconst characters = `\\\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n.notdef .notdef .notdef .notdef\n\nspace exclam quotedbl numbersign\ndollar percent ampersand quotesingle\nparenleft parenright asterisk plus\ncomma hyphen period slash\nzero one two three\nfour five six seven\neight nine colon semicolon\nless equal greater question\n\nat A B C\nD E F G\nH I J K\nL M N O\nP Q R S\nT U V W\nX Y Z bracketleft\nbackslash bracketright asciicircum underscore\n\ngrave a b c\nd e f g\nh i j k\nl m n o\np q r s\nt u v w\nx y z braceleft\nbar braceright asciitilde .notdef\n\nEuro .notdef quotesinglbase florin\nquotedblbase ellipsis dagger daggerdbl\ncircumflex perthousand Scaron guilsinglleft\nOE .notdef Zcaron .notdef\n.notdef quoteleft quoteright quotedblleft\nquotedblright bullet endash emdash\ntilde trademark scaron guilsinglright\noe .notdef zcaron ydieresis\n\nspace exclamdown cent sterling\ncurrency yen brokenbar section\ndieresis copyright ordfeminine guillemotleft\nlogicalnot hyphen registered macron\ndegree plusminus twosuperior threesuperior\nacute mu paragraph periodcentered\ncedilla onesuperior ordmasculine guillemotright\nonequarter onehalf threequarters questiondown\n\nAgrave Aacute Acircumflex Atilde\nAdieresis Aring AE Ccedilla\nEgrave Eacute Ecircumflex Edieresis\nIgrave Iacute Icircumflex Idieresis\nEth Ntilde Ograve Oacute\nOcircumflex Otilde Odieresis multiply\nOslash Ugrave Uacute Ucircumflex\nUdieresis Yacute Thorn germandbls\n\nagrave aacute acircumflex atilde\nadieresis aring ae ccedilla\negrave eacute ecircumflex edieresis\nigrave iacute icircumflex idieresis\neth ntilde ograve oacute\nocircumflex otilde odieresis divide\noslash ugrave uacute ucircumflex\nudieresis yacute thorn ydieresis\\\n`.split(/\\s+/);\nfunction parse(contents) {\n const obj = {\n attributes: {},\n glyphWidths: {},\n kernPairs: {}\n };\n let section = '';\n for (let line of contents.split('\\n')) {\n var match;\n var a;\n if (match = line.match(/^Start(\\w+)/)) {\n section = match[1];\n continue;\n } else if (match = line.match(/^End(\\w+)/)) {\n section = '';\n continue;\n }\n switch (section) {\n case 'FontMetrics':\n match = line.match(/(^\\w+)\\s+(.*)/);\n var key = match[1];\n var value = match[2];\n if (a = obj.attributes[key]) {\n if (!Array.isArray(a)) {\n a = obj.attributes[key] = [a];\n }\n a.push(value);\n } else {\n obj.attributes[key] = value;\n }\n break;\n case 'CharMetrics':\n if (!/^CH?\\s/.test(line)) {\n continue;\n }\n var name = line.match(/\\bN\\s+(\\.?\\w+)\\s*;/)[1];\n obj.glyphWidths[name] = +line.match(/\\bWX\\s+(\\d+)\\s*;/)[1];\n break;\n case 'KernPairs':\n match = line.match(/^KPX\\s+(\\.?\\w+)\\s+(\\.?\\w+)\\s+(-?\\d+)/);\n if (match) {\n obj.kernPairs[match[1] + match[2]] = parseInt(match[3]);\n }\n break;\n }\n }\n return obj;\n}\nclass AFMFont {\n static open(filename) {\n {\n throw new Error('AFMFont.open not available on browser build');\n }\n }\n static fromJson(json) {\n return new AFMFont(json);\n }\n constructor(contents) {\n if (typeof contents === 'string') {\n this.contents = contents;\n this.parse();\n } else {\n this.attributes = contents.attributes;\n this.glyphWidths = contents.glyphWidths;\n this.kernPairs = contents.kernPairs;\n }\n this.charWidths = range(0, 255, true).map(i => this.glyphWidths[characters[i]]);\n this.bbox = Array.from(this.attributes.FontBBox.split(/\\s+/)).map(e => +e);\n this.ascender = +(this.attributes.Ascender || 0);\n this.descender = +(this.attributes.Descender || 0);\n this.xHeight = +(this.attributes.XHeight || 0);\n this.capHeight = +(this.attributes.CapHeight || 0);\n this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender);\n }\n parse() {\n const parsed = parse(this.contents);\n this.attributes = parsed.attributes;\n this.glyphWidths = parsed.glyphWidths;\n this.kernPairs = parsed.kernPairs;\n }\n encodeText(text) {\n const res = [];\n for (let i = 0, end = text.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n let char = text.charCodeAt(i);\n char = WIN_ANSI_MAP[char] || char;\n res.push(char.toString(16));\n }\n return res;\n }\n glyphsForString(string) {\n const glyphs = [];\n for (let i = 0, end = string.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n const charCode = string.charCodeAt(i);\n glyphs.push(this.characterToGlyph(charCode));\n }\n return glyphs;\n }\n characterToGlyph(character) {\n return characters[WIN_ANSI_MAP[character] || character] || '.notdef';\n }\n widthOfGlyph(glyph) {\n return this.glyphWidths[glyph] || 0;\n }\n getKernPair(left, right) {\n return this.kernPairs[left + right] || 0;\n }\n advancesForGlyphs(glyphs) {\n const advances = [];\n for (let index = 0; index < glyphs.length; index++) {\n const left = glyphs[index];\n const right = glyphs[index + 1];\n advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right));\n }\n return advances;\n }\n}\n\nvar attributes = [\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:43:52 1997\",\n\t\t\t\"UniqueID 43052\",\n\t\t\t\"VMusage 37169 48194\"\n\t\t],\n\t\tFontName: \"Helvetica-Bold\",\n\t\tFullName: \"Helvetica Bold\",\n\t\tFamilyName: \"Helvetica\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-170 -228 1003 962 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"718\",\n\t\tXHeight: \"532\",\n\t\tAscender: \"718\",\n\t\tDescender: \"-207\",\n\t\tStdHW: \"118\",\n\t\tStdVW: \"140\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:45:12 1997\",\n\t\t\t\"UniqueID 43053\",\n\t\t\t\"VMusage 14482 68586\"\n\t\t],\n\t\tFontName: \"Helvetica-BoldOblique\",\n\t\tFullName: \"Helvetica Bold Oblique\",\n\t\tFamilyName: \"Helvetica\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"-12\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-174 -228 1114 962\",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"718\",\n\t\tXHeight: \"532\",\n\t\tAscender: \"718\",\n\t\tDescender: \"-207\",\n\t\tStdHW: \"118\",\n\t\tStdVW: \"140\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:44:31 1997\",\n\t\t\t\"UniqueID 43055\",\n\t\t\t\"VMusage 14960 69346\"\n\t\t],\n\t\tFontName: \"Helvetica-Oblique\",\n\t\tFullName: \"Helvetica Oblique\",\n\t\tFamilyName: \"Helvetica\",\n\t\tWeight: \"Medium\",\n\t\tItalicAngle: \"-12\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-170 -225 1116 931 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"718\",\n\t\tXHeight: \"523\",\n\t\tAscender: \"718\",\n\t\tDescender: \"-207\",\n\t\tStdHW: \"76\",\n\t\tStdVW: \"88\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:38:23 1997\",\n\t\t\t\"UniqueID 43054\",\n\t\t\t\"VMusage 37069 48094\"\n\t\t],\n\t\tFontName: \"Helvetica\",\n\t\tFullName: \"Helvetica\",\n\t\tFamilyName: \"Helvetica\",\n\t\tWeight: \"Medium\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-166 -225 1000 931 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"718\",\n\t\tXHeight: \"523\",\n\t\tAscender: \"718\",\n\t\tDescender: \"-207\",\n\t\tStdHW: \"76\",\n\t\tStdVW: \"88\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:52:56 1997\",\n\t\t\t\"UniqueID 43065\",\n\t\t\t\"VMusage 41636 52661\"\n\t\t],\n\t\tFontName: \"Times-Bold\",\n\t\tFullName: \"Times Bold\",\n\t\tFamilyName: \"Times\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-168 -218 1000 935 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"676\",\n\t\tXHeight: \"461\",\n\t\tAscender: \"683\",\n\t\tDescender: \"-217\",\n\t\tStdHW: \"44\",\n\t\tStdVW: \"139\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 13:04:06 1997\",\n\t\t\t\"UniqueID 43066\",\n\t\t\t\"VMusage 45874 56899\"\n\t\t],\n\t\tFontName: \"Times-BoldItalic\",\n\t\tFullName: \"Times Bold Italic\",\n\t\tFamilyName: \"Times\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"-15\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-200 -218 996 921\",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"669\",\n\t\tXHeight: \"462\",\n\t\tAscender: \"683\",\n\t\tDescender: \"-217\",\n\t\tStdHW: \"42\",\n\t\tStdVW: \"121\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:56:55 1997\",\n\t\t\t\"UniqueID 43067\",\n\t\t\t\"VMusage 47727 58752\"\n\t\t],\n\t\tFontName: \"Times-Italic\",\n\t\tFullName: \"Times Italic\",\n\t\tFamilyName: \"Times\",\n\t\tWeight: \"Medium\",\n\t\tItalicAngle: \"-15.5\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-169 -217 1010 883 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"653\",\n\t\tXHeight: \"441\",\n\t\tAscender: \"683\",\n\t\tDescender: \"-217\",\n\t\tStdHW: \"32\",\n\t\tStdVW: \"76\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 12:49:17 1997\",\n\t\t\t\"UniqueID 43068\",\n\t\t\t\"VMusage 43909 54934\"\n\t\t],\n\t\tFontName: \"Times-Roman\",\n\t\tFullName: \"Times Roman\",\n\t\tFamilyName: \"Times\",\n\t\tWeight: \"Roman\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"false\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-168 -218 1000 898 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"002.000\",\n\t\tNotice: \"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"662\",\n\t\tXHeight: \"450\",\n\t\tAscender: \"683\",\n\t\tDescender: \"-217\",\n\t\tStdHW: \"28\",\n\t\tStdVW: \"84\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Mon Jun 23 16:28:00 1997\",\n\t\t\t\"UniqueID 43048\",\n\t\t\t\"VMusage 41139 52164\"\n\t\t],\n\t\tFontName: \"Courier-Bold\",\n\t\tFullName: \"Courier Bold\",\n\t\tFamilyName: \"Courier\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"true\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-113 -250 749 801 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"003.000\",\n\t\tNotice: \"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"562\",\n\t\tXHeight: \"439\",\n\t\tAscender: \"629\",\n\t\tDescender: \"-157\",\n\t\tStdHW: \"84\",\n\t\tStdVW: \"106\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Mon Jun 23 16:28:46 1997\",\n\t\t\t\"UniqueID 43049\",\n\t\t\t\"VMusage 17529 79244\"\n\t\t],\n\t\tFontName: \"Courier-BoldOblique\",\n\t\tFullName: \"Courier Bold Oblique\",\n\t\tFamilyName: \"Courier\",\n\t\tWeight: \"Bold\",\n\t\tItalicAngle: \"-12\",\n\t\tIsFixedPitch: \"true\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-57 -250 869 801\",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"003.000\",\n\t\tNotice: \"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"562\",\n\t\tXHeight: \"439\",\n\t\tAscender: \"629\",\n\t\tDescender: \"-157\",\n\t\tStdHW: \"84\",\n\t\tStdVW: \"106\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 17:37:52 1997\",\n\t\t\t\"UniqueID 43051\",\n\t\t\t\"VMusage 16248 75829\"\n\t\t],\n\t\tFontName: \"Courier-Oblique\",\n\t\tFullName: \"Courier Oblique\",\n\t\tFamilyName: \"Courier\",\n\t\tWeight: \"Medium\",\n\t\tItalicAngle: \"-12\",\n\t\tIsFixedPitch: \"true\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-27 -250 849 805 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"003.000\",\n\t\tNotice: \"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"562\",\n\t\tXHeight: \"426\",\n\t\tAscender: \"629\",\n\t\tDescender: \"-157\",\n\t\tStdHW: \"51\",\n\t\tStdVW: \"51\"\n\t},\n\t{\n\t\tComment: [\n\t\t\t\"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\t\t\"Creation Date: Thu May 1 17:27:09 1997\",\n\t\t\t\"UniqueID 43050\",\n\t\t\t\"VMusage 39754 50779\"\n\t\t],\n\t\tFontName: \"Courier\",\n\t\tFullName: \"Courier\",\n\t\tFamilyName: \"Courier\",\n\t\tWeight: \"Medium\",\n\t\tItalicAngle: \"0\",\n\t\tIsFixedPitch: \"true\",\n\t\tCharacterSet: \"ExtendedRoman\",\n\t\tFontBBox: \"-23 -250 715 805 \",\n\t\tUnderlinePosition: \"-100\",\n\t\tUnderlineThickness: \"50\",\n\t\tVersion: \"003.000\",\n\t\tNotice: \"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\",\n\t\tEncodingScheme: \"AdobeStandardEncoding\",\n\t\tCapHeight: \"562\",\n\t\tXHeight: \"426\",\n\t\tAscender: \"629\",\n\t\tDescender: \"-157\",\n\t\tStdHW: \"51\",\n\t\tStdVW: \"51\"\n\t}\n];\nvar glyphWidths = {\n\tspace: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\texclam: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotedbl: [\n\t\t474,\n\t\t474,\n\t\t355,\n\t\t355,\n\t\t555,\n\t\t555,\n\t\t420,\n\t\t408,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tnumbersign: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdollar: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tpercent: [\n\t\t889,\n\t\t889,\n\t\t889,\n\t\t889,\n\t\t1000,\n\t\t833,\n\t\t833,\n\t\t833,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tampersand: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t833,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquoteright: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tparenleft: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tparenright: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tasterisk: [\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tplus: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcomma: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\thyphen: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tperiod: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tslash: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tzero: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tone: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttwo: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tthree: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tfour: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tfive: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsix: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tseven: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\teight: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tnine: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcolon: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsemicolon: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tless: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tequal: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgreater: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquestion: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tat: [\n\t\t975,\n\t\t975,\n\t\t1015,\n\t\t1015,\n\t\t930,\n\t\t832,\n\t\t920,\n\t\t921,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tA: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tB: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tC: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tD: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tE: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tF: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tG: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tH: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tI: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tJ: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tK: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t778,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tL: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tM: [\n\t\t833,\n\t\t833,\n\t\t833,\n\t\t833,\n\t\t944,\n\t\t889,\n\t\t833,\n\t\t889,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tN: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tO: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tP: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tQ: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tR: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tS: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tT: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tU: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tV: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tW: [\n\t\t944,\n\t\t944,\n\t\t944,\n\t\t944,\n\t\t1000,\n\t\t889,\n\t\t833,\n\t\t944,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tX: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tY: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t611,\n\t\t556,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tZ: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbracketleft: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t333,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbackslash: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbracketright: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t333,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tasciicircum: [\n\t\t584,\n\t\t584,\n\t\t469,\n\t\t469,\n\t\t581,\n\t\t570,\n\t\t422,\n\t\t469,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tunderscore: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquoteleft: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ta: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tb: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tc: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\td: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\te: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tf: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tg: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\th: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ti: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tj: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tk: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t500,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tl: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tm: [\n\t\t889,\n\t\t889,\n\t\t833,\n\t\t833,\n\t\t833,\n\t\t778,\n\t\t722,\n\t\t778,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tn: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\to: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tp: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tq: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tr: [\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ts: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tt: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tu: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tv: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tw: [\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tx: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ty: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tz: [\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbraceleft: [\n\t\t389,\n\t\t389,\n\t\t334,\n\t\t334,\n\t\t394,\n\t\t348,\n\t\t400,\n\t\t480,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbar: [\n\t\t280,\n\t\t280,\n\t\t260,\n\t\t260,\n\t\t220,\n\t\t220,\n\t\t275,\n\t\t200,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbraceright: [\n\t\t389,\n\t\t389,\n\t\t334,\n\t\t334,\n\t\t394,\n\t\t348,\n\t\t400,\n\t\t480,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tasciitilde: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t520,\n\t\t570,\n\t\t541,\n\t\t541,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\texclamdown: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcent: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsterling: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tfraction: [\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t167,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tyen: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tflorin: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsection: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcurrency: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotesingle: [\n\t\t238,\n\t\t238,\n\t\t191,\n\t\t191,\n\t\t278,\n\t\t278,\n\t\t214,\n\t\t180,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotedblleft: [\n\t\t500,\n\t\t500,\n\t\t333,\n\t\t333,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tguillemotleft: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tguilsinglleft: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tguilsinglright: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tfi: [\n\t\t611,\n\t\t611,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tfl: [\n\t\t611,\n\t\t611,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tendash: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdagger: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdaggerdbl: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tperiodcentered: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tparagraph: [\n\t\t556,\n\t\t556,\n\t\t537,\n\t\t537,\n\t\t540,\n\t\t500,\n\t\t523,\n\t\t453,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbullet: [\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t350,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotesinglbase: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotedblbase: [\n\t\t500,\n\t\t500,\n\t\t333,\n\t\t333,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquotedblright: [\n\t\t500,\n\t\t500,\n\t\t333,\n\t\t333,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tguillemotright: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tellipsis: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t889,\n\t\t1000,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tperthousand: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tquestiondown: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgrave: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tacute: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcircumflex: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttilde: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tmacron: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbreve: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdotaccent: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdieresis: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tring: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcedilla: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\thungarumlaut: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\togonek: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcaron: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\temdash: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t889,\n\t\t1000,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAE: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t944,\n\t\t889,\n\t\t889,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tordfeminine: [\n\t\t370,\n\t\t370,\n\t\t370,\n\t\t370,\n\t\t300,\n\t\t266,\n\t\t276,\n\t\t276,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tLslash: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOslash: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOE: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t944,\n\t\t944,\n\t\t889,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tordmasculine: [\n\t\t365,\n\t\t365,\n\t\t365,\n\t\t365,\n\t\t330,\n\t\t300,\n\t\t310,\n\t\t310,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tae: [\n\t\t889,\n\t\t889,\n\t\t889,\n\t\t889,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdotlessi: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlslash: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\toslash: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\toe: [\n\t\t944,\n\t\t944,\n\t\t944,\n\t\t944,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgermandbls: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIdieresis: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\teacute: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tabreve: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tuhungarumlaut: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tecaron: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tYdieresis: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t611,\n\t\t556,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdivide: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tYacute: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t611,\n\t\t556,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAcircumflex: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\taacute: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUcircumflex: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tyacute: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tscommaaccent: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tecircumflex: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUring: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUdieresis: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\taogonek: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUacute: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tuogonek: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEdieresis: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tDcroat: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcommaaccent: [\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t250,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcopyright: [\n\t\t737,\n\t\t737,\n\t\t737,\n\t\t737,\n\t\t747,\n\t\t747,\n\t\t760,\n\t\t760,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEmacron: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tccaron: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\taring: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tNcommaaccent: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlacute: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tagrave: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tTcommaaccent: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tCacute: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tatilde: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEdotaccent: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tscaron: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tscedilla: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tiacute: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlozenge: [\n\t\t494,\n\t\t494,\n\t\t471,\n\t\t471,\n\t\t494,\n\t\t494,\n\t\t471,\n\t\t471,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tRcaron: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tGcommaaccent: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tucircumflex: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tacircumflex: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAmacron: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\trcaron: [\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tccedilla: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tZdotaccent: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tThorn: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOmacron: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tRacute: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tSacute: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdcaron: [\n\t\t743,\n\t\t743,\n\t\t643,\n\t\t643,\n\t\t672,\n\t\t608,\n\t\t544,\n\t\t588,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUmacron: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\turing: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tthreesuperior: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOgrave: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAgrave: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAbreve: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tmultiply: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tuacute: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tTcaron: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tpartialdiff: [\n\t\t494,\n\t\t494,\n\t\t476,\n\t\t476,\n\t\t494,\n\t\t494,\n\t\t476,\n\t\t476,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tydieresis: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tNacute: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ticircumflex: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEcircumflex: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tadieresis: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tedieresis: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tcacute: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tnacute: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tumacron: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tNcaron: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIacute: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tplusminus: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t570,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tbrokenbar: [\n\t\t280,\n\t\t280,\n\t\t260,\n\t\t260,\n\t\t220,\n\t\t220,\n\t\t275,\n\t\t200,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tregistered: [\n\t\t737,\n\t\t737,\n\t\t737,\n\t\t737,\n\t\t747,\n\t\t747,\n\t\t760,\n\t\t760,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tGbreve: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIdotaccent: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsummation: [\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEgrave: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tracute: [\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tomacron: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tZacute: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tZcaron: [\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgreaterequal: [\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEth: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tCcedilla: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlcommaaccent: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttcaron: [\n\t\t389,\n\t\t389,\n\t\t317,\n\t\t317,\n\t\t416,\n\t\t366,\n\t\t300,\n\t\t326,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\teogonek: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUogonek: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAacute: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAdieresis: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tegrave: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tzacute: [\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tiogonek: [\n\t\t278,\n\t\t278,\n\t\t222,\n\t\t222,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOacute: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\toacute: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tamacron: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tsacute: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t389,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tidieresis: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOcircumflex: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUgrave: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tDelta: [\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t612,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tthorn: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttwosuperior: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOdieresis: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tmu: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t576,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tigrave: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tohungarumlaut: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEogonek: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdcroat: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tthreequarters: [\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tScedilla: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlcaron: [\n\t\t400,\n\t\t400,\n\t\t299,\n\t\t299,\n\t\t394,\n\t\t382,\n\t\t300,\n\t\t344,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tKcommaaccent: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t778,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tLacute: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttrademark: [\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t1000,\n\t\t980,\n\t\t980,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tedotaccent: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIgrave: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tImacron: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tLcaron: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tonehalf: [\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlessequal: [\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tocircumflex: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tntilde: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tUhungarumlaut: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEacute: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\temacron: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgbreve: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tonequarter: [\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t834,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t750,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tScaron: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tScommaaccent: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t556,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOhungarumlaut: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tdegree: [\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t400,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tograve: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tCcaron: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tugrave: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tradical: [\n\t\t549,\n\t\t549,\n\t\t453,\n\t\t453,\n\t\t549,\n\t\t549,\n\t\t453,\n\t\t453,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tDcaron: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\trcommaaccent: [\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tNtilde: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\totilde: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tRcommaaccent: [\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t667,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tLcommaaccent: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t667,\n\t\t611,\n\t\t556,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAtilde: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAogonek: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tAring: [\n\t\t722,\n\t\t722,\n\t\t667,\n\t\t667,\n\t\t722,\n\t\t667,\n\t\t611,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tOtilde: [\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t778,\n\t\t722,\n\t\t722,\n\t\t722,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tzdotaccent: [\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEcaron: [\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t667,\n\t\t611,\n\t\t611,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIogonek: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tkcommaaccent: [\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t556,\n\t\t500,\n\t\t444,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tminus: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t606,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tIcircumflex: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t389,\n\t\t389,\n\t\t333,\n\t\t333,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tncaron: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\ttcommaaccent: [\n\t\t333,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t333,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tlogicalnot: [\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t584,\n\t\t570,\n\t\t606,\n\t\t675,\n\t\t564,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\todieresis: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tudieresis: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tnotequal: [\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t549,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tgcommaaccent: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\teth: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tzcaron: [\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t444,\n\t\t389,\n\t\t389,\n\t\t444,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tncommaaccent: [\n\t\t611,\n\t\t611,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tonesuperior: [\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t333,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t300,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\timacron: [\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t278,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t],\n\tEuro: [\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t556,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t500,\n\t\t600,\n\t\t600,\n\t\t600,\n\t\t600\n\t]\n};\nvar kernPairs = {\n\tAC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tACacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tACcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tACcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tATcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tATcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAy: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAacuteC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAacuteCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAacuteCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAacuteCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAacuteG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAacuteGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAacuteGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAacuteO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAacuteT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAacuteTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAacuteTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAacuteU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAacuteV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAacuteW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAacuteY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAacuteYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAacuteYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAacuteu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacuteuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAacutev: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAacutew: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAacutey: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAacuteyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAacuteydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAbreveC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAbreveCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAbreveCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAbreveCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAbreveG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAbreveGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAbreveGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAbreveO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAbreveT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAbreveTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAbreveTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAbreveU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAbreveV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAbreveW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAbreveY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAbreveYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAbreveYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAbreveu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbreveuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAbrevev: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAbrevew: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAbrevey: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAbreveyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAbreveydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAcircumflexC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAcircumflexCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAcircumflexCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAcircumflexCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAcircumflexG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAcircumflexGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAcircumflexGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAcircumflexO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAcircumflexT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAcircumflexTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAcircumflexTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAcircumflexU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAcircumflexV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAcircumflexW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAcircumflexY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAcircumflexYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAcircumflexYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAcircumflexu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAcircumflexv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAcircumflexw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAcircumflexy: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAcircumflexyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAcircumflexydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAdieresisC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAdieresisCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAdieresisCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAdieresisCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAdieresisG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAdieresisGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAdieresisGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAdieresisO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAdieresisT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAdieresisTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAdieresisTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAdieresisU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAdieresisV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAdieresisW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAdieresisY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAdieresisYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAdieresisYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAdieresisu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAdieresisv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAdieresisw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAdieresisy: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAdieresisyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAdieresisydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAgraveC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAgraveCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAgraveCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAgraveCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAgraveG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAgraveGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAgraveGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAgraveO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAgraveT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAgraveTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAgraveTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAgraveU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAgraveV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAgraveW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAgraveY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAgraveYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAgraveYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAgraveu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgraveuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAgravev: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAgravew: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAgravey: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAgraveyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAgraveydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAmacronC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAmacronCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAmacronCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAmacronCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAmacronG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAmacronGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAmacronGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAmacronO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAmacronT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAmacronTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAmacronTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAmacronU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAmacronV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAmacronW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAmacronY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAmacronYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAmacronYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAmacronu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAmacronv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAmacronw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAmacrony: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAmacronyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAmacronydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAogonekC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAogonekCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAogonekCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAogonekCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAogonekG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAogonekGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAogonekGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAogonekO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAogonekT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAogonekTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAogonekTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAogonekU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAogonekV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAogonekW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAogonekY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAogonekYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAogonekYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAogoneku: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAogonekv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAogonekw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-52\n\t],\n\tAogoneky: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-34,\n\t\t-34,\n\t\t-55,\n\t\t-52\n\t],\n\tAogonekyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-34,\n\t\t-34,\n\t\t-55,\n\t\t-52\n\t],\n\tAogonekydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-34,\n\t\t-34,\n\t\t-55,\n\t\t-52\n\t],\n\tAringC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAringCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAringCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAringCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAringG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAringGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAringGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAringO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAringQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAringT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAringTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAringTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAringU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAringV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAringW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAringY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAringYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAringYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAringu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAringv: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAringw: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAringy: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAringyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAringydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAtildeC: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAtildeCacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAtildeCcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAtildeCcedilla: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-65,\n\t\t-30,\n\t\t-40\n\t],\n\tAtildeG: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAtildeGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAtildeGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-60,\n\t\t-35,\n\t\t-40\n\t],\n\tAtildeO: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeQ: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-45,\n\t\t-55,\n\t\t-40,\n\t\t-55\n\t],\n\tAtildeT: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAtildeTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAtildeTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-95,\n\t\t-55,\n\t\t-37,\n\t\t-111\n\t],\n\tAtildeU: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeUring: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55\n\t],\n\tAtildeV: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-145,\n\t\t-95,\n\t\t-105,\n\t\t-135\n\t],\n\tAtildeW: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-130,\n\t\t-100,\n\t\t-95,\n\t\t-90\n\t],\n\tAtildeY: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAtildeYacute: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAtildeYdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-100,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-55,\n\t\t-105\n\t],\n\tAtildeu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildeuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30,\n\t\t-20\n\t],\n\tAtildev: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-100,\n\t\t-74,\n\t\t-55,\n\t\t-74\n\t],\n\tAtildew: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-90,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAtildey: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAtildeyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tAtildeydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-92\n\t],\n\tBA: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAacute: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAbreve: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAcircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAdieresis: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAgrave: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAmacron: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAogonek: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAring: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBAtilde: [\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-35\n\t],\n\tBU: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUcircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUdieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUgrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUmacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tBUring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tDA: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAbreve: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAogonek: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAring: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDAtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDV: [\n\t\t-40,\n\t\t-40,\n\t\t-70,\n\t\t-70,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-40\n\t],\n\tDW: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-30\n\t],\n\tDY: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70\n\t],\n\tDperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70,\n\t\t-20\n\t],\n\tDcaronA: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAbreve: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAogonek: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAring: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronAtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcaronV: [\n\t\t-40,\n\t\t-40,\n\t\t-70,\n\t\t-70,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-40\n\t],\n\tDcaronW: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-30\n\t],\n\tDcaronY: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcaronYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcaronYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcaroncomma: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70\n\t],\n\tDcaronperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70,\n\t\t-20\n\t],\n\tDcroatA: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAbreve: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAogonek: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAring: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatAtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-35,\n\t\t-25,\n\t\t-35,\n\t\t-40\n\t],\n\tDcroatV: [\n\t\t-40,\n\t\t-40,\n\t\t-70,\n\t\t-70,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-40\n\t],\n\tDcroatW: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-30\n\t],\n\tDcroatY: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcroatYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcroatYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-90,\n\t\t-90,\n\t\t-40,\n\t\t-50,\n\t\t-40,\n\t\t-55\n\t],\n\tDcroatcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70\n\t],\n\tDcroatperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-70,\n\t\t-70,\n\t\t-20\n\t],\n\tFA: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAacute: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAbreve: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAcircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAdieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAgrave: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAmacron: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAring: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFAtilde: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-90,\n\t\t-100,\n\t\t-115,\n\t\t-74\n\t],\n\tFa: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFaacute: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFabreve: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFacircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFadieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFagrave: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFamacron: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFaogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFaring: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFatilde: [\n\t\t-20,\n\t\t-20,\n\t\t-50,\n\t\t-50,\n\t\t-25,\n\t\t-95,\n\t\t-75,\n\t\t-15\n\t],\n\tFcomma: [\n\t\t-100,\n\t\t-100,\n\t\t-150,\n\t\t-150,\n\t\t-92,\n\t\t-129,\n\t\t-135,\n\t\t-80\n\t],\n\tFperiod: [\n\t\t-100,\n\t\t-100,\n\t\t-150,\n\t\t-150,\n\t\t-110,\n\t\t-129,\n\t\t-135,\n\t\t-80\n\t],\n\tJA: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAbreve: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAring: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJAtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-25,\n\t\t-40,\n\t\t-60\n\t],\n\tJcomma: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t-25\n\t],\n\tJperiod: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-10,\n\t\t-25\n\t],\n\tJu: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJuacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJucircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJudieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJugrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJuhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJumacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJuogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJuring: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tKO: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOacute: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOcircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOdieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOgrave: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOmacron: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOslash: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKOtilde: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKe: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKeacute: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKecaron: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKecircumflex: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKedieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKedotaccent: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKegrave: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKemacron: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKeogonek: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKo: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKoacute: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKocircumflex: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKodieresis: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKograve: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKohungarumlaut: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKomacron: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKoslash: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKotilde: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKuring: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKy: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tKyacute: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tKydieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tKcommaaccentO: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOacute: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOcircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOdieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOgrave: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOmacron: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOslash: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccentOtilde: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-30\n\t],\n\tKcommaaccente: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccenteacute: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentecaron: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentecircumflex: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentedieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentedotaccent: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentegrave: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccentemacron: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccenteogonek: [\n\t\t-15,\n\t\t-15,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-35,\n\t\t-25\n\t],\n\tKcommaaccento: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentoacute: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentocircumflex: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentodieresis: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentograve: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentohungarumlaut: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentomacron: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentoslash: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentotilde: [\n\t\t-35,\n\t\t-35,\n\t\t-40,\n\t\t-40,\n\t\t-25,\n\t\t-25,\n\t\t-40,\n\t\t-35\n\t],\n\tKcommaaccentu: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentuacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentucircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentudieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentugrave: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentuhungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentumacron: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccentuogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccenturing: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-20,\n\t\t-40,\n\t\t-15\n\t],\n\tKcommaaccenty: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tKcommaaccentyacute: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tKcommaaccentydieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-20,\n\t\t-40,\n\t\t-25\n\t],\n\tLT: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLV: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-100\n\t],\n\tLW: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-74\n\t],\n\tLY: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLYacute: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLYdieresis: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLquotedblright: [\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-20\n\t],\n\tLquoteright: [\n\t\t-140,\n\t\t-140,\n\t\t-160,\n\t\t-160,\n\t\t-110,\n\t\t-55,\n\t\t-37,\n\t\t-92\n\t],\n\tLy: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLacuteT: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLacuteTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLacuteTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLacuteV: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-100\n\t],\n\tLacuteW: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-74\n\t],\n\tLacuteY: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLacuteYacute: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLacuteYdieresis: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLacutequotedblright: [\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-20\n\t],\n\tLacutequoteright: [\n\t\t-140,\n\t\t-140,\n\t\t-160,\n\t\t-160,\n\t\t-110,\n\t\t-55,\n\t\t-37,\n\t\t-92\n\t],\n\tLacutey: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLacuteyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLacuteydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLcommaaccentT: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLcommaaccentTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLcommaaccentTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLcommaaccentV: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-100\n\t],\n\tLcommaaccentW: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-74\n\t],\n\tLcommaaccentY: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLcommaaccentYacute: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLcommaaccentYdieresis: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLcommaaccentquotedblright: [\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-20\n\t],\n\tLcommaaccentquoteright: [\n\t\t-140,\n\t\t-140,\n\t\t-160,\n\t\t-160,\n\t\t-110,\n\t\t-55,\n\t\t-37,\n\t\t-92\n\t],\n\tLcommaaccenty: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLcommaaccentyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLcommaaccentydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLslashT: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLslashTcaron: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLslashTcommaaccent: [\n\t\t-90,\n\t\t-90,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-18,\n\t\t-20,\n\t\t-92\n\t],\n\tLslashV: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-100\n\t],\n\tLslashW: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-74\n\t],\n\tLslashY: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLslashYacute: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLslashYdieresis: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-37,\n\t\t-20,\n\t\t-100\n\t],\n\tLslashquotedblright: [\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-140,\n\t\t-20\n\t],\n\tLslashquoteright: [\n\t\t-140,\n\t\t-140,\n\t\t-160,\n\t\t-160,\n\t\t-110,\n\t\t-55,\n\t\t-37,\n\t\t-92\n\t],\n\tLslashy: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLslashyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tLslashydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-55,\n\t\t-37,\n\t\t-30,\n\t\t-55\n\t],\n\tOA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOcomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOacuteT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOacuteW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOacuteX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOacuteYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOacuteYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOacutecomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOacuteperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOcircumflexT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOcircumflexW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOcircumflexX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOcircumflexYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOcircumflexYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOcircumflexcomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOcircumflexperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOdieresisT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOdieresisW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOdieresisX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOdieresisYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOdieresisYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOdieresiscomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOdieresisperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOgraveT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOgraveW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOgraveX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOgraveYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOgraveYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOgravecomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOgraveperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOhungarumlautT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOhungarumlautW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOhungarumlautX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOhungarumlautYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOhungarumlautYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOhungarumlautcomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOhungarumlautperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOmacronT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOmacronW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOmacronX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOmacronYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOmacronYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOmacroncomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOmacronperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOslashT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOslashW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOslashX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOslashYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOslashYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOslashcomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOslashperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeA: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAring: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-55,\n\t\t-35\n\t],\n\tOtildeT: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeTcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeTcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOtildeW: [\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35\n\t],\n\tOtildeX: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeY: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOtildeYacute: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOtildeYdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-70,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50\n\t],\n\tOtildecomma: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tOtildeperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tPA: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAacute: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAbreve: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAcircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAdieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAgrave: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAmacron: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAogonek: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAring: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPAtilde: [\n\t\t-100,\n\t\t-100,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-85,\n\t\t-90,\n\t\t-92\n\t],\n\tPa: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPaacute: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPabreve: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPacircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPadieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPagrave: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPamacron: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPaogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tParing: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPatilde: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-10,\n\t\t-40,\n\t\t-80,\n\t\t-15\n\t],\n\tPcomma: [\n\t\t-120,\n\t\t-120,\n\t\t-180,\n\t\t-180,\n\t\t-92,\n\t\t-129,\n\t\t-135,\n\t\t-111\n\t],\n\tPe: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPeacute: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPecaron: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPecircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPedieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPedotaccent: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPegrave: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPemacron: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPeogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-50,\n\t\t-80\n\t],\n\tPo: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPoacute: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPocircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPodieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPograve: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPohungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPomacron: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPoslash: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPotilde: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-55,\n\t\t-80\n\t],\n\tPperiod: [\n\t\t-120,\n\t\t-120,\n\t\t-180,\n\t\t-180,\n\t\t-110,\n\t\t-129,\n\t\t-135,\n\t\t-111\n\t],\n\tQU: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUcircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUdieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUgrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUmacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQUring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tQcomma: [\n\t\t20,\n\t\t20\n\t],\n\tQperiod: [\n\t\t20,\n\t\t20,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tRO: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROslash: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tROtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRT: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRTcaron: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRTcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRU: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUacute: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRUring: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55,\n\t\t-18,\n\t\t-18,\n\t\t-80\n\t],\n\tRW: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-55\n\t],\n\tRY: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRYacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRYdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRacuteO: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOslash: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteOtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteT: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRacuteTcaron: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRacuteTcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRacuteU: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUacute: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteUring: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRacuteV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55,\n\t\t-18,\n\t\t-18,\n\t\t-80\n\t],\n\tRacuteW: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-55\n\t],\n\tRacuteY: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRacuteYacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRacuteYdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcaronO: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOslash: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronOtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronT: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcaronTcaron: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcaronTcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcaronU: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUacute: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronUring: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcaronV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55,\n\t\t-18,\n\t\t-18,\n\t\t-80\n\t],\n\tRcaronW: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-55\n\t],\n\tRcaronY: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcaronYacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcaronYdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcommaaccentO: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOslash: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentOtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentT: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcommaaccentTcaron: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcommaaccentTcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-30,\n\t\t0,\n\t\t-60\n\t],\n\tRcommaaccentU: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUacute: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentUring: [\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tRcommaaccentV: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-55,\n\t\t-18,\n\t\t-18,\n\t\t-80\n\t],\n\tRcommaaccentW: [\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-30,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-55\n\t],\n\tRcommaaccentY: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcommaaccentYacute: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tRcommaaccentYdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-50,\n\t\t-35,\n\t\t-18,\n\t\t-18,\n\t\t-65\n\t],\n\tTA: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAbreve: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAcircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAdieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAgrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAmacron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAring: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTAtilde: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTO: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTa: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTaacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTabreve: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTacircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTadieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTagrave: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTamacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTaogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTaring: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTatilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-50\n\t],\n\tTcomma: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTe: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTeacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTecaron: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTecircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-52,\n\t\t-70\n\t],\n\tTedieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTedotaccent: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTegrave: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-70\n\t],\n\tTemacron: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTeogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tThyphen: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-92\n\t],\n\tTo: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tToacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTocircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTodieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTograve: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTohungarumlaut: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTomacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tToslash: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTotilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTr: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTracute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTrcommaaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTsemicolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-65,\n\t\t-55\n\t],\n\tTu: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTuacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTucircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTudieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTugrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTuhungarumlaut: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTumacron: [\n\t\t-90,\n\t\t-90,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTuogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTuring: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTw: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTy: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTyacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTydieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-34,\n\t\t-37,\n\t\t-34,\n\t\t-80\n\t],\n\tTcaronA: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAbreve: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAcircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAdieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAgrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAmacron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAring: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronAtilde: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcaronO: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcaronOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcarona: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronaacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronabreve: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronacircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronadieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcaronagrave: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcaronamacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcaronaogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronaring: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronatilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcaroncolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-50\n\t],\n\tTcaroncomma: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTcarone: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcaroneacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcaronecaron: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcaronecircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-52,\n\t\t-30\n\t],\n\tTcaronedieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTcaronedotaccent: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcaronegrave: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-70\n\t],\n\tTcaronemacron: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTcaroneogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcaronhyphen: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-92\n\t],\n\tTcarono: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronoacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronocircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronodieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronograve: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronohungarumlaut: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronomacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronoslash: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronotilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcaronperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTcaronr: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaronracute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaronrcommaaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaronsemicolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-65,\n\t\t-55\n\t],\n\tTcaronu: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronuacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronucircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronudieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronugrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronuhungarumlaut: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronumacron: [\n\t\t-90,\n\t\t-90,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronuogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronuring: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcaronw: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcarony: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcaronyacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcaronydieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-34,\n\t\t-37,\n\t\t-34,\n\t\t-80\n\t],\n\tTcommaaccentA: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAbreve: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAcircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAdieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAgrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAmacron: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAring: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentAtilde: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-55,\n\t\t-50,\n\t\t-93\n\t],\n\tTcommaaccentO: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOcircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOdieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOgrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOhungarumlaut: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOmacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOslash: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccentOtilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-18,\n\t\t-18,\n\t\t-18,\n\t\t-18\n\t],\n\tTcommaaccenta: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentaacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentabreve: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentacircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentadieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcommaaccentagrave: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcommaaccentamacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcommaaccentaogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentaring: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentatilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-92,\n\t\t-92,\n\t\t-40\n\t],\n\tTcommaaccentcolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-55,\n\t\t-50\n\t],\n\tTcommaaccentcomma: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTcommaaccente: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcommaaccenteacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcommaaccentecaron: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcommaaccentecircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-52,\n\t\t-30\n\t],\n\tTcommaaccentedieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTcommaaccentedotaccent: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcommaaccentegrave: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-30\n\t],\n\tTcommaaccentemacron: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-52,\n\t\t-52,\n\t\t-52,\n\t\t-70\n\t],\n\tTcommaaccenteogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-70\n\t],\n\tTcommaaccenthyphen: [\n\t\t-120,\n\t\t-120,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-92\n\t],\n\tTcommaaccento: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentoacute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentocircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentodieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentograve: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentohungarumlaut: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentomacron: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentoslash: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentotilde: [\n\t\t-80,\n\t\t-80,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-95,\n\t\t-92,\n\t\t-80\n\t],\n\tTcommaaccentperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-92,\n\t\t-74,\n\t\t-74\n\t],\n\tTcommaaccentr: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentracute: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentrcommaaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentsemicolon: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-74,\n\t\t-74,\n\t\t-65,\n\t\t-55\n\t],\n\tTcommaaccentu: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentuacute: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentucircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentudieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentugrave: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentuhungarumlaut: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentumacron: [\n\t\t-90,\n\t\t-90,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentuogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccenturing: [\n\t\t-90,\n\t\t-90,\n\t\t-120,\n\t\t-120,\n\t\t-92,\n\t\t-37,\n\t\t-55,\n\t\t-45\n\t],\n\tTcommaaccentw: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcommaaccenty: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcommaaccentyacute: [\n\t\t-60,\n\t\t-60,\n\t\t-120,\n\t\t-120,\n\t\t-34,\n\t\t-37,\n\t\t-74,\n\t\t-80\n\t],\n\tTcommaaccentydieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-34,\n\t\t-37,\n\t\t-34,\n\t\t-80\n\t],\n\tUA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUacuteA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacuteAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUacutecomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUacuteperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUcircumflexA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUcircumflexcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUcircumflexperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUdieresisA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresisAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUdieresiscomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUdieresisperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUgraveA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgraveAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUgravecomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUgraveperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUhungarumlautA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUhungarumlautcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUhungarumlautperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUmacronA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacronAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUmacroncomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUmacronperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUogonekA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUogonekcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUogonekperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUringA: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAring: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringAtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-45,\n\t\t-40,\n\t\t-40\n\t],\n\tUringcomma: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tUringperiod: [\n\t\t-30,\n\t\t-30,\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t0,\n\t\t-25\n\t],\n\tVA: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAacute: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAbreve: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAcircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAdieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAgrave: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAmacron: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAring: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVAtilde: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-135,\n\t\t-85,\n\t\t-60,\n\t\t-135\n\t],\n\tVG: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\tVGbreve: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\tVGcommaaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\tVO: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOacute: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOcircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOdieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOgrave: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOhungarumlaut: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOmacron: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOslash: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVOtilde: [\n\t\t-50,\n\t\t-50,\n\t\t-40,\n\t\t-40,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-40\n\t],\n\tVa: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVaacute: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVabreve: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVacircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVadieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVagrave: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVamacron: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVaogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVaring: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVatilde: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVcolon: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-92,\n\t\t-74,\n\t\t-65,\n\t\t-74\n\t],\n\tVcomma: [\n\t\t-120,\n\t\t-120,\n\t\t-125,\n\t\t-125,\n\t\t-129,\n\t\t-129,\n\t\t-129,\n\t\t-129\n\t],\n\tVe: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVeacute: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVecaron: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVecircumflex: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-71\n\t],\n\tVedieresis: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-71,\n\t\t-71,\n\t\t-71\n\t],\n\tVedotaccent: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVegrave: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-71,\n\t\t-71,\n\t\t-71\n\t],\n\tVemacron: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-71,\n\t\t-71,\n\t\t-71\n\t],\n\tVeogonek: [\n\t\t-50,\n\t\t-50,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-111\n\t],\n\tVhyphen: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-74,\n\t\t-70,\n\t\t-55,\n\t\t-100\n\t],\n\tVo: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-129\n\t],\n\tVoacute: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-129\n\t],\n\tVocircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-129\n\t],\n\tVodieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-89\n\t],\n\tVograve: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-89\n\t],\n\tVohungarumlaut: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-129\n\t],\n\tVomacron: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-89\n\t],\n\tVoslash: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-129\n\t],\n\tVotilde: [\n\t\t-90,\n\t\t-90,\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-111,\n\t\t-111,\n\t\t-89\n\t],\n\tVperiod: [\n\t\t-120,\n\t\t-120,\n\t\t-125,\n\t\t-125,\n\t\t-145,\n\t\t-129,\n\t\t-129,\n\t\t-129\n\t],\n\tVsemicolon: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-92,\n\t\t-74,\n\t\t-74,\n\t\t-74\n\t],\n\tVu: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVuacute: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVucircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVudieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVugrave: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVuhungarumlaut: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVumacron: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVuogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tVuring: [\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-70,\n\t\t-92,\n\t\t-55,\n\t\t-74,\n\t\t-75\n\t],\n\tWA: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAacute: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAbreve: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAcircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAdieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAgrave: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAmacron: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAogonek: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAring: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWAtilde: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-120,\n\t\t-74,\n\t\t-60,\n\t\t-120\n\t],\n\tWO: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOcircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOdieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOgrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOmacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOslash: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWOtilde: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-15,\n\t\t-25,\n\t\t-10\n\t],\n\tWa: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWaacute: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWabreve: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWacircumflex: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWadieresis: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWagrave: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWamacron: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWaogonek: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWaring: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWatilde: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-65,\n\t\t-85,\n\t\t-92,\n\t\t-80\n\t],\n\tWcolon: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55,\n\t\t-65,\n\t\t-37\n\t],\n\tWcomma: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-92,\n\t\t-74,\n\t\t-92,\n\t\t-92\n\t],\n\tWe: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWeacute: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWecaron: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWecircumflex: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWedieresis: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-50,\n\t\t-52,\n\t\t-40\n\t],\n\tWedotaccent: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWegrave: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-50,\n\t\t-52,\n\t\t-40\n\t],\n\tWemacron: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-50,\n\t\t-52,\n\t\t-40\n\t],\n\tWeogonek: [\n\t\t-35,\n\t\t-35,\n\t\t-30,\n\t\t-30,\n\t\t-65,\n\t\t-90,\n\t\t-92,\n\t\t-80\n\t],\n\tWhyphen: [\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-37,\n\t\t-50,\n\t\t-37,\n\t\t-65\n\t],\n\tWo: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWoacute: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWocircumflex: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWodieresis: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWograve: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWohungarumlaut: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWomacron: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWoslash: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWotilde: [\n\t\t-60,\n\t\t-60,\n\t\t-30,\n\t\t-30,\n\t\t-75,\n\t\t-80,\n\t\t-92,\n\t\t-80\n\t],\n\tWperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-92,\n\t\t-74,\n\t\t-92,\n\t\t-92\n\t],\n\tWsemicolon: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55,\n\t\t-65,\n\t\t-37\n\t],\n\tWu: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWuacute: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWucircumflex: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWudieresis: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWugrave: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWuhungarumlaut: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWumacron: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWuogonek: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWuring: [\n\t\t-45,\n\t\t-45,\n\t\t-30,\n\t\t-30,\n\t\t-50,\n\t\t-55,\n\t\t-55,\n\t\t-50\n\t],\n\tWy: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-60,\n\t\t-55,\n\t\t-70,\n\t\t-73\n\t],\n\tWyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-60,\n\t\t-55,\n\t\t-70,\n\t\t-73\n\t],\n\tWydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-60,\n\t\t-55,\n\t\t-70,\n\t\t-73\n\t],\n\tYA: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAacute: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAbreve: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAcircumflex: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAgrave: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAmacron: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAogonek: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAring: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYAtilde: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYO: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOacute: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOcircumflex: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOgrave: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOhungarumlaut: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOmacron: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOslash: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYOtilde: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYa: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYaacute: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYabreve: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYadieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYagrave: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYamacron: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYaogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYaring: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYatilde: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYcolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYcomma: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-129\n\t],\n\tYe: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYeacute: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYecaron: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYecircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-71,\n\t\t-92,\n\t\t-100\n\t],\n\tYedieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYedotaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYegrave: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYemacron: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYeogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYo: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYoacute: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYocircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYodieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYograve: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYohungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYomacron: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYoslash: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYotilde: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYperiod: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-74,\n\t\t-92,\n\t\t-129\n\t],\n\tYsemicolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYu: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYuacute: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYucircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYudieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYugrave: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYuhungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYumacron: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYuogonek: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYuring: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteA: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAacute: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAbreve: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAcircumflex: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAgrave: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAmacron: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAogonek: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAring: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteAtilde: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYacuteO: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOacute: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOcircumflex: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOgrave: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOhungarumlaut: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOmacron: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOslash: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacuteOtilde: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYacutea: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteaacute: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteabreve: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteacircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteadieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYacuteagrave: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYacuteamacron: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYacuteaogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacutearing: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteatilde: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYacutecolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYacutecomma: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-129\n\t],\n\tYacutee: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteeacute: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteecaron: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteecircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-71,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteedieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYacuteedotaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteegrave: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYacuteemacron: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYacuteeogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYacuteo: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYacuteoacute: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYacuteocircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYacuteodieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYacuteograve: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYacuteohungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYacuteomacron: [\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-70,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYacuteoslash: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYacuteotilde: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYacuteperiod: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-74,\n\t\t-92,\n\t\t-129\n\t],\n\tYacutesemicolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYacuteu: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteuacute: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteucircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteudieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYacuteugrave: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYacuteuhungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteumacron: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYacuteuogonek: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYacuteuring: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisA: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAacute: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAbreve: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAcircumflex: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAdieresis: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAgrave: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAmacron: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAogonek: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAring: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisAtilde: [\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-110,\n\t\t-74,\n\t\t-50,\n\t\t-120\n\t],\n\tYdieresisO: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOacute: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOcircumflex: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOdieresis: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOgrave: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOhungarumlaut: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOmacron: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOslash: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisOtilde: [\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-85,\n\t\t-35,\n\t\t-25,\n\t\t-15,\n\t\t-30\n\t],\n\tYdieresisa: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisaacute: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisabreve: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisacircumflex: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisadieresis: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYdieresisagrave: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYdieresisamacron: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-60\n\t],\n\tYdieresisaogonek: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisaring: [\n\t\t-90,\n\t\t-90,\n\t\t-140,\n\t\t-140,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisatilde: [\n\t\t-90,\n\t\t-90,\n\t\t-70,\n\t\t-70,\n\t\t-85,\n\t\t-92,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresiscolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYdieresiscomma: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-129\n\t],\n\tYdieresise: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresiseacute: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisecaron: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisecircumflex: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-71,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisedieresis: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYdieresisedotaccent: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresisegrave: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYdieresisemacron: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-71,\n\t\t-71,\n\t\t-52,\n\t\t-60\n\t],\n\tYdieresiseogonek: [\n\t\t-80,\n\t\t-80,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-100\n\t],\n\tYdieresiso: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYdieresisoacute: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYdieresisocircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYdieresisodieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYdieresisograve: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYdieresisohungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYdieresisomacron: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYdieresisoslash: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-110\n\t],\n\tYdieresisotilde: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-111,\n\t\t-111,\n\t\t-92,\n\t\t-70\n\t],\n\tYdieresisperiod: [\n\t\t-100,\n\t\t-100,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-74,\n\t\t-92,\n\t\t-129\n\t],\n\tYdieresissemicolon: [\n\t\t-50,\n\t\t-50,\n\t\t-60,\n\t\t-60,\n\t\t-92,\n\t\t-92,\n\t\t-65,\n\t\t-92\n\t],\n\tYdieresisu: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisuacute: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisucircumflex: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisudieresis: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYdieresisugrave: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYdieresisuhungarumlaut: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisumacron: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-71\n\t],\n\tYdieresisuogonek: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tYdieresisuring: [\n\t\t-100,\n\t\t-100,\n\t\t-110,\n\t\t-110,\n\t\t-92,\n\t\t-92,\n\t\t-92,\n\t\t-111\n\t],\n\tag: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tagbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tagcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tav: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\taw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tay: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tayacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taacuteg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taacutegbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taacutegcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taacutev: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\taacutew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\taacutey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taacuteyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taacuteydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tabreveg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tabrevegbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tabrevegcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tabrevev: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tabrevew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tabrevey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tabreveyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tabreveydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tacircumflexg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tacircumflexgbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tacircumflexgcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tacircumflexv: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tacircumflexw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tacircumflexy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tacircumflexyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tacircumflexydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tadieresisg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tadieresisgbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tadieresisgcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tadieresisv: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tadieresisw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tadieresisy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tadieresisyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tadieresisydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tagraveg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tagravegbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tagravegcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tagravev: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tagravew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tagravey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tagraveyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tagraveydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tamacrong: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tamacrongbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tamacrongcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tamacronv: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tamacronw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tamacrony: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tamacronyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tamacronydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taogonekg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taogonekgbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taogonekgcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taogonekv: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\taogonekw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\taogoneky: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taogonekyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taogonekydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taringg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taringgbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taringgcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\taringv: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\taringw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\taringy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taringyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\taringydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tatildeg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tatildegbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tatildegcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tatildev: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tatildew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tatildey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tatildeyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tatildeydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30\n\t],\n\tbl: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20\n\t],\n\tblacute: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20\n\t],\n\tblcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20\n\t],\n\tblslash: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20\n\t],\n\tbu: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbuacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbucircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbudieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbugrave: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbuhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbumacron: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbuogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tburing: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbv: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tby: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tbydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20\n\t],\n\tch: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tck: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tckcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tcl: [\n\t\t-20,\n\t\t-20\n\t],\n\tclacute: [\n\t\t-20,\n\t\t-20\n\t],\n\tclcommaaccent: [\n\t\t-20,\n\t\t-20\n\t],\n\tclslash: [\n\t\t-20,\n\t\t-20\n\t],\n\tcy: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcyacute: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcydieresis: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcacuteh: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tcacutek: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tcacutekcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tcacutel: [\n\t\t-20,\n\t\t-20\n\t],\n\tcacutelacute: [\n\t\t-20,\n\t\t-20\n\t],\n\tcacutelcommaaccent: [\n\t\t-20,\n\t\t-20\n\t],\n\tcacutelslash: [\n\t\t-20,\n\t\t-20\n\t],\n\tcacutey: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcacuteyacute: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcacuteydieresis: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccaronh: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tccaronk: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tccaronkcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tccaronl: [\n\t\t-20,\n\t\t-20\n\t],\n\tccaronlacute: [\n\t\t-20,\n\t\t-20\n\t],\n\tccaronlcommaaccent: [\n\t\t-20,\n\t\t-20\n\t],\n\tccaronlslash: [\n\t\t-20,\n\t\t-20\n\t],\n\tccarony: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccaronyacute: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccaronydieresis: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccedillah: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tccedillak: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tccedillakcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t-10,\n\t\t-20\n\t],\n\tccedillal: [\n\t\t-20,\n\t\t-20\n\t],\n\tccedillalacute: [\n\t\t-20,\n\t\t-20\n\t],\n\tccedillalcommaaccent: [\n\t\t-20,\n\t\t-20\n\t],\n\tccedillalslash: [\n\t\t-20,\n\t\t-20\n\t],\n\tccedillay: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccedillayacute: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tccedillaydieresis: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tcolonspace: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50\n\t],\n\tcommaquotedblright: [\n\t\t-120,\n\t\t-120,\n\t\t-100,\n\t\t-100,\n\t\t-45,\n\t\t-95,\n\t\t-140,\n\t\t-70\n\t],\n\tcommaquoteright: [\n\t\t-120,\n\t\t-120,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-95,\n\t\t-140,\n\t\t-70\n\t],\n\tcommaspace: [\n\t\t-40,\n\t\t-40\n\t],\n\tdd: [\n\t\t-10,\n\t\t-10\n\t],\n\tddcroat: [\n\t\t-10,\n\t\t-10\n\t],\n\tdv: [\n\t\t-15,\n\t\t-15\n\t],\n\tdw: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tdy: [\n\t\t-15,\n\t\t-15\n\t],\n\tdyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tdydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tdcroatd: [\n\t\t-10,\n\t\t-10\n\t],\n\tdcroatdcroat: [\n\t\t-10,\n\t\t-10\n\t],\n\tdcroatv: [\n\t\t-15,\n\t\t-15\n\t],\n\tdcroatw: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tdcroaty: [\n\t\t-15,\n\t\t-15\n\t],\n\tdcroatyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tdcroatydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tecomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\teperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tev: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tex: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tey: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teacutecomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\teacuteperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\teacutev: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\teacutew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\teacutex: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\teacutey: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teacuteyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teacuteydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecaroncomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tecaronperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tecaronv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tecaronw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tecaronx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tecarony: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecaronyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecaronydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecircumflexcomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tecircumflexperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tecircumflexv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tecircumflexw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tecircumflexx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tecircumflexy: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecircumflexyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tecircumflexydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedieresiscomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tedieresisperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tedieresisv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tedieresisw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tedieresisx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tedieresisy: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedieresisyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedieresisydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedotaccentcomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tedotaccentperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tedotaccentv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tedotaccentw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tedotaccentx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tedotaccenty: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedotaccentyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tedotaccentydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tegravecomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tegraveperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tegravev: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tegravew: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\tegravex: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\tegravey: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tegraveyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tegraveydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\temacroncomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\temacronperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\temacronv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\temacronw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\temacronx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\temacrony: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\temacronyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\temacronydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teogonekcomma: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\teogonekperiod: [\n\t\t20,\n\t\t20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\teogonekv: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\teogonekw: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-25\n\t],\n\teogonekx: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15\n\t],\n\teogoneky: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teogonekyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\teogonekydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-15\n\t],\n\tfcomma: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-10,\n\t\t-10\n\t],\n\tfe: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tfeacute: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tfecaron: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30\n\t],\n\tfecircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30\n\t],\n\tfedieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30\n\t],\n\tfedotaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tfegrave: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30\n\t],\n\tfemacron: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30\n\t],\n\tfeogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tfo: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfoacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25\n\t],\n\tfograve: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfomacron: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25\n\t],\n\tfoslash: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfotilde: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-10\n\t],\n\tfperiod: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\tfquotedblright: [\n\t\t30,\n\t\t30,\n\t\t60,\n\t\t60,\n\t\t50\n\t],\n\tfquoteright: [\n\t\t30,\n\t\t30,\n\t\t50,\n\t\t50,\n\t\t55,\n\t\t55,\n\t\t92,\n\t\t55\n\t],\n\tge: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgeacute: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgecaron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgecircumflex: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgedieresis: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgedotaccent: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgegrave: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgemacron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgeogonek: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tggbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tggcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbrevee: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveeacute: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveecaron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveecircumflex: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveedieresis: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveedotaccent: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveegrave: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveemacron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveeogonek: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbreveg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbrevegbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbrevegcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccente: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccenteacute: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentecaron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentecircumflex: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentedieresis: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentedotaccent: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentegrave: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentemacron: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccenteogonek: [\n\t\t10,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentg: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentgbreve: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentgcommaaccent: [\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\thy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\thyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\thydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tko: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkoacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkocircumflex: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkodieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkograve: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkohungarumlaut: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkomacron: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkoslash: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkotilde: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccento: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentoacute: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentocircumflex: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentodieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentograve: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentohungarumlaut: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentomacron: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentoslash: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentotilde: [\n\t\t-15,\n\t\t-15,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tlw: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tly: [\n\t\t-15,\n\t\t-15\n\t],\n\tlyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tlydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tlacutew: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tlacutey: [\n\t\t-15,\n\t\t-15\n\t],\n\tlacuteyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tlacuteydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tlcommaaccentw: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tlcommaaccenty: [\n\t\t-15,\n\t\t-15\n\t],\n\tlcommaaccentyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tlcommaaccentydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tlslashw: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tlslashy: [\n\t\t-15,\n\t\t-15\n\t],\n\tlslashyacute: [\n\t\t-15,\n\t\t-15\n\t],\n\tlslashydieresis: [\n\t\t-15,\n\t\t-15\n\t],\n\tmu: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmuacute: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmucircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmudieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmugrave: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmuhungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmumacron: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmuogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmuring: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10\n\t],\n\tmy: [\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-15\n\t],\n\tmyacute: [\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-15\n\t],\n\tmydieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-15,\n\t\t-15\n\t],\n\tnu: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnuacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnucircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnudieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnugrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnuhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnumacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnuogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnuring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnv: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tny: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tnyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tnydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tnacuteu: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteuacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteucircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteudieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteugrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteuhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteumacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteuogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacuteuring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tnacutev: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tnacutey: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tnacuteyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tnacuteydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncaronu: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronuacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronucircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronudieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronugrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronuhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronumacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronuogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronuring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncaronv: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tncarony: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncaronyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncaronydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncommaaccentu: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentuacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentucircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentudieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentugrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentuhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentumacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentuogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccenturing: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tncommaaccentv: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tncommaaccenty: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncommaaccentyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tncommaaccentydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tntildeu: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeuacute: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeucircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeudieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeugrave: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeuhungarumlaut: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeumacron: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeuogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildeuring: [\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tntildev: [\n\t\t-40,\n\t\t-40,\n\t\t-20,\n\t\t-20,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tntildey: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tntildeyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tntildeydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tov: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\tow: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\tox: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\toy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toacutev: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\toacutew: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\toacutex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\toacutey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toacuteyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toacuteydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexv: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\tocircumflexw: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\tocircumflexx: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\todieresisv: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\todieresisw: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\todieresisx: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\todieresisy: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\todieresisyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\todieresisydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\togravev: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\togravew: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\togravex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\togravey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tograveyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tograveydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautv: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\tohungarumlautw: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\tohungarumlautx: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlauty: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tomacronv: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\tomacronw: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\tomacronx: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\tomacrony: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tomacronyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tomacronydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toslashv: [\n\t\t-20,\n\t\t-20,\n\t\t-70,\n\t\t-70,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\toslashw: [\n\t\t-15,\n\t\t-15,\n\t\t-70,\n\t\t-70,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\toslashx: [\n\t\t-30,\n\t\t-30,\n\t\t-85,\n\t\t-85,\n\t\t0,\n\t\t-10\n\t],\n\toslashy: [\n\t\t-20,\n\t\t-20,\n\t\t-70,\n\t\t-70,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toslashyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-70,\n\t\t-70,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\toslashydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-70,\n\t\t-70,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\totildev: [\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-15,\n\t\t-10,\n\t\t-15\n\t],\n\totildew: [\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-15,\n\t\t-10,\n\t\t-25,\n\t\t0,\n\t\t-25\n\t],\n\totildex: [\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10\n\t],\n\totildey: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\totildeyacute: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\totildeydieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tpy: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tpyacute: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tpydieresis: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tperiodquotedblright: [\n\t\t-120,\n\t\t-120,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-95,\n\t\t-140,\n\t\t-70\n\t],\n\tperiodquoteright: [\n\t\t-120,\n\t\t-120,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-95,\n\t\t-140,\n\t\t-70\n\t],\n\tperiodspace: [\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-60\n\t],\n\tquotedblrightspace: [\n\t\t-80,\n\t\t-80,\n\t\t-40,\n\t\t-40\n\t],\n\tquoteleftquoteleft: [\n\t\t-46,\n\t\t-46,\n\t\t-57,\n\t\t-57,\n\t\t-63,\n\t\t-74,\n\t\t-111,\n\t\t-74\n\t],\n\tquoterightd: [\n\t\t-80,\n\t\t-80,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterightdcroat: [\n\t\t-80,\n\t\t-80,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterightl: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tquoterightlacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tquoterightlcommaaccent: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tquoterightlslash: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tquoterightquoteright: [\n\t\t-46,\n\t\t-46,\n\t\t-57,\n\t\t-57,\n\t\t-63,\n\t\t-74,\n\t\t-111,\n\t\t-74\n\t],\n\tquoterightr: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterightracute: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterightrcaron: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterightrcommaaccent: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50,\n\t\t-20,\n\t\t-15,\n\t\t-25,\n\t\t-50\n\t],\n\tquoterights: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-37,\n\t\t-74,\n\t\t-40,\n\t\t-55\n\t],\n\tquoterightsacute: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-37,\n\t\t-74,\n\t\t-40,\n\t\t-55\n\t],\n\tquoterightscaron: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-37,\n\t\t-74,\n\t\t-40,\n\t\t-55\n\t],\n\tquoterightscedilla: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-37,\n\t\t-74,\n\t\t-40,\n\t\t-55\n\t],\n\tquoterightscommaaccent: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-37,\n\t\t-74,\n\t\t-40,\n\t\t-55\n\t],\n\tquoterightspace: [\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-70,\n\t\t-74,\n\t\t-74,\n\t\t-111,\n\t\t-74\n\t],\n\tquoterightv: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-15,\n\t\t-10,\n\t\t-50\n\t],\n\trc: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trccaron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trccedilla: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcomma: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-92,\n\t\t-65,\n\t\t-111,\n\t\t-40\n\t],\n\trd: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trdcroat: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trg: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trgbreve: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trgcommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trhyphen: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tro: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\troacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trograve: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tromacron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\troslash: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trotilde: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trperiod: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-100,\n\t\t-65,\n\t\t-111,\n\t\t-55\n\t],\n\trq: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trs: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trsacute: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trscaron: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trscedilla: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trscommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trt: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trtcommaaccent: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trv: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\try: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\tryacute: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trydieresis: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\tracutec: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracutecacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteccaron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteccedilla: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracutecomma: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-92,\n\t\t-65,\n\t\t-111,\n\t\t-40\n\t],\n\tracuted: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\tracutedcroat: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\tracuteg: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\tracutegbreve: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\tracutegcommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\tracutehyphen: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tracuteo: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteoacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteograve: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteomacron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteoslash: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteotilde: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\tracuteperiod: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-100,\n\t\t-65,\n\t\t-111,\n\t\t-55\n\t],\n\tracuteq: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracutes: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tracutesacute: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tracutescaron: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tracutescedilla: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tracutescommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tracutet: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\tracutetcommaaccent: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\tracutev: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\tracutey: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\tracuteyacute: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\tracuteydieresis: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcaronc: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaroncacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronccaron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronccedilla: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaroncomma: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-92,\n\t\t-65,\n\t\t-111,\n\t\t-40\n\t],\n\trcarond: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trcarondcroat: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trcarong: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcarongbreve: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcarongcommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcaronhyphen: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\trcarono: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronoacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronograve: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronomacron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronoslash: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronotilde: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcaronperiod: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-100,\n\t\t-65,\n\t\t-111,\n\t\t-55\n\t],\n\trcaronq: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcarons: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcaronsacute: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcaronscaron: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcaronscedilla: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcaronscommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcaront: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trcarontcommaaccent: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trcaronv: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\trcarony: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcaronyacute: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcaronydieresis: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcommaaccentc: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentcacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentccaron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentccedilla: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentcomma: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-92,\n\t\t-65,\n\t\t-111,\n\t\t-40\n\t],\n\trcommaaccentd: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentdcroat: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentg: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcommaaccentgbreve: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcommaaccentgcommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-37,\n\t\t-18\n\t],\n\trcommaaccenthyphen: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\trcommaaccento: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentoacute: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentograve: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentomacron: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentoslash: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentotilde: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-45\n\t],\n\trcommaaccentperiod: [\n\t\t-60,\n\t\t-60,\n\t\t-50,\n\t\t-50,\n\t\t-100,\n\t\t-65,\n\t\t-111,\n\t\t-55\n\t],\n\trcommaaccentq: [\n\t\t-20,\n\t\t-20,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccents: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcommaaccentsacute: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcommaaccentscaron: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcommaaccentscedilla: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcommaaccentscommaaccent: [\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\trcommaaccentt: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trcommaaccenttcommaaccent: [\n\t\t20,\n\t\t20,\n\t\t40,\n\t\t40\n\t],\n\trcommaaccentv: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\trcommaaccenty: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcommaaccentyacute: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\trcommaaccentydieresis: [\n\t\t10,\n\t\t10,\n\t\t30,\n\t\t30\n\t],\n\tsw: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30\n\t],\n\tsacutew: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30\n\t],\n\tscaronw: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30\n\t],\n\tscedillaw: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30\n\t],\n\tscommaaccentw: [\n\t\t-15,\n\t\t-15,\n\t\t-30,\n\t\t-30\n\t],\n\tsemicolonspace: [\n\t\t-40,\n\t\t-40,\n\t\t-50,\n\t\t-50\n\t],\n\tspaceT: [\n\t\t-100,\n\t\t-100,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t0,\n\t\t-18,\n\t\t-18\n\t],\n\tspaceTcaron: [\n\t\t-100,\n\t\t-100,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t0,\n\t\t-18,\n\t\t-18\n\t],\n\tspaceTcommaaccent: [\n\t\t-100,\n\t\t-100,\n\t\t-50,\n\t\t-50,\n\t\t-30,\n\t\t0,\n\t\t-18,\n\t\t-18\n\t],\n\tspaceV: [\n\t\t-80,\n\t\t-80,\n\t\t-50,\n\t\t-50,\n\t\t-45,\n\t\t-70,\n\t\t-35,\n\t\t-50\n\t],\n\tspaceW: [\n\t\t-80,\n\t\t-80,\n\t\t-40,\n\t\t-40,\n\t\t-30,\n\t\t-70,\n\t\t-40,\n\t\t-30\n\t],\n\tspaceY: [\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-90,\n\t\t-55,\n\t\t-70,\n\t\t-75,\n\t\t-90\n\t],\n\tspaceYacute: [\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-90,\n\t\t-55,\n\t\t-70,\n\t\t-75,\n\t\t-90\n\t],\n\tspaceYdieresis: [\n\t\t-120,\n\t\t-120,\n\t\t-90,\n\t\t-90,\n\t\t-55,\n\t\t-70,\n\t\t-75,\n\t\t-90\n\t],\n\tspacequotedblleft: [\n\t\t-80,\n\t\t-80,\n\t\t-30,\n\t\t-30\n\t],\n\tspacequoteleft: [\n\t\t-60,\n\t\t-60,\n\t\t-60,\n\t\t-60\n\t],\n\tva: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvaacute: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvabreve: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvacircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvadieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvagrave: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvamacron: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvaogonek: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvaring: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvatilde: [\n\t\t-20,\n\t\t-20,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tvcomma: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-55,\n\t\t-37,\n\t\t-74,\n\t\t-65\n\t],\n\tvo: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvoacute: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvocircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvodieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvograve: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvohungarumlaut: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvomacron: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvoslash: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvotilde: [\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-20\n\t],\n\tvperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-80,\n\t\t-70,\n\t\t-37,\n\t\t-74,\n\t\t-65\n\t],\n\twcomma: [\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-60,\n\t\t-55,\n\t\t-37,\n\t\t-74,\n\t\t-65\n\t],\n\two: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twoacute: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twocircumflex: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twodieresis: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twograve: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twohungarumlaut: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twomacron: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twoslash: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twotilde: [\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-10\n\t],\n\twperiod: [\n\t\t-40,\n\t\t-40,\n\t\t-60,\n\t\t-60,\n\t\t-70,\n\t\t-37,\n\t\t-74,\n\t\t-65\n\t],\n\txe: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txeacute: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txecaron: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txecircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txedieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txedotaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txegrave: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txemacron: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\txeogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-15\n\t],\n\tya: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyaacute: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyabreve: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyadieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyagrave: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyamacron: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyaogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyaring: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyatilde: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tycomma: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tye: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyeacute: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyecaron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyecircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyedieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyedotaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyegrave: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyemacron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyeogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyo: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyoacute: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyocircumflex: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyodieresis: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyograve: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyohungarumlaut: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyomacron: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyoslash: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyotilde: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\typeriod: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tyacutea: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteaacute: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteabreve: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteacircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteadieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteagrave: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteamacron: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteaogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacutearing: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacuteatilde: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tyacutecomma: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tyacutee: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteeacute: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteecaron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteecircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteedieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteedotaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteegrave: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteemacron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteeogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tyacuteo: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteoacute: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteocircumflex: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteodieresis: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteograve: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteohungarumlaut: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteomacron: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteoslash: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteotilde: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tyacuteperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tydieresisa: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisaacute: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisabreve: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisacircumflex: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisadieresis: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisagrave: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisamacron: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisaogonek: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisaring: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresisatilde: [\n\t\t-30,\n\t\t-30,\n\t\t-20,\n\t\t-20\n\t],\n\tydieresiscomma: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-55,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tydieresise: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresiseacute: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisecaron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisecircumflex: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisedieresis: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisedotaccent: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisegrave: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresisemacron: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresiseogonek: [\n\t\t-10,\n\t\t-10,\n\t\t-20,\n\t\t-20,\n\t\t-10\n\t],\n\tydieresiso: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisoacute: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisocircumflex: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisodieresis: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisograve: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisohungarumlaut: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisomacron: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisoslash: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisotilde: [\n\t\t-25,\n\t\t-25,\n\t\t-20,\n\t\t-20,\n\t\t-25\n\t],\n\tydieresisperiod: [\n\t\t-80,\n\t\t-80,\n\t\t-100,\n\t\t-100,\n\t\t-70,\n\t\t-37,\n\t\t-55,\n\t\t-65\n\t],\n\tze: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzeacute: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzecaron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzecircumflex: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzedieresis: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzedotaccent: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzegrave: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzemacron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzeogonek: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacutee: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteeacute: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteecaron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteecircumflex: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteedieresis: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteedotaccent: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteegrave: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteemacron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteeogonek: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcarone: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaroneacute: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronecaron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronecircumflex: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronedieresis: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronedotaccent: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronegrave: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronemacron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaroneogonek: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccente: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccenteacute: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentecaron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentecircumflex: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentedieresis: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentedotaccent: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentegrave: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentemacron: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccenteogonek: [\n\t\t10,\n\t\t10,\n\t\t-15,\n\t\t-15\n\t],\n\tBcomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tBperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tCcomma: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCperiod: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCacutecomma: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCacuteperiod: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCcaroncomma: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCcaronperiod: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCcedillacomma: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tCcedillaperiod: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30\n\t],\n\tFe: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFeacute: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFecaron: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFedieresis: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFegrave: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFemacron: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFeogonek: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-100,\n\t\t-75\n\t],\n\tFo: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFoacute: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFodieresis: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFograve: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFomacron: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFoslash: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFotilde: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t-25,\n\t\t-70,\n\t\t-105,\n\t\t-15\n\t],\n\tFr: [\n\t\t0,\n\t\t0,\n\t\t-45,\n\t\t-45,\n\t\t0,\n\t\t-50,\n\t\t-55\n\t],\n\tFracute: [\n\t\t0,\n\t\t0,\n\t\t-45,\n\t\t-45,\n\t\t0,\n\t\t-50,\n\t\t-55\n\t],\n\tFrcaron: [\n\t\t0,\n\t\t0,\n\t\t-45,\n\t\t-45,\n\t\t0,\n\t\t-50,\n\t\t-55\n\t],\n\tFrcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-45,\n\t\t-45,\n\t\t0,\n\t\t-50,\n\t\t-55\n\t],\n\tJa: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJaacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJabreve: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJadieresis: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJagrave: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJamacron: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJaogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJaring: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tJatilde: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-15,\n\t\t-40,\n\t\t-35\n\t],\n\tLcaronT: [\n\t\t0,\n\t\t0,\n\t\t-110,\n\t\t-110\n\t],\n\tLcaronTcaron: [\n\t\t0,\n\t\t0,\n\t\t-110,\n\t\t-110\n\t],\n\tLcaronTcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-110,\n\t\t-110\n\t],\n\tLcaronV: [\n\t\t0,\n\t\t0,\n\t\t-110,\n\t\t-110\n\t],\n\tLcaronW: [\n\t\t0,\n\t\t0,\n\t\t-70,\n\t\t-70\n\t],\n\tLcaronY: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140\n\t],\n\tLcaronYacute: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140\n\t],\n\tLcaronYdieresis: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140\n\t],\n\tLcaronquotedblright: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140\n\t],\n\tLcaronquoteright: [\n\t\t0,\n\t\t0,\n\t\t-160,\n\t\t-160,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-92\n\t],\n\tLcarony: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55\n\t],\n\tLcaronyacute: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55\n\t],\n\tLcaronydieresis: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55\n\t],\n\tScomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tSperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tSacutecomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tSacuteperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScaroncomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScaronperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScedillacomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScedillaperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScommaaccentcomma: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tScommaaccentperiod: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tTrcaron: [\n\t\t0,\n\t\t0,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaronrcaron: [\n\t\t0,\n\t\t0,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentrcaron: [\n\t\t0,\n\t\t0,\n\t\t-120,\n\t\t-120,\n\t\t-74,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tYhyphen: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-111\n\t],\n\tYi: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYiacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYiogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYacutehyphen: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-111\n\t],\n\tYacutei: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYacuteiacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYacuteiogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYdieresishyphen: [\n\t\t0,\n\t\t0,\n\t\t-140,\n\t\t-140,\n\t\t-92,\n\t\t-92,\n\t\t-74,\n\t\t-111\n\t],\n\tYdieresisi: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYdieresisiacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tYdieresisiogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-55\n\t],\n\tbb: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t-10,\n\t\t-10\n\t],\n\tbcomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tbperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40,\n\t\t-40\n\t],\n\tccomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tcacutecomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tccaroncomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tccedillacomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tfa: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfaacute: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfabreve: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfadieresis: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfagrave: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfamacron: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfaogonek: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfaring: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfatilde: [\n\t\t0,\n\t\t0,\n\t\t-30,\n\t\t-30,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfdotlessi: [\n\t\t0,\n\t\t0,\n\t\t-28,\n\t\t-28,\n\t\t-35,\n\t\t-30,\n\t\t-60,\n\t\t-50\n\t],\n\tgr: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgracute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgrcaron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgrcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgbrever: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgbreveracute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgbrevercaron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgbrevercommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgcommaaccentr: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgcommaaccentracute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgcommaaccentrcaron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tgcommaaccentrcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10\n\t],\n\tke: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkeacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkecaron: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkedieresis: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkegrave: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkemacron: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkeogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccente: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccenteacute: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentecaron: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentedieresis: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentegrave: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccentemacron: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tkcommaaccenteogonek: [\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-20,\n\t\t-10,\n\t\t-30,\n\t\t-10,\n\t\t-10\n\t],\n\tocomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\toperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\toacutecomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\toacuteperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tocircumflexcomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tocircumflexperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\todieresiscomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\todieresisperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\togravecomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tograveperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tohungarumlautcomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tohungarumlautperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tomacroncomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tomacronperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\toslasha: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashaacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashabreve: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashadieresis: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashagrave: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashamacron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashaogonek: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslasharing: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashatilde: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashb: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashc: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashcacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashccaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashccedilla: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashcomma: [\n\t\t0,\n\t\t0,\n\t\t-95,\n\t\t-95\n\t],\n\toslashd: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashdcroat: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashe: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslasheacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashecaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashedieresis: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashegrave: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashemacron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslasheogonek: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashf: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashg: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toslashgbreve: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toslashgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toslashh: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashi: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashiacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashicircumflex: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashidieresis: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashigrave: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashimacron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashiogonek: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashj: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashk: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashkcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashl: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashlacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashlcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashlslash: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashm: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashn: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashnacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashncaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashncommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashntilde: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslasho: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashoacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashodieresis: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashograve: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashomacron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashoslash: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashotilde: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashp: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashperiod: [\n\t\t0,\n\t\t0,\n\t\t-95,\n\t\t-95\n\t],\n\toslashq: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashr: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashracute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashrcaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashrcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashs: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashsacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashscaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashscedilla: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashscommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslasht: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashtcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashu: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashuacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashucircumflex: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashudieresis: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashugrave: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashuhungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashumacron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashuogonek: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashuring: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashz: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashzacute: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashzcaron: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\toslashzdotaccent: [\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-55\n\t],\n\totildecomma: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\totildeperiod: [\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-40\n\t],\n\tpcomma: [\n\t\t0,\n\t\t0,\n\t\t-35,\n\t\t-35\n\t],\n\tpperiod: [\n\t\t0,\n\t\t0,\n\t\t-35,\n\t\t-35\n\t],\n\tra: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\traacute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trabreve: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracircumflex: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tradieresis: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tragrave: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tramacron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\traogonek: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\traring: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tratilde: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\tri: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\triacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tricircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tridieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trigrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trimacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\triogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trk: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trkcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trl: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trlacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trlcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trlslash: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trm: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25\n\t],\n\trn: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trnacute: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trncaron: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trncommaaccent: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trntilde: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trp: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\trsemicolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\tru: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\truacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trucircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trudieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trugrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\truhungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trumacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\truogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\truring: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutea: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteaacute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteabreve: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteadieresis: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteagrave: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteamacron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteaogonek: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracutearing: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracuteatilde: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\tracutecolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\tracutei: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteiacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteicircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteidieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteigrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteimacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteiogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutekcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutel: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutelacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutelcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutelslash: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracutem: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25\n\t],\n\tracuten: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\tracutenacute: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\tracutencaron: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\tracutencommaaccent: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\tracutentilde: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\tracutep: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\tracutesemicolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\tracuteu: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteuacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteucircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteudieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteugrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteuhungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteumacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteuogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tracuteuring: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcarona: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronaacute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronabreve: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronadieresis: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronagrave: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronamacron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronaogonek: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronaring: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaronatilde: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcaroncolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\trcaroni: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaroniacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronicircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronidieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronigrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronimacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaroniogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronk: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronkcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronl: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronlacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronlcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronlslash: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronm: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25\n\t],\n\trcaronn: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcaronnacute: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcaronncaron: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcaronncommaaccent: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcaronntilde: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcaronp: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\trcaronsemicolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\trcaronu: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronuacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronucircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronudieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronugrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronuhungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronumacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronuogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcaronuring: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccenta: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentaacute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentabreve: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentadieresis: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentagrave: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentamacron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentaogonek: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentaring: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentatilde: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-15\n\t],\n\trcommaaccentcolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\trcommaaccenti: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentiacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccenticircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentidieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentigrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentimacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentiogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentk: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentkcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentl: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentlacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentlcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentlslash: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentm: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25\n\t],\n\trcommaaccentn: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcommaaccentnacute: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcommaaccentncaron: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcommaaccentncommaaccent: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcommaaccentntilde: [\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t25,\n\t\t-15\n\t],\n\trcommaaccentp: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30,\n\t\t-10\n\t],\n\trcommaaccentsemicolon: [\n\t\t0,\n\t\t0,\n\t\t30,\n\t\t30\n\t],\n\trcommaaccentu: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentuacute: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentucircumflex: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentudieresis: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentugrave: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentuhungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentumacron: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccentuogonek: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\trcommaaccenturing: [\n\t\t0,\n\t\t0,\n\t\t15,\n\t\t15\n\t],\n\tscomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tsperiod: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tsacutecomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tsacuteperiod: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscaroncomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscaronperiod: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscedillacomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscedillaperiod: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscommaaccentcomma: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tscommaaccentperiod: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tve: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tveacute: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvecaron: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvedieresis: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvegrave: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tvemacron: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tveogonek: [\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t-25,\n\t\t-10,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\twa: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twaacute: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twabreve: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twacircumflex: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twadieresis: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twagrave: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twamacron: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twaogonek: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twaring: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twatilde: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twe: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tweacute: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twecaron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twecircumflex: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twedieresis: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twedotaccent: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twegrave: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\twemacron: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tweogonek: [\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t-10,\n\t\t0,\n\t\t-10\n\t],\n\tzo: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzoacute: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzodieresis: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzograve: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzomacron: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzoslash: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzotilde: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteo: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteoacute: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteodieresis: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteograve: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteomacron: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteoslash: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzacuteotilde: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcarono: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronoacute: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronodieresis: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronograve: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronomacron: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronoslash: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzcaronotilde: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccento: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentoacute: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentocircumflex: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentodieresis: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentograve: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentomacron: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentoslash: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tzdotaccentotilde: [\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-15\n\t],\n\tAp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAacutep: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAacutequoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAbrevep: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAbrevequoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAcircumflexp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAcircumflexquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAdieresisp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAdieresisquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAgravep: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAgravequoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAmacronp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAmacronquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAogonekp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAogonekquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAringp: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAringquoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tAtildep: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tAtildequoteright: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-74,\n\t\t-74,\n\t\t-37,\n\t\t-111\n\t],\n\tJe: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJeacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJecaron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJecircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJedieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJedotaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJegrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJemacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJeogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJo: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJoacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJocircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJodieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJograve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJohungarumlaut: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJomacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJoslash: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tJotilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t-40,\n\t\t-25\n\t],\n\tNA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNacuteAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcaronAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNcommaaccentAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tNtildeAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20,\n\t\t-30,\n\t\t-27,\n\t\t-35\n\t],\n\tTi: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTiacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTiogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaroni: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaroniacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcaroniogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccenti: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentiacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tTcommaaccentiogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-35\n\t],\n\tVi: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-60\n\t],\n\tViacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-60\n\t],\n\tVicircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-34,\n\t\t-20\n\t],\n\tVidieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-34,\n\t\t-20\n\t],\n\tVigrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-34,\n\t\t-20\n\t],\n\tVimacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t0,\n\t\t-34,\n\t\t-20\n\t],\n\tViogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t-55,\n\t\t-74,\n\t\t-60\n\t],\n\tWi: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-40\n\t],\n\tWiacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-40\n\t],\n\tWiogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-37,\n\t\t-55,\n\t\t-40\n\t],\n\tfi: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-25,\n\t\t0,\n\t\t-20,\n\t\t-20\n\t],\n\tgperiod: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tgbreveperiod: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tgcommaaccentperiod: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-15\n\t],\n\tiv: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tiacutev: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\ticircumflexv: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tidieresisv: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tigravev: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\timacronv: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tiogonekv: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-25\n\t],\n\tky: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tkyacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tkydieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tkcommaaccenty: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tkcommaaccentyacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tkcommaaccentydieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-15,\n\t\t0,\n\t\t-10,\n\t\t-15\n\t],\n\tquotedblleftA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquotedblleftAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tquoteleftAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10,\n\t\t0,\n\t\t0,\n\t\t-80\n\t],\n\tre: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\treacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trecaron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trecircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tredieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tredotaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tregrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tremacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\treogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracutee: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteeacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteecaron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteecircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteedieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteedotaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteegrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteemacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tracuteeogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcarone: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaroneacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronecaron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronecircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronedieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronedotaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronegrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaronemacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcaroneogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccente: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccenteacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentecaron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentecircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentedieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentedotaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentegrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccentemacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\trcommaaccenteogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t0,\n\t\t-37\n\t],\n\tspaceA: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAcircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAdieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAgrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAmacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tspaceAtilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-55,\n\t\t-37,\n\t\t-18,\n\t\t-55\n\t],\n\tFi: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFiacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFicircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFidieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFigrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFimacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\tFiogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-45\n\t],\n\teb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\teacuteb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tecaronb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tecircumflexb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tedieresisb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tedotaccentb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tegraveb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\temacronb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\teogonekb: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tff: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-18,\n\t\t-18,\n\t\t-25\n\t],\n\tquoterightt: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t-30,\n\t\t-18\n\t],\n\tquoterighttcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-37,\n\t\t-30,\n\t\t-18\n\t],\n\tYicircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYidieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYigrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYimacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYacuteicircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYacuteidieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYacuteigrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYacuteimacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYdieresisicircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYdieresisidieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYdieresisigrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\tYdieresisimacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-34\n\t],\n\teg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teacuteg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teacutegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teacutegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecarong: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecarongbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecarongcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecircumflexg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecircumflexgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tecircumflexgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedieresisg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedieresisgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedieresisgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedotaccentg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedotaccentgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tedotaccentgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tegraveg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tegravegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tegravegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\temacrong: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\temacrongbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\temacrongcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teogonekg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teogonekgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\teogonekgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-40,\n\t\t-15\n\t],\n\tfiogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tgcomma: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgbrevecomma: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tgcommaaccentcomma: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tog: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\togbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\togcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toacuteg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toacutegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\toacutegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tocircumflexgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\todieresisg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\todieresisgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\todieresisgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tograveg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\togravegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\togravegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautgbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tohungarumlautgcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tomacrong: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tomacrongbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tomacrongcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\totildeg: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\totildegbreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\totildegcommaaccent: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-10\n\t],\n\tfiacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-20\n\t],\n\tga: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgaacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgabreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgacircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgadieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgagrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgamacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgaogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgaring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgatilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbrevea: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveaacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveabreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveacircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveadieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveagrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveamacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveaogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbrevearing: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgbreveatilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccenta: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentaacute: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentabreve: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentacircumflex: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentadieresis: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentagrave: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentamacron: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentaogonek: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentaring: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t],\n\tgcommaaccentatilde: [\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t-5\n\t]\n};\nvar data = {\n\tattributes: attributes,\n\tglyphWidths: glyphWidths,\n\tkernPairs: kernPairs\n};\n\nconst initFont = font => {\n return [font.FontName, {\n attributes: font,\n glyphWidths: {},\n kernPairs: {}\n }];\n};\nconst expandData = data => {\n const {\n attributes,\n glyphWidths,\n kernPairs\n } = data;\n const fonts = attributes.map(initFont);\n Object.keys(glyphWidths).forEach(key => {\n glyphWidths[key].forEach((value, index) => {\n if (value) fonts[index][1].glyphWidths[key] = value;\n });\n });\n Object.keys(kernPairs).forEach(key => {\n kernPairs[key].forEach((value, index) => {\n if (value) fonts[index][1].kernPairs[key] = value;\n });\n });\n return Object.fromEntries(fonts);\n};\n\nconst STANDARD_FONTS = expandData(data);\nconst createStandardFont = PDFFont => class StandardFont extends PDFFont {\n constructor(document, name, id) {\n super();\n this.document = document;\n this.name = name;\n this.id = id;\n this.font = AFMFont.fromJson(STANDARD_FONTS[this.name]);\n this.ascender = this.font.ascender;\n this.descender = this.font.descender;\n this.bbox = this.font.bbox;\n this.lineGap = this.font.lineGap;\n }\n embed() {\n this.dictionary.data = {\n Type: 'Font',\n BaseFont: this.name,\n Subtype: 'Type1',\n Encoding: 'WinAnsiEncoding'\n };\n return this.dictionary.end();\n }\n encode(text) {\n const encoded = this.font.encodeText(text);\n const glyphs = this.font.glyphsForString(`${text}`);\n const advances = this.font.advancesForGlyphs(glyphs);\n const positions = [];\n for (let i = 0; i < glyphs.length; i++) {\n const glyph = glyphs[i];\n positions.push({\n xAdvance: advances[i],\n yAdvance: 0,\n xOffset: 0,\n yOffset: 0,\n advanceWidth: this.font.widthOfGlyph(glyph)\n });\n }\n return [encoded, positions];\n }\n encodeGlyphs(glyphs) {\n const res = [];\n for (let glyph of Array.from(glyphs)) {\n res.push(`00${glyph.id.toString(16)}`.slice(-2));\n }\n return res;\n }\n widthOfString(string, size) {\n const glyphs = this.font.glyphsForString(`${string}`);\n const advances = this.font.advancesForGlyphs(glyphs);\n let width = 0;\n for (let advance of Array.from(advances)) {\n width += advance;\n }\n const scale = size / 1000;\n return width * scale;\n }\n static isStandardFont(name) {\n return name in STANDARD_FONTS;\n }\n};\n\nconst toHex = function () {\n for (var _len = arguments.length, codePoints = new Array(_len), _key = 0; _key < _len; _key++) {\n codePoints[_key] = arguments[_key];\n }\n const codes = Array.from(codePoints).map(code => `0000${code.toString(16)}`.slice(-4));\n return codes.join('');\n};\nconst createEmbeddedFont = PDFFont => class EmbeddedFont extends PDFFont {\n constructor(document, font, id) {\n super();\n this.document = document;\n this.font = font;\n this.id = id;\n this.subset = this.font.createSubset();\n this.unicode = [[0]];\n this.widths = [this.font.getGlyph(0).advanceWidth];\n this.name = this.font.postscriptName;\n this.scale = 1000 / this.font.unitsPerEm;\n this.ascender = this.font.ascent * this.scale;\n this.descender = this.font.descent * this.scale;\n this.xHeight = this.font.xHeight * this.scale;\n this.capHeight = this.font.capHeight * this.scale;\n this.lineGap = this.font.lineGap * this.scale;\n this.bbox = this.font.bbox;\n this.layoutCache = Object.create(null);\n }\n layoutRun(text, features) {\n // passing LTR To force fontkit to not reverse the string\n const run = this.font.layout(text, features, undefined, undefined, 'ltr');\n\n // Normalize position values\n for (let i = 0; i < run.positions.length; i++) {\n const position = run.positions[i];\n for (let key in position) {\n position[key] *= this.scale;\n }\n position.advanceWidth = run.glyphs[i].advanceWidth * this.scale;\n }\n return run;\n }\n layoutCached(text) {\n let cached;\n if (cached = this.layoutCache[text]) {\n return cached;\n }\n const run = this.layoutRun(text);\n this.layoutCache[text] = run;\n return run;\n }\n layout(text, features, onlyWidth) {\n // Skip the cache if any user defined features are applied\n if (onlyWidth == null) {\n onlyWidth = false;\n }\n if (features) {\n return this.layoutRun(text, features);\n }\n const glyphs = onlyWidth ? null : [];\n const positions = onlyWidth ? null : [];\n let advanceWidth = 0;\n\n // Split the string by words to increase cache efficiency.\n // For this purpose, spaces and tabs are a good enough delimeter.\n let last = 0;\n let index = 0;\n while (index <= text.length) {\n let needle;\n if (index === text.length && last < index || (needle = text.charAt(index), [' ', '\\t'].includes(needle))) {\n const run = this.layoutCached(text.slice(last, ++index));\n if (!onlyWidth) {\n glyphs.push(...Array.from(run.glyphs || []));\n positions.push(...Array.from(run.positions || []));\n }\n advanceWidth += run.advanceWidth;\n last = index;\n } else {\n index++;\n }\n }\n return {\n glyphs,\n positions,\n advanceWidth\n };\n }\n encode(text, features) {\n const {\n glyphs,\n positions\n } = this.layout(text, features);\n const res = [];\n for (let i = 0; i < glyphs.length; i++) {\n const glyph = glyphs[i];\n const gid = this.subset.includeGlyph(glyph.id);\n res.push(`0000${gid.toString(16)}`.slice(-4));\n if (this.widths[gid] == null) {\n this.widths[gid] = glyph.advanceWidth * this.scale;\n }\n if (this.unicode[gid] == null) {\n this.unicode[gid] = glyph.codePoints;\n }\n }\n return [res, positions];\n }\n encodeGlyphs(glyphs) {\n const res = [];\n for (let i = 0; i < glyphs.length; i++) {\n const glyph = glyphs[i];\n const gid = this.subset.includeGlyph(glyph.id);\n res.push(`0000${gid.toString(16)}`.slice(-4));\n if (this.widths[gid] == null) {\n this.widths[gid] = glyph.advanceWidth * this.scale;\n }\n if (this.unicode[gid] == null) {\n this.unicode[gid] = glyph.codePoints;\n }\n }\n return res;\n }\n widthOfString(string, size, features) {\n const width = this.layout(string, features, true).advanceWidth;\n const scale = size / 1000;\n return width * scale;\n }\n embed() {\n const isCFF = this.subset.cff != null;\n const fontFile = this.document.ref();\n if (isCFF) {\n fontFile.data.Subtype = 'CIDFontType0C';\n }\n fontFile.end(this.subset.encode());\n const familyClass = ((this.font['OS/2'] != null ? this.font['OS/2'].sFamilyClass : undefined) || 0) >> 8;\n let flags = 0;\n if (this.font.post.isFixedPitch) {\n flags |= 1 << 0;\n }\n if (1 <= familyClass && familyClass <= 7) {\n flags |= 1 << 1;\n }\n flags |= 1 << 2; // assume the font uses non-latin characters\n if (familyClass === 10) {\n flags |= 1 << 3;\n }\n if (this.font.head.macStyle.italic) {\n flags |= 1 << 6;\n }\n\n // generate a random tag (6 uppercase letters. 65 is the char code for 'A')\n const tag = [0, 1, 2, 3, 4, 5].map(() => String.fromCharCode(Math.random() * 26 + 65)).join('');\n const name = tag + '+' + this.font.postscriptName;\n const {\n bbox\n } = this.font;\n const descriptor = this.document.ref({\n Type: 'FontDescriptor',\n FontName: name,\n Flags: flags,\n FontBBox: [bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale],\n ItalicAngle: this.font.italicAngle,\n Ascent: this.ascender,\n Descent: this.descender,\n CapHeight: (this.font.capHeight || this.font.ascent) * this.scale,\n XHeight: (this.font.xHeight || 0) * this.scale,\n StemV: 0\n }); // not sure how to calculate this\n\n if (isCFF) {\n descriptor.data.FontFile3 = fontFile;\n } else {\n descriptor.data.FontFile2 = fontFile;\n }\n descriptor.end();\n const descendantFontData = {\n Type: 'Font',\n Subtype: 'CIDFontType0',\n BaseFont: name,\n CIDSystemInfo: {\n Registry: new String('Adobe'),\n Ordering: new String('Identity'),\n Supplement: 0\n },\n FontDescriptor: descriptor,\n W: [0, this.widths]\n };\n if (!isCFF) {\n descendantFontData.Subtype = 'CIDFontType2';\n descendantFontData.CIDToGIDMap = 'Identity';\n }\n const descendantFont = this.document.ref(descendantFontData);\n descendantFont.end();\n this.dictionary.data = {\n Type: 'Font',\n Subtype: 'Type0',\n BaseFont: name,\n Encoding: 'Identity-H',\n DescendantFonts: [descendantFont],\n ToUnicode: this.toUnicodeCmap()\n };\n return this.dictionary.end();\n }\n\n // Maps the glyph ids encoded in the PDF back to unicode strings\n // Because of ligature substitutions and the like, there may be one or more\n // unicode characters represented by each glyph.\n toUnicodeCmap() {\n const cmap = this.document.ref();\n let entries = [];\n let unicodeMap = '/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 for (let [index, codePoints] of this.unicode.entries()) {\n const encoded = [];\n if (entries.length >= 100) {\n unicodeMap += '\\n' + entries.length + ' beginbfchar\\n' + entries.join('\\n') + '\\nendbfchar';\n entries = [];\n }\n // encode codePoints to utf16\n for (let value of codePoints) {\n if (value > 0xffff) {\n value -= 0x10000;\n encoded.push(toHex(value >>> 10 & 0x3ff | 0xd800));\n value = 0xdc00 | value & 0x3ff;\n }\n encoded.push(toHex(value));\n }\n\n // eslint-disable-next-line no-useless-concat\n entries.push('<' + toHex(index) + '>' + '<' + encoded.join(' ') + '>');\n }\n if (entries.length) {\n unicodeMap += '\\n' + entries.length + ' beginbfchar\\n' + entries.join('\\n') + '\\nendbfchar\\n';\n }\n unicodeMap += 'endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend';\n cmap.end(unicodeMap);\n return cmap;\n }\n};\n\nclass PDFFont {\n static open(document, src, family, id) {\n let font;\n if (typeof src === 'string') {\n if (StandardFont.isStandardFont(src)) {\n return new StandardFont(document, src, id);\n }\n {\n throw new Error(`Can't open ${src} in browser build`);\n }\n } else if (src instanceof Uint8Array) {\n font = fontkit.create(src, family);\n } else if (src instanceof ArrayBuffer) {\n font = fontkit.create(new Uint8Array(src), family);\n } else if (typeof src === 'object') {\n font = src;\n }\n if (font == null) {\n throw new Error('Not a supported font format or standard PDF font.');\n }\n return new EmbeddedFont(document, font, id);\n }\n encode() {\n throw new Error('Must be implemented by subclasses');\n }\n widthOfString() {\n throw new Error('Must be implemented by subclasses');\n }\n ref() {\n return this.dictionary != null ? this.dictionary : this.dictionary = this.document.ref();\n }\n finalize() {\n if (this.embedded || this.dictionary == null) {\n return;\n }\n this.embed();\n return this.embedded = true;\n }\n embed() {\n throw new Error('Must be implemented by subclasses');\n }\n lineHeight(size, includeGap) {\n if (includeGap == null) {\n includeGap = false;\n }\n const gap = includeGap ? this.lineGap : 0;\n return (this.ascender + gap - this.descender) / 1000 * size;\n }\n}\nconst StandardFont = createStandardFont(PDFFont);\nconst EmbeddedFont = createEmbeddedFont(PDFFont);\n\nvar FontsMixin = {\n initFonts() {\n // Lookup table for embedded fonts\n this._fontFamilies = {};\n this._fontCount = 0;\n\n // Font state\n this._fontSize = 12;\n this._font = null;\n this._registeredFonts = {};\n\n // Set the default font\n return this.font('Helvetica');\n },\n font(src, family, size) {\n let cacheKey;\n let font;\n if (typeof family === 'number') {\n size = family;\n family = null;\n }\n\n // check registered fonts if src is a string\n if (typeof src === 'string' && this._registeredFonts[src]) {\n cacheKey = src;\n ({\n src,\n family\n } = this._registeredFonts[src]);\n } else {\n cacheKey = family || src;\n if (typeof cacheKey !== 'string') {\n cacheKey = null;\n }\n }\n if (size != null) {\n this.fontSize(size);\n }\n\n // fast path: check if the font is already in the PDF\n if (font = this._fontFamilies[cacheKey]) {\n this._font = font;\n return this;\n }\n\n // load the font\n const id = `F${++this._fontCount}`;\n this._font = PDFFont.open(this, src, family, id);\n\n // check for existing font familes with the same name already in the PDF\n // useful if the font was passed as a buffer\n if (font = this._fontFamilies[this._font.name]) {\n this._font = font;\n return this;\n }\n\n // save the font for reuse later\n if (cacheKey) {\n this._fontFamilies[cacheKey] = this._font;\n }\n if (this._font.name) {\n this._fontFamilies[this._font.name] = this._font;\n }\n return this;\n },\n fontSize(_fontSize) {\n this._fontSize = _fontSize;\n return this;\n },\n currentLineHeight(includeGap) {\n if (includeGap == null) {\n includeGap = false;\n }\n return this._font.lineHeight(this._fontSize, includeGap);\n },\n registerFont(name, src, family) {\n this._registeredFonts[name] = {\n src,\n family\n };\n return this;\n }\n};\n\nconst {\n number\n} = PDFObject$1;\nvar TextMixin = {\n initText() {\n this._line = this._line.bind(this);\n\n // Current coordinates\n this.x = 0;\n this.y = 0;\n return this._lineGap = 0;\n },\n _text(text, x, y, options, lineCallback) {\n options = this._initOptions(x, y, options);\n\n // Convert text to a string\n text = text == null ? '' : `${text}`;\n\n // if the wordSpacing option is specified, remove multiple consecutive spaces\n if (options.wordSpacing) {\n text = text.replace(/\\s{2,}/g, ' ');\n }\n const addStructure = () => {\n if (options.structParent) {\n options.structParent.add(this.struct(options.structType || 'P', [this.markStructureContent(options.structType || 'P')]));\n }\n };\n for (let line of text.split('\\n')) {\n addStructure();\n lineCallback(line, options);\n }\n return this;\n },\n text(text, x, y, options) {\n return this._text(text, x, y, options, this._line);\n },\n widthOfString(string, options) {\n if (options === void 0) {\n options = {};\n }\n return this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1);\n },\n _initOptions(x, y, options) {\n if (x === void 0) {\n x = {};\n }\n if (options === void 0) {\n options = {};\n }\n if (typeof x === 'object') {\n options = x;\n x = null;\n }\n\n // shallow clone options object\n /**\n * @type {Object}\n */\n const result = Object.assign({}, options);\n\n // extend options with previous values for continued text\n if (this._textOptions) {\n for (let key in this._textOptions) {\n const val = this._textOptions[key];\n if (key !== 'continued') {\n if (result[key] === undefined) {\n result[key] = val;\n }\n }\n }\n }\n\n // Update the current position\n if (x != null) {\n this.x = x;\n }\n if (y != null) {\n this.y = y;\n }\n\n // wrap to margins if no x or y position passed\n if (result.lineBreak !== false) {\n if (result.width == null) {\n result.width = this.page.width - this.x - this.page.margins.right;\n }\n result.width = Math.max(result.width, 0);\n }\n if (!result.columns) {\n result.columns = 0;\n }\n if (result.columnGap == null) {\n result.columnGap = 18;\n } // 1/4 inch\n\n return result;\n },\n _line(text, options) {\n if (options === void 0) {\n options = {};\n }\n this._fragment(text, this.x, this.y, options);\n return this.x += this.widthOfString(text);\n },\n _fragment(text, x, y, options) {\n text = `${text}`.replace(/\\n/g, '');\n if (text.length === 0) return;\n const [encoded, positions] = this._font.encode(text, options.features);\n const dy = this._font.ascender / 1000 * this._fontSize;\n this._glyphs(encoded, positions, x, y + dy, options);\n },\n _glyphs(encoded, positions, x, y, options) {\n const commands = [];\n const scale = this._fontSize / 1000;\n let i;\n let last = 0;\n let hadOffset = false;\n this.save();\n\n // flip coordinate system\n this.transform(1, 0, 0, -1, 0, this.page.height);\n y = this.page.height - y;\n\n // add current font to page if necessary\n if (this.page.fonts[this._font.id] == null) {\n this.page.fonts[this._font.id] = this._font.ref();\n }\n\n // begin the text object\n this.addContent('BT');\n\n // text position\n this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`);\n\n // font and font size\n this.addContent(`/${this._font.id} ${number(this._fontSize)} Tf`);\n\n // rendering mode\n const mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0;\n if (mode) {\n this.addContent(`${mode} Tr`);\n }\n\n // Adds a segment of text to the TJ command buffer\n const addSegment = cur => {\n if (last < cur) {\n const hex = encoded.slice(last, cur).join('');\n const advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;\n commands.push(`<${hex}> ${number(-advance)}`);\n }\n return last = cur;\n };\n\n // Flushes the current TJ commands to the output stream\n const flush = i => {\n addSegment(i);\n if (commands.length > 0) {\n this.addContent(`[${commands.join(' ')}] TJ`);\n return commands.length = 0;\n }\n };\n for (i = 0; i < positions.length; i++) {\n // If we have an x or y offset, we have to break out of the current TJ command\n // so we can move the text position.\n const pos = positions[i];\n if (pos.xOffset || pos.yOffset) {\n // Flush the current buffer\n flush(i);\n\n // Move the text position and flush just the current character\n this.addContent(`1 0 0 1 ${number(x + pos.xOffset * scale)} ${number(y + pos.yOffset * scale)} Tm`);\n flush(i + 1);\n hadOffset = true;\n } else {\n // If the last character had an offset, reset the text position\n if (hadOffset) {\n this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`);\n hadOffset = false;\n }\n\n // Group segments that don't have any advance adjustments\n if (pos.xAdvance - pos.advanceWidth !== 0) {\n addSegment(i + 1);\n }\n }\n x += pos.xAdvance * scale;\n }\n\n // Flush any remaining commands\n flush(i);\n\n // end the text object\n this.addContent('ET');\n\n // restore flipped coordinate system\n return this.restore();\n }\n};\n\nconst COLOR_SPACE_MAP = {\n 1: 'DeviceGray',\n 3: 'DeviceRGB',\n 4: 'DeviceCMYK'\n};\nclass JPEG {\n constructor(data, label) {\n this.data = data;\n this.label = label;\n this.orientation = 1;\n if (this.data.readUInt16BE(0) !== 0xffd8) {\n throw 'SOI not found in JPEG';\n }\n const markers = _JPEG.decode(this.data);\n for (let i = 0; i < markers.length; i += 1) {\n const marker = markers[i];\n if (marker.name === 'EXIF' && marker.entries.orientation) {\n this.orientation = marker.entries.orientation;\n }\n if (marker.name === 'SOF') {\n this.bits ||= marker.precision;\n this.width ||= marker.width;\n this.height ||= marker.height;\n this.colorSpace ||= COLOR_SPACE_MAP[marker.numberOfComponents];\n }\n }\n this.obj = null;\n }\n embed(document) {\n if (this.obj) {\n return;\n }\n this.obj = document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: this.bits,\n Width: this.width,\n Height: this.height,\n ColorSpace: this.colorSpace,\n Filter: 'DCTDecode'\n });\n\n // add extra decode params for CMYK images. By swapping the\n // min and max values from the default, we invert the colors. See\n // section 4.8.4 of the spec.\n if (this.colorSpace === 'DeviceCMYK') {\n this.obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0];\n }\n this.obj.end(this.data);\n\n // free memory\n return this.data = null;\n }\n}\n\nclass PNGImage {\n constructor(data, label) {\n this.label = label;\n this.image = new PNG(data);\n this.width = this.image.width;\n this.height = this.image.height;\n this.imgData = this.image.imgData;\n this.obj = null;\n }\n embed(document) {\n let dataDecoded = false;\n this.document = document;\n if (this.obj) {\n return;\n }\n const hasAlphaChannel = this.image.hasAlphaChannel;\n const isInterlaced = this.image.interlaceMethod === 1;\n this.obj = this.document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits,\n Width: this.width,\n Height: this.height,\n Filter: 'FlateDecode'\n });\n if (!hasAlphaChannel) {\n const params = this.document.ref({\n Predictor: isInterlaced ? 1 : 15,\n Colors: this.image.colors,\n BitsPerComponent: this.image.bits,\n Columns: this.width\n });\n this.obj.data.DecodeParms = params;\n params.end();\n }\n if (this.image.palette.length === 0) {\n this.obj.data.ColorSpace = this.image.colorSpace;\n } else {\n // embed the color palette in the PDF as an object stream\n const palette = this.document.ref();\n palette.end(Buffer$2.from(this.image.palette));\n\n // build the color space array for the image\n this.obj.data.ColorSpace = ['Indexed', 'DeviceRGB', this.image.palette.length / 3 - 1, palette];\n }\n\n // For PNG color types 0, 2 and 3, the transparency data is stored in\n // a dedicated PNG chunk.\n if (this.image.transparency.grayscale != null) {\n // Use Color Key Masking (spec section 4.8.5)\n // An array with N elements, where N is two times the number of color components.\n const val = this.image.transparency.grayscale;\n this.obj.data.Mask = [val, val];\n } else if (this.image.transparency.rgb) {\n // Use Color Key Masking (spec section 4.8.5)\n // An array with N elements, where N is two times the number of color components.\n const {\n rgb\n } = this.image.transparency;\n const mask = [];\n for (let x of rgb) {\n mask.push(x, x);\n }\n this.obj.data.Mask = mask;\n } else if (this.image.transparency.indexed) {\n // Create a transparency SMask for the image based on the data\n // in the PLTE and tRNS sections. See below for details on SMasks.\n dataDecoded = true;\n return this.loadIndexedAlphaChannel();\n } else if (hasAlphaChannel) {\n // For PNG color types 4 and 6, the transparency data is stored as a alpha\n // channel mixed in with the main image data. Separate this data out into an\n // SMask object and store it separately in the PDF.\n dataDecoded = true;\n return this.splitAlphaChannel();\n }\n if (isInterlaced && !dataDecoded) {\n return this.decodeData();\n }\n this.finalize();\n }\n finalize() {\n if (this.alphaChannel) {\n const sMask = this.document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n Height: this.height,\n Width: this.width,\n BitsPerComponent: 8,\n Filter: 'FlateDecode',\n ColorSpace: 'DeviceGray',\n Decode: [0, 1]\n });\n sMask.end(this.alphaChannel);\n this.obj.data.SMask = sMask;\n }\n\n // add the actual image data\n this.obj.end(this.imgData);\n\n // free memory\n this.image = null;\n return this.imgData = null;\n }\n splitAlphaChannel() {\n return this.image.decodePixels(pixels => {\n let a;\n let p;\n const colorCount = this.image.colors;\n const pixelCount = this.width * this.height;\n const imgData = Buffer$2.alloc(pixelCount * colorCount);\n const alphaChannel = Buffer$2.alloc(pixelCount);\n let i = p = a = 0;\n const len = pixels.length;\n // For 16bit images copy only most significant byte (MSB) - PNG data is always stored in network byte order (MSB first)\n const skipByteCount = this.image.bits === 16 ? 1 : 0;\n while (i < len) {\n for (let colorIndex = 0; colorIndex < colorCount; colorIndex++) {\n imgData[p++] = pixels[i++];\n i += skipByteCount;\n }\n alphaChannel[a++] = pixels[i++];\n i += skipByteCount;\n }\n this.imgData = zlib.deflateSync(imgData);\n this.alphaChannel = zlib.deflateSync(alphaChannel);\n return this.finalize();\n });\n }\n loadIndexedAlphaChannel() {\n const transparency = this.image.transparency.indexed;\n return this.image.decodePixels(pixels => {\n const alphaChannel = Buffer$2.alloc(this.width * this.height);\n let i = 0;\n for (let j = 0, end = pixels.length; j < end; j++) {\n alphaChannel[i++] = transparency[pixels[j]];\n }\n this.alphaChannel = zlib.deflateSync(alphaChannel);\n return this.finalize();\n });\n }\n decodeData() {\n this.image.decodePixels(pixels => {\n this.imgData = zlib.deflateSync(pixels);\n this.finalize();\n });\n }\n}\n\nclass PDFImage {\n static open(src, label) {\n let data;\n if (Buffer$2.isBuffer(src)) {\n data = src;\n } else if (src instanceof ArrayBuffer) {\n data = Buffer$2.from(new Uint8Array(src));\n } else {\n let match;\n if (match = /^data:.+?;base64,(.*)$/.exec(src)) {\n data = Buffer$2.from(match[1], 'base64');\n } else {\n data = fs.readFileSync(src);\n if (!data) {\n return;\n }\n }\n }\n if (data[0] === 0xff && data[1] === 0xd8) {\n return new JPEG(data, label);\n } else if (data[0] === 0x89 && data.toString('ascii', 1, 4) === 'PNG') {\n return new PNGImage(data, label);\n } else {\n throw new Error('Unknown image format.');\n }\n }\n}\n\nvar ImagesMixin = {\n initImages() {\n this._imageRegistry = {};\n return this._imageCount = 0;\n },\n embedImage(src) {\n let image;\n if (typeof src === 'string') {\n image = this._imageRegistry[src];\n }\n if (!image) {\n if (src.width && src.height) {\n image = src;\n } else {\n image = this.openImage(src);\n }\n }\n if (!image.obj) {\n image.embed(this);\n }\n return image;\n },\n image(src, x, y, options) {\n if (options === void 0) {\n options = {};\n }\n let bh;\n let bp;\n let bw;\n let image;\n let ip;\n let left;\n let left1;\n let rotateAngle;\n let originX;\n let originY;\n if (typeof x === 'object') {\n options = x;\n x = null;\n }\n\n // Ignore orientation based on document options or image options\n const ignoreOrientation = options.ignoreOrientation || options.ignoreOrientation !== false && this.options.ignoreOrientation;\n x = (left = x != null ? x : options.x) != null ? left : this.x;\n y = (left1 = y != null ? y : options.y) != null ? left1 : this.y;\n if (typeof src === 'string') {\n image = this._imageRegistry[src];\n }\n if (!image) {\n if (src.width && src.height) {\n image = src;\n } else {\n image = this.openImage(src);\n }\n }\n if (!image.obj) {\n image.embed(this);\n }\n if (this.page.xobjects[image.label] == null) {\n this.page.xobjects[image.label] = image.obj;\n }\n let {\n width,\n height\n } = image;\n\n // If EXIF orientation calls for it, swap width and height\n if (!ignoreOrientation && image.orientation > 4) {\n [width, height] = [height, width];\n }\n let w = options.width || width;\n let h = options.height || height;\n if (options.width && !options.height) {\n const wp = w / width;\n w = width * wp;\n h = height * wp;\n } else if (options.height && !options.width) {\n const hp = h / height;\n w = width * hp;\n h = height * hp;\n } else if (options.scale) {\n w = width * options.scale;\n h = height * options.scale;\n } else if (options.fit) {\n [bw, bh] = options.fit;\n bp = bw / bh;\n ip = width / height;\n if (ip > bp) {\n w = bw;\n h = bw / ip;\n } else {\n h = bh;\n w = bh * ip;\n }\n } else if (options.cover) {\n [bw, bh] = options.cover;\n bp = bw / bh;\n ip = width / height;\n if (ip > bp) {\n h = bh;\n w = bh * ip;\n } else {\n w = bw;\n h = bw / ip;\n }\n }\n if (options.fit || options.cover) {\n if (options.align === 'center') {\n x = x + bw / 2 - w / 2;\n } else if (options.align === 'right') {\n x = x + bw - w;\n }\n if (options.valign === 'center') {\n y = y + bh / 2 - h / 2;\n } else if (options.valign === 'bottom') {\n y = y + bh - h;\n }\n }\n if (!ignoreOrientation) {\n switch (image.orientation) {\n // No orientation (need to flip image, though, because of the default transform matrix on the document)\n default:\n case 1:\n h = -h;\n y -= h;\n rotateAngle = 0;\n break;\n // Flip Horizontal\n case 2:\n w = -w;\n h = -h;\n x -= w;\n y -= h;\n rotateAngle = 0;\n break;\n // Rotate 180 degrees\n case 3:\n originX = x;\n originY = y;\n h = -h;\n x -= w;\n rotateAngle = 180;\n break;\n // Flip vertical\n case 4:\n // Do nothing, image will be flipped\n\n break;\n // Flip horizontally and rotate 270 degrees CW\n case 5:\n originX = x;\n originY = y;\n [w, h] = [h, w];\n y -= h;\n rotateAngle = 90;\n break;\n // Rotate 90 degrees CW\n case 6:\n originX = x;\n originY = y;\n [w, h] = [h, w];\n h = -h;\n rotateAngle = 90;\n break;\n // Flip horizontally and rotate 90 degrees CW\n case 7:\n originX = x;\n originY = y;\n [w, h] = [h, w];\n h = -h;\n w = -w;\n x -= w;\n rotateAngle = 90;\n break;\n // Rotate 270 degrees CW\n case 8:\n originX = x;\n originY = y;\n [w, h] = [h, w];\n h = -h;\n x -= w;\n y -= h;\n rotateAngle = -90;\n break;\n }\n } else {\n h = -h;\n y -= h;\n rotateAngle = 0;\n }\n\n // Set the current y position to below the image if it is in the document flow\n if (this.y === y) {\n this.y += h;\n }\n this.save();\n if (rotateAngle) {\n this.rotate(rotateAngle, {\n origin: [originX, originY]\n });\n }\n this.transform(w, 0, 0, h, x, y);\n this.addContent(`/${image.label} Do`);\n this.restore();\n return this;\n },\n openImage(src) {\n let image;\n if (typeof src === 'string') {\n image = this._imageRegistry[src];\n }\n if (!image) {\n image = PDFImage.open(src, `I${++this._imageCount}`);\n if (typeof src === 'string') {\n this._imageRegistry[src] = image;\n }\n }\n return image;\n }\n};\n\nvar AnnotationsMixin = {\n annotate(x, y, w, h, options) {\n options.Type = 'Annot';\n options.Rect = this._convertRect(x, y, w, h);\n options.Border = [0, 0, 0];\n if (options.Subtype === 'Link' && typeof options.F === 'undefined') {\n options.F = 1 << 2; // Print Annotation Flag\n }\n if (options.Subtype !== 'Link') {\n if (options.C == null) {\n options.C = this._normalizeColor(options.color || [0, 0, 0]);\n }\n } // convert colors\n delete options.color;\n if (typeof options.Dest === 'string') {\n options.Dest = new String(options.Dest);\n }\n\n // Capitalize keys\n for (let key in options) {\n const val = options[key];\n options[key[0].toUpperCase() + key.slice(1)] = val;\n }\n const ref = this.ref(options);\n this.page.annotations.push(ref);\n ref.end();\n return this;\n },\n note(x, y, w, h, contents, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Text';\n options.Contents = new String(contents);\n options.Name = 'Comment';\n if (options.color == null) {\n options.color = [243, 223, 92];\n }\n return this.annotate(x, y, w, h, options);\n },\n goTo(x, y, w, h, name, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Link';\n options.A = this.ref({\n S: 'GoTo',\n D: new String(name)\n });\n options.A.end();\n return this.annotate(x, y, w, h, options);\n },\n link(x, y, w, h, url, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Link';\n if (typeof url === 'number') {\n // Link to a page in the document (the page must already exist)\n const pages = this._root.data.Pages.data;\n if (url >= 0 && url < pages.Kids.length) {\n options.A = this.ref({\n S: 'GoTo',\n D: [pages.Kids[url], 'XYZ', null, null, null]\n });\n options.A.end();\n } else {\n throw new Error(`The document has no page ${url}`);\n }\n } else {\n // Link to an external url\n options.A = this.ref({\n S: 'URI',\n URI: new String(url)\n });\n options.A.end();\n }\n return this.annotate(x, y, w, h, options);\n },\n _markup(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n const [x1, y1, x2, y2] = this._convertRect(x, y, w, h);\n options.QuadPoints = [x1, y2, x2, y2, x1, y1, x2, y1];\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n highlight(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Highlight';\n if (options.color == null) {\n options.color = [241, 238, 148];\n }\n return this._markup(x, y, w, h, options);\n },\n underline(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Underline';\n return this._markup(x, y, w, h, options);\n },\n strike(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'StrikeOut';\n return this._markup(x, y, w, h, options);\n },\n lineAnnotation(x1, y1, x2, y2, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Line';\n options.Contents = new String();\n options.L = [x1, this.page.height - y1, x2, this.page.height - y2];\n return this.annotate(x1, y1, x2, y2, options);\n },\n rectAnnotation(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Square';\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n ellipseAnnotation(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'Circle';\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n textAnnotation(x, y, w, h, text, options) {\n if (options === void 0) {\n options = {};\n }\n options.Subtype = 'FreeText';\n options.Contents = new String(text);\n options.DA = new String();\n return this.annotate(x, y, w, h, options);\n },\n fileAnnotation(x, y, w, h, file, options) {\n if (file === void 0) {\n file = {};\n }\n if (options === void 0) {\n options = {};\n }\n // create hidden file\n const filespec = this.file(file.src, Object.assign({\n hidden: true\n }, file));\n options.Subtype = 'FileAttachment';\n options.FS = filespec;\n\n // add description from filespec unless description (Contents) has already been set\n if (options.Contents) {\n options.Contents = new String(options.Contents);\n } else if (filespec.data.Desc) {\n options.Contents = filespec.data.Desc;\n }\n return this.annotate(x, y, w, h, options);\n },\n _convertRect(x1, y1, w, h) {\n // flip y1 and y2\n let y2 = y1;\n y1 += h;\n\n // make x2\n let x2 = x1 + w;\n\n // apply current transformation matrix to points\n const [m0, m1, m2, m3, m4, m5] = this._ctm;\n x1 = m0 * x1 + m2 * y1 + m4;\n y1 = m1 * x1 + m3 * y1 + m5;\n x2 = m0 * x2 + m2 * y2 + m4;\n y2 = m1 * x2 + m3 * y2 + m5;\n return [x1, y1, x2, y2];\n }\n};\n\nclass PDFOutline {\n constructor(document, parent, title, dest, options) {\n if (options === void 0) {\n options = {\n expanded: false\n };\n }\n this.document = document;\n this.options = options;\n this.outlineData = {};\n if (dest !== null) {\n this.outlineData['Dest'] = [dest.dictionary, 'Fit'];\n }\n if (parent !== null) {\n this.outlineData['Parent'] = parent;\n }\n if (title !== null) {\n this.outlineData['Title'] = new String(title);\n }\n this.dictionary = this.document.ref(this.outlineData);\n this.children = [];\n }\n addItem(title, options) {\n if (options === void 0) {\n options = {\n expanded: false\n };\n }\n const result = new PDFOutline(this.document, this.dictionary, title, this.document.page, options);\n this.children.push(result);\n return result;\n }\n endOutline() {\n if (this.children.length > 0) {\n if (this.options.expanded) {\n this.outlineData.Count = this.children.length;\n }\n const first = this.children[0],\n last = this.children[this.children.length - 1];\n this.outlineData.First = first.dictionary;\n this.outlineData.Last = last.dictionary;\n for (let i = 0, len = this.children.length; i < len; i++) {\n const child = this.children[i];\n if (i > 0) {\n child.outlineData.Prev = this.children[i - 1].dictionary;\n }\n if (i < this.children.length - 1) {\n child.outlineData.Next = this.children[i + 1].dictionary;\n }\n child.endOutline();\n }\n }\n return this.dictionary.end();\n }\n}\n\nvar OutlineMixin = {\n initOutline() {\n return this.outline = new PDFOutline(this, null, null, null);\n },\n endOutline() {\n this.outline.endOutline();\n if (this.outline.children.length > 0) {\n this._root.data.Outlines = this.outline.dictionary;\n return this._root.data.PageMode = 'UseOutlines';\n }\n }\n};\n\n/*\nPDFStructureContent - a reference to a marked structure content\nBy Ben Schmidt\n*/\n\nclass PDFStructureContent {\n constructor(pageRef, mcid) {\n this.refs = [{\n pageRef,\n mcid\n }];\n }\n push(structContent) {\n structContent.refs.forEach(ref => this.refs.push(ref));\n }\n}\n\n/*\nPDFStructureElement - represents an element in the PDF logical structure tree\nBy Ben Schmidt\n*/\n\nclass PDFStructureElement {\n constructor(document, type, options, children) {\n if (options === void 0) {\n options = {};\n }\n if (children === void 0) {\n children = null;\n }\n this.document = document;\n this._attached = false;\n this._ended = false;\n this._flushed = false;\n this.dictionary = document.ref({\n // Type: \"StructElem\",\n S: type\n });\n const data = this.dictionary.data;\n if (Array.isArray(options) || this._isValidChild(options)) {\n children = options;\n options = {};\n }\n if (typeof options.title !== 'undefined') {\n data.T = new String(options.title);\n }\n if (typeof options.lang !== 'undefined') {\n data.Lang = new String(options.lang);\n }\n if (typeof options.alt !== 'undefined') {\n data.Alt = new String(options.alt);\n }\n if (typeof options.expanded !== 'undefined') {\n data.E = new String(options.expanded);\n }\n if (typeof options.actual !== 'undefined') {\n data.ActualText = new String(options.actual);\n }\n this._children = [];\n if (children) {\n if (!Array.isArray(children)) {\n children = [children];\n }\n children.forEach(child => this.add(child));\n this.end();\n }\n }\n add(child) {\n if (this._ended) {\n throw new Error(`Cannot add child to already-ended structure element`);\n }\n if (!this._isValidChild(child)) {\n throw new Error(`Invalid structure element child`);\n }\n if (child instanceof PDFStructureElement) {\n child.setParent(this.dictionary);\n if (this._attached) {\n child.setAttached();\n }\n }\n if (child instanceof PDFStructureContent) {\n this._addContentToParentTree(child);\n }\n if (typeof child === 'function' && this._attached) {\n // _contentForClosure() adds the content to the parent tree\n child = this._contentForClosure(child);\n }\n this._children.push(child);\n return this;\n }\n _addContentToParentTree(content) {\n content.refs.forEach(_ref => {\n let {\n pageRef,\n mcid\n } = _ref;\n const pageStructParents = this.document.getStructParentTree().get(pageRef.data.StructParents);\n pageStructParents[mcid] = this.dictionary;\n });\n }\n setParent(parentRef) {\n if (this.dictionary.data.P) {\n throw new Error(`Structure element added to more than one parent`);\n }\n this.dictionary.data.P = parentRef;\n this._flush();\n }\n setAttached() {\n if (this._attached) {\n return;\n }\n this._children.forEach((child, index) => {\n if (child instanceof PDFStructureElement) {\n child.setAttached();\n }\n if (typeof child === 'function') {\n this._children[index] = this._contentForClosure(child);\n }\n });\n this._attached = true;\n this._flush();\n }\n end() {\n if (this._ended) {\n return;\n }\n this._children.filter(child => child instanceof PDFStructureElement).forEach(child => child.end());\n this._ended = true;\n this._flush();\n }\n _isValidChild(child) {\n return child instanceof PDFStructureElement || child instanceof PDFStructureContent || typeof child === 'function';\n }\n _contentForClosure(closure) {\n const content = this.document.markStructureContent(this.dictionary.data.S);\n closure();\n this.document.endMarkedContent();\n this._addContentToParentTree(content);\n return content;\n }\n _isFlushable() {\n if (!this.dictionary.data.P || !this._ended) {\n return false;\n }\n return this._children.every(child => {\n if (typeof child === 'function') {\n return false;\n }\n if (child instanceof PDFStructureElement) {\n return child._isFlushable();\n }\n return true;\n });\n }\n _flush() {\n if (this._flushed || !this._isFlushable()) {\n return;\n }\n this.dictionary.data.K = [];\n this._children.forEach(child => this._flushChild(child));\n this.dictionary.end();\n\n // free memory used by children; the dictionary itself may still be\n // referenced by a parent structure element or root, but we can\n // at least trim the tree here\n this._children = [];\n this.dictionary.data.K = null;\n this._flushed = true;\n }\n _flushChild(child) {\n if (child instanceof PDFStructureElement) {\n this.dictionary.data.K.push(child.dictionary);\n }\n if (child instanceof PDFStructureContent) {\n child.refs.forEach(_ref2 => {\n let {\n pageRef,\n mcid\n } = _ref2;\n if (!this.dictionary.data.Pg) {\n this.dictionary.data.Pg = pageRef;\n }\n if (this.dictionary.data.Pg === pageRef) {\n this.dictionary.data.K.push(mcid);\n } else {\n this.dictionary.data.K.push({\n Type: 'MCR',\n Pg: pageRef,\n MCID: mcid\n });\n }\n });\n }\n }\n}\n\n/*\nPDFNumberTree - represents a number tree object\n*/\n\nclass PDFNumberTree extends PDFTree {\n _compareKeys(a, b) {\n return parseInt(a) - parseInt(b);\n }\n _keysName() {\n return 'Nums';\n }\n _dataForKey(k) {\n return parseInt(k);\n }\n}\n\n/*\nMarkings mixin - support marked content sequences in content streams\nBy Ben Schmidt\n*/\n\nvar MarkingsMixin = {\n initMarkings(options) {\n this.structChildren = [];\n if (options.tagged) {\n this.getMarkInfoDictionary().data.Marked = true;\n this.getStructTreeRoot();\n }\n },\n markContent(tag, options) {\n if (options === void 0) {\n options = null;\n }\n if (tag === 'Artifact' || options && options.mcid) {\n let toClose = 0;\n this.page.markings.forEach(marking => {\n if (toClose || marking.structContent || marking.tag === 'Artifact') {\n toClose++;\n }\n });\n while (toClose--) {\n this.endMarkedContent();\n }\n }\n if (!options) {\n this.page.markings.push({\n tag\n });\n this.addContent(`/${tag} BMC`);\n return this;\n }\n this.page.markings.push({\n tag,\n options\n });\n const dictionary = {};\n if (typeof options.mcid !== 'undefined') {\n dictionary.MCID = options.mcid;\n }\n if (tag === 'Artifact') {\n if (typeof options.type === 'string') {\n dictionary.Type = options.type;\n }\n if (Array.isArray(options.bbox)) {\n dictionary.BBox = [options.bbox[0], this.page.height - options.bbox[3], options.bbox[2], this.page.height - options.bbox[1]];\n }\n if (Array.isArray(options.attached) && options.attached.every(val => typeof val === 'string')) {\n dictionary.Attached = options.attached;\n }\n }\n if (tag === 'Span') {\n if (options.lang) {\n dictionary.Lang = new String(options.lang);\n }\n if (options.alt) {\n dictionary.Alt = new String(options.alt);\n }\n if (options.expanded) {\n dictionary.E = new String(options.expanded);\n }\n if (options.actual) {\n dictionary.ActualText = new String(options.actual);\n }\n }\n this.addContent(`/${tag} ${PDFObject$1.convert(dictionary)} BDC`);\n return this;\n },\n markStructureContent(tag, options) {\n if (options === void 0) {\n options = {};\n }\n const pageStructParents = this.getStructParentTree().get(this.page.structParentTreeKey);\n const mcid = pageStructParents.length;\n pageStructParents.push(null);\n this.markContent(tag, {\n ...options,\n mcid\n });\n const structContent = new PDFStructureContent(this.page.dictionary, mcid);\n this.page.markings.slice(-1)[0].structContent = structContent;\n return structContent;\n },\n endMarkedContent() {\n this.page.markings.pop();\n this.addContent('EMC');\n return this;\n },\n struct(type, options, children) {\n if (options === void 0) {\n options = {};\n }\n if (children === void 0) {\n children = null;\n }\n return new PDFStructureElement(this, type, options, children);\n },\n addStructure(structElem) {\n const structTreeRoot = this.getStructTreeRoot();\n structElem.setParent(structTreeRoot);\n structElem.setAttached();\n this.structChildren.push(structElem);\n if (!structTreeRoot.data.K) {\n structTreeRoot.data.K = [];\n }\n structTreeRoot.data.K.push(structElem.dictionary);\n return this;\n },\n initPageMarkings(pageMarkings) {\n pageMarkings.forEach(marking => {\n if (marking.structContent) {\n const structContent = marking.structContent;\n const newStructContent = this.markStructureContent(marking.tag, marking.options);\n structContent.push(newStructContent);\n this.page.markings.slice(-1)[0].structContent = structContent;\n } else {\n this.markContent(marking.tag, marking.options);\n }\n });\n },\n endPageMarkings(page) {\n const pageMarkings = page.markings;\n pageMarkings.forEach(() => page.write('EMC'));\n page.markings = [];\n return pageMarkings;\n },\n getMarkInfoDictionary() {\n if (!this._root.data.MarkInfo) {\n this._root.data.MarkInfo = this.ref({});\n }\n return this._root.data.MarkInfo;\n },\n getStructTreeRoot() {\n if (!this._root.data.StructTreeRoot) {\n this._root.data.StructTreeRoot = this.ref({\n Type: 'StructTreeRoot',\n ParentTree: new PDFNumberTree(),\n ParentTreeNextKey: 0\n });\n }\n return this._root.data.StructTreeRoot;\n },\n getStructParentTree() {\n return this.getStructTreeRoot().data.ParentTree;\n },\n createStructParentTreeNextKey() {\n // initialise the MarkInfo dictionary\n this.getMarkInfoDictionary();\n const structTreeRoot = this.getStructTreeRoot();\n const key = structTreeRoot.data.ParentTreeNextKey++;\n structTreeRoot.data.ParentTree.add(key, []);\n return key;\n },\n endMarkings() {\n const structTreeRoot = this._root.data.StructTreeRoot;\n if (structTreeRoot) {\n structTreeRoot.end();\n this.structChildren.forEach(structElem => structElem.end());\n }\n if (this._root.data.MarkInfo) {\n this._root.data.MarkInfo.end();\n }\n }\n};\n\nconst FIELD_FLAGS = {\n readOnly: 1,\n required: 2,\n noExport: 4,\n multiline: 0x1000,\n password: 0x2000,\n toggleToOffButton: 0x4000,\n radioButton: 0x8000,\n pushButton: 0x10000,\n combo: 0x20000,\n edit: 0x40000,\n sort: 0x80000,\n multiSelect: 0x200000,\n noSpell: 0x400000\n};\nconst FIELD_JUSTIFY = {\n left: 0,\n center: 1,\n right: 2\n};\nconst VALUE_MAP = {\n value: 'V',\n defaultValue: 'DV'\n};\nconst FORMAT_SPECIAL = {\n zip: '0',\n zipPlus4: '1',\n zip4: '1',\n phone: '2',\n ssn: '3'\n};\nconst FORMAT_DEFAULT = {\n number: {\n nDec: 0,\n sepComma: false,\n negStyle: 'MinusBlack',\n currency: '',\n currencyPrepend: true\n },\n percent: {\n nDec: 0,\n sepComma: false\n }\n};\nvar AcroFormMixin = {\n /**\n * Must call if adding AcroForms to a document. Must also call font() before\n * this method to set the default font.\n */\n initForm() {\n if (!this._font) {\n throw new Error('Must set a font before calling initForm method');\n }\n this._acroform = {\n fonts: {},\n defaultFont: this._font.name\n };\n this._acroform.fonts[this._font.id] = this._font.ref();\n let data = {\n Fields: [],\n NeedAppearances: true,\n DA: new String(`/${this._font.id} 0 Tf 0 g`),\n DR: {\n Font: {}\n }\n };\n data.DR.Font[this._font.id] = this._font.ref();\n const AcroForm = this.ref(data);\n this._root.data.AcroForm = AcroForm;\n return this;\n },\n /**\n * Called automatically by document.js\n */\n endAcroForm() {\n if (this._root.data.AcroForm) {\n if (!Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont) {\n throw new Error('No fonts specified for PDF form');\n }\n let fontDict = this._root.data.AcroForm.data.DR.Font;\n Object.keys(this._acroform.fonts).forEach(name => {\n fontDict[name] = this._acroform.fonts[name];\n });\n this._root.data.AcroForm.data.Fields.forEach(fieldRef => {\n this._endChild(fieldRef);\n });\n this._root.data.AcroForm.end();\n }\n return this;\n },\n _endChild(ref) {\n if (Array.isArray(ref.data.Kids)) {\n ref.data.Kids.forEach(childRef => {\n this._endChild(childRef);\n });\n ref.end();\n }\n return this;\n },\n /**\n * Creates and adds a form field to the document. Form fields are intermediate\n * nodes in a PDF form that are used to specify form name heirarchy and form\n * value defaults.\n * @param {string} name - field name (T attribute in field dictionary)\n * @param {object} options - other attributes to include in field dictionary\n */\n formField(name, options) {\n if (options === void 0) {\n options = {};\n }\n let fieldDict = this._fieldDict(name, null, options);\n let fieldRef = this.ref(fieldDict);\n this._addToParent(fieldRef);\n return fieldRef;\n },\n /**\n * Creates and adds a Form Annotation to the document. Form annotations are\n * called Widget annotations internally within a PDF file.\n * @param {string} name - form field name (T attribute of widget annotation\n * dictionary)\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {object} options\n */\n formAnnotation(name, type, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n let fieldDict = this._fieldDict(name, type, options);\n fieldDict.Subtype = 'Widget';\n if (fieldDict.F === undefined) {\n fieldDict.F = 4; // print the annotation\n }\n\n // Add Field annot to page, and get it's ref\n this.annotate(x, y, w, h, fieldDict);\n let annotRef = this.page.annotations[this.page.annotations.length - 1];\n return this._addToParent(annotRef);\n },\n formText(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'text', x, y, w, h, options);\n },\n formPushButton(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'pushButton', x, y, w, h, options);\n },\n formCombo(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'combo', x, y, w, h, options);\n },\n formList(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'list', x, y, w, h, options);\n },\n formRadioButton(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'radioButton', x, y, w, h, options);\n },\n formCheckbox(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n return this.formAnnotation(name, 'checkbox', x, y, w, h, options);\n },\n _addToParent(fieldRef) {\n let parent = fieldRef.data.Parent;\n if (parent) {\n if (!parent.data.Kids) {\n parent.data.Kids = [];\n }\n parent.data.Kids.push(fieldRef);\n } else {\n this._root.data.AcroForm.data.Fields.push(fieldRef);\n }\n return this;\n },\n _fieldDict(name, type, options) {\n if (options === void 0) {\n options = {};\n }\n if (!this._acroform) {\n throw new Error('Call document.initForms() method before adding form elements to document');\n }\n let opts = Object.assign({}, options);\n if (type !== null) {\n opts = this._resolveType(type, options);\n }\n opts = this._resolveFlags(opts);\n opts = this._resolveJustify(opts);\n opts = this._resolveFont(opts);\n opts = this._resolveStrings(opts);\n opts = this._resolveColors(opts);\n opts = this._resolveFormat(opts);\n opts.T = new String(name);\n if (opts.parent) {\n opts.Parent = opts.parent;\n delete opts.parent;\n }\n return opts;\n },\n _resolveType(type, opts) {\n if (type === 'text') {\n opts.FT = 'Tx';\n } else if (type === 'pushButton') {\n opts.FT = 'Btn';\n opts.pushButton = true;\n } else if (type === 'radioButton') {\n opts.FT = 'Btn';\n opts.radioButton = true;\n } else if (type === 'checkbox') {\n opts.FT = 'Btn';\n } else if (type === 'combo') {\n opts.FT = 'Ch';\n opts.combo = true;\n } else if (type === 'list') {\n opts.FT = 'Ch';\n } else {\n throw new Error(`Invalid form annotation type '${type}'`);\n }\n return opts;\n },\n _resolveFormat(opts) {\n const f = opts.format;\n if (f && f.type) {\n let fnKeystroke;\n let fnFormat;\n let params = '';\n if (FORMAT_SPECIAL[f.type] !== undefined) {\n fnKeystroke = `AFSpecial_Keystroke`;\n fnFormat = `AFSpecial_Format`;\n params = FORMAT_SPECIAL[f.type];\n } else {\n let format = f.type.charAt(0).toUpperCase() + f.type.slice(1);\n fnKeystroke = `AF${format}_Keystroke`;\n fnFormat = `AF${format}_Format`;\n if (f.type === 'date') {\n fnKeystroke += 'Ex';\n params = String(f.param);\n } else if (f.type === 'time') {\n params = String(f.param);\n } else if (f.type === 'number') {\n let p = Object.assign({}, FORMAT_DEFAULT.number, f);\n params = String([String(p.nDec), p.sepComma ? '0' : '1', '\"' + p.negStyle + '\"', 'null', '\"' + p.currency + '\"', String(p.currencyPrepend)].join(','));\n } else if (f.type === 'percent') {\n let p = Object.assign({}, FORMAT_DEFAULT.percent, f);\n params = String([String(p.nDec), p.sepComma ? '0' : '1'].join(','));\n }\n }\n opts.AA = opts.AA ? opts.AA : {};\n opts.AA.K = {\n S: 'JavaScript',\n JS: new String(`${fnKeystroke}(${params});`)\n };\n opts.AA.F = {\n S: 'JavaScript',\n JS: new String(`${fnFormat}(${params});`)\n };\n }\n delete opts.format;\n return opts;\n },\n _resolveColors(opts) {\n let color = this._normalizeColor(opts.backgroundColor);\n if (color) {\n if (!opts.MK) {\n opts.MK = {};\n }\n opts.MK.BG = color;\n }\n color = this._normalizeColor(opts.borderColor);\n if (color) {\n if (!opts.MK) {\n opts.MK = {};\n }\n opts.MK.BC = color;\n }\n delete opts.backgroundColor;\n delete opts.borderColor;\n return opts;\n },\n _resolveFlags(options) {\n let result = 0;\n Object.keys(options).forEach(key => {\n if (FIELD_FLAGS[key]) {\n result |= FIELD_FLAGS[key];\n delete options[key];\n }\n });\n if (result !== 0) {\n options.Ff = options.Ff ? options.Ff : 0;\n options.Ff |= result;\n }\n return options;\n },\n _resolveJustify(options) {\n let result = 0;\n if (options.align !== undefined) {\n if (typeof FIELD_JUSTIFY[options.align] === 'number') {\n result = FIELD_JUSTIFY[options.align];\n }\n delete options.align;\n }\n if (result !== 0) {\n options.Q = result; // default\n }\n return options;\n },\n _resolveFont(options) {\n // add current font to document-level AcroForm dict if necessary\n if (this._acroform.fonts[this._font.id] === null) {\n this._acroform.fonts[this._font.id] = this._font.ref();\n }\n\n // add current font to field's resource dict (RD) if not the default acroform font\n if (this._acroform.defaultFont !== this._font.name) {\n options.DR = {\n Font: {}\n };\n\n // Get the fontSize option. If not set use auto sizing\n const fontSize = options.fontSize || 0;\n options.DR.Font[this._font.id] = this._font.ref();\n options.DA = new String(`/${this._font.id} ${fontSize} Tf 0 g`);\n }\n return options;\n },\n _resolveStrings(options) {\n let select = [];\n function appendChoices(a) {\n if (Array.isArray(a)) {\n for (let idx = 0; idx < a.length; idx++) {\n if (typeof a[idx] === 'string') {\n select.push(new String(a[idx]));\n } else {\n select.push(a[idx]);\n }\n }\n }\n }\n appendChoices(options.Opt);\n if (options.select) {\n appendChoices(options.select);\n delete options.select;\n }\n if (select.length) {\n options.Opt = select;\n }\n Object.keys(VALUE_MAP).forEach(key => {\n if (options[key] !== undefined) {\n options[VALUE_MAP[key]] = options[key];\n delete options[key];\n }\n });\n ['V', 'DV'].forEach(key => {\n if (typeof options[key] === 'string') {\n options[key] = new String(options[key]);\n }\n });\n if (options.MK && options.MK.CA) {\n options.MK.CA = new String(options.MK.CA);\n }\n if (options.label) {\n options.MK = options.MK ? options.MK : {};\n options.MK.CA = new String(options.label);\n delete options.label;\n }\n return options;\n }\n};\n\nvar AttachmentsMixin = {\n /**\n * Embed contents of `src` in PDF\n * @param {Buffer | ArrayBuffer | string} src input Buffer, ArrayBuffer, base64 encoded string or path to file\n * @param {object} options\n * * options.name: filename to be shown in PDF, will use `src` if none set\n * * options.type: filetype to be shown in PDF\n * * options.description: description to be shown in PDF\n * * options.hidden: if true, do not add attachment to EmbeddedFiles dictionary. Useful for file attachment annotations\n * * options.creationDate: override creation date\n * * options.modifiedDate: override modified date\n * @returns filespec reference\n */\n file(src, options) {\n if (options === void 0) {\n options = {};\n }\n options.name = options.name || src;\n const refBody = {\n Type: 'EmbeddedFile',\n Params: {}\n };\n let data;\n if (!src) {\n throw new Error('No src specified');\n }\n if (Buffer$2.isBuffer(src)) {\n data = src;\n } else if (src instanceof ArrayBuffer) {\n data = Buffer$2.from(new Uint8Array(src));\n } else {\n let match;\n if (match = /^data:(.*);base64,(.*)$/.exec(src)) {\n if (match[1]) {\n refBody.Subtype = match[1].replace('/', '#2F');\n }\n data = Buffer$2.from(match[2], 'base64');\n } else {\n throw new Error(`Could not find file ${src}`);\n }\n }\n\n // override creation date and modified date\n if (options.creationDate instanceof Date) {\n refBody.Params.CreationDate = options.creationDate;\n }\n if (options.modifiedDate instanceof Date) {\n refBody.Params.ModDate = options.modifiedDate;\n }\n // add optional subtype\n if (options.type) {\n refBody.Subtype = options.type.replace('/', '#2F');\n }\n\n // add checksum and size information\n const checksum = MD5(CryptoJS.lib.WordArray.create(new Uint8Array(data)));\n refBody.Params.CheckSum = new String(checksum);\n refBody.Params.Size = data.byteLength;\n\n // save some space when embedding the same file again\n // if a file with the same name and metadata exists, reuse its reference\n let ref;\n if (!this._fileRegistry) this._fileRegistry = {};\n let file = this._fileRegistry[options.name];\n if (file && isEqual(refBody, file)) {\n ref = file.ref;\n } else {\n ref = this.ref(refBody);\n ref.end(data);\n this._fileRegistry[options.name] = {\n ...refBody,\n ref\n };\n }\n // add filespec for embedded file\n const fileSpecBody = {\n Type: 'Filespec',\n F: new String(options.name),\n EF: {\n F: ref\n },\n UF: new String(options.name)\n };\n if (options.description) {\n fileSpecBody.Desc = new String(options.description);\n }\n const filespec = this.ref(fileSpecBody);\n filespec.end();\n if (!options.hidden) {\n this.addNamedEmbeddedFile(options.name, filespec);\n }\n return filespec;\n }\n};\n\n/** check two embedded file metadata objects for equality */\nfunction isEqual(a, b) {\n return a.Subtype === b.Subtype && a.Params.CheckSum.toString() === b.Params.CheckSum.toString() && a.Params.Size === b.Params.Size && a.Params.CreationDate === b.Params.CreationDate && a.Params.ModDate === b.Params.ModDate;\n}\n\nclass PDFMetadata {\n constructor() {\n this._metadata = `\n \n \n \n `;\n }\n _closeTags() {\n this._metadata = this._metadata.concat(`\n \n \n \n `);\n }\n append(xml, newline) {\n if (newline === void 0) {\n newline = true;\n }\n this._metadata = this._metadata.concat(xml);\n if (newline) this._metadata = this._metadata.concat('\\n');\n }\n getXML() {\n return this._metadata;\n }\n getLength() {\n return this._metadata.length;\n }\n end() {\n this._closeTags();\n this._metadata = this._metadata.trim();\n }\n}\n\nvar MetadataMixin = {\n initMetadata() {\n this.metadata = new PDFMetadata();\n },\n appendXML(xml, newline) {\n if (newline === void 0) {\n newline = true;\n }\n this.metadata.append(xml, newline);\n },\n _addInfo() {\n this.appendXML(`\n \n ${this.info.CreationDate.toISOString().split('.')[0] + 'Z'}\n ${this.info.Creator}\n \n `);\n if (this.info.Title || this.info.Author || this.info.Subject) {\n this.appendXML(`\n \n `);\n if (this.info.Title) {\n this.appendXML(`\n \n \n ${this.info.Title}\n \n \n `);\n }\n if (this.info.Author) {\n this.appendXML(`\n \n \n ${this.info.Author}\n \n \n `);\n }\n if (this.info.Subject) {\n this.appendXML(`\n \n \n ${this.info.Subject}\n \n \n `);\n }\n this.appendXML(`\n \n `);\n }\n this.appendXML(`\n \n ${this.info.Creator}`, false);\n if (this.info.Keywords) {\n this.appendXML(`\n ${this.info.Keywords}`, false);\n }\n this.appendXML(`\n \n `);\n },\n endMetadata() {\n this._addInfo();\n this.metadata.end();\n\n /*\n Metadata was introduced in PDF 1.4, so adding it to 1.3\n will likely only take up more space.\n */\n if (this.version != 1.3) {\n this.metadataRef = this.ref({\n length: this.metadata.getLength(),\n Type: 'Metadata',\n Subtype: 'XML'\n });\n this.metadataRef.compress = false;\n this.metadataRef.write(Buffer$2.from(this.metadata.getXML(), 'utf-8'));\n this.metadataRef.end();\n this._root.data.Metadata = this.metadataRef;\n }\n }\n};\n\nconst capitalize = v => v[0].toUpperCase() + v.slice(1);\n\nclass PDFDocument extends stream.Readable {\n constructor(options) {\n if (options === void 0) {\n options = {};\n }\n super();\n this.options = options;\n\n // PDF version\n switch (options.pdfVersion) {\n case '1.4':\n this.version = 1.4;\n break;\n case '1.5':\n this.version = 1.5;\n break;\n case '1.6':\n this.version = 1.6;\n break;\n case '1.7':\n case '1.7ext3':\n this.version = 1.7;\n break;\n default:\n this.version = 1.3;\n break;\n }\n\n // Whether streams should be compressed\n this.compress = this.options.compress != null ? this.options.compress : true;\n this._pageBuffer = [];\n this._pageBufferStart = 0;\n\n // The PDF object store\n this._offsets = [];\n this._waiting = 0;\n this._ended = false;\n this._offset = 0;\n const Pages = this.ref({\n Type: 'Pages',\n Count: 0,\n Kids: []\n });\n const Names = this.ref({\n Dests: new PDFNameTree()\n });\n this._root = this.ref({\n Type: 'Catalog',\n Pages,\n Names\n });\n if (this.options.lang) {\n this._root.data.Lang = new String(this.options.lang);\n }\n if (this.options.pageLayout) {\n this._root.data.PageLayout = capitalize(this.options.pageLayout);\n }\n if (this.options.pageMode) {\n this._root.data.PageMode = capitalize(this.options.pageMode);\n }\n\n // The current page\n this.page = null;\n\n // Initialize mixins\n this.initColor();\n this.initVector();\n this.initFonts();\n this.initText();\n this.initImages();\n this.initOutline();\n // this.initMarkings(options)\n\n // Initialize the metadata\n this.info = {\n Producer: 'PDFKit',\n Creator: 'PDFKit',\n CreationDate: new Date()\n };\n if (this.options.info) {\n for (let key in this.options.info) {\n const val = this.options.info[key];\n this.info[key] = val;\n }\n }\n if (this.options.displayTitle) {\n this._root.data.ViewerPreferences = this.ref({\n DisplayDocTitle: true\n });\n }\n\n // Generate file ID\n this._id = PDFSecurity.generateFileID(this.info);\n\n // Initialize security settings\n // this._security = PDFSecurity.create(this, options);\n\n // Write the header PDF version\n this._write(`%PDF-${this.version}`);\n\n // 4 binary chars, as recommended by the spec\n this._write('%\\xFF\\xFF\\xFF\\xFF');\n\n // Add the first page\n if (this.options.autoFirstPage !== false) {\n this.addPage();\n }\n }\n addPage(options) {\n // end the current page if needed\n if (options == null) {\n ({\n options\n } = this);\n }\n\n // end the current page if needed\n if (!this.options.bufferPages) {\n this.flushPages();\n }\n\n // create a page object\n this.page = new PDFPage(this, options);\n this._pageBuffer.push(this.page);\n\n // add the page to the object store\n const pages = this._root.data.Pages.data;\n pages.Kids.push(this.page.dictionary);\n pages.Count++;\n\n // flip PDF coordinate system so that the origin is in\n // the top left rather than the bottom left\n this._ctm = [1, 0, 0, 1, 0, 0];\n this.transform(1, 0, 0, -1, 0, this.page.height);\n\n // this.emit('pageAdded');\n\n return this;\n }\n flushPages() {\n // this local variable exists so we're future-proof against\n // reentrant calls to flushPages.\n const pages = this._pageBuffer;\n this._pageBuffer = [];\n this._pageBufferStart += pages.length;\n for (let page of Array.from(pages)) {\n // this.endPageMarkings(page);\n page.end();\n }\n }\n addNamedDestination(name) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (args.length === 0) {\n args = ['XYZ', null, null, null];\n }\n if (args[0] === 'XYZ' && args[2] !== null) {\n args[2] = this.page.height - args[2];\n }\n args.unshift(this.page.dictionary);\n this._root.data.Names.data.Dests.add(name, args);\n }\n addNamedEmbeddedFile(name, ref) {\n if (!this._root.data.Names.data.EmbeddedFiles) {\n // disabling /Limits for this tree fixes attachments not showing in Adobe Reader\n this._root.data.Names.data.EmbeddedFiles = new PDFNameTree({\n limits: false\n });\n }\n\n // add filespec to EmbeddedFiles\n this._root.data.Names.data.EmbeddedFiles.add(name, ref);\n }\n addNamedJavaScript(name, js) {\n if (!this._root.data.Names.data.JavaScript) {\n this._root.data.Names.data.JavaScript = new PDFNameTree();\n }\n let data = {\n JS: new String(js),\n S: 'JavaScript'\n };\n this._root.data.Names.data.JavaScript.add(name, data);\n }\n ref(data) {\n const ref = new PDFReference(this, this._offsets.length + 1, data);\n this._offsets.push(null); // placeholder for this object's offset once it is finalized\n this._waiting++;\n return ref;\n }\n _read() {\n // do nothing, but this method is required by node\n }\n _write(data) {\n if (!Buffer$2.isBuffer(data)) {\n data = Buffer$2.from(data + '\\n', 'binary');\n }\n this.push(data);\n return this._offset += data.length;\n }\n addContent(data) {\n this.page.write(data);\n return this;\n }\n _refEnd(ref) {\n this._offsets[ref.id - 1] = ref.offset;\n if (--this._waiting === 0 && this._ended) {\n this._finalize();\n return this._ended = false;\n }\n }\n end() {\n this.flushPages();\n this._info = this.ref();\n for (let key in this.info) {\n let val = this.info[key];\n if (typeof val === 'string') {\n val = new String(val);\n }\n let entry = this.ref(val);\n entry.end();\n this._info.data[key] = entry;\n }\n this._info.end();\n for (let name in this._fontFamilies) {\n const font = this._fontFamilies[name];\n font.finalize();\n }\n this.endOutline();\n // this.endMarkings();\n\n this._root.end();\n this._root.data.Pages.end();\n this._root.data.Names.end();\n this.endAcroForm();\n if (this._root.data.ViewerPreferences) {\n this._root.data.ViewerPreferences.end();\n }\n\n // if (this._security) {\n // this._security.end();\n // }\n\n if (this._waiting === 0) {\n return this._finalize();\n }\n this._ended = true;\n }\n _finalize() {\n // generate xref\n const xRefOffset = this._offset;\n this._write('xref');\n this._write(`0 ${this._offsets.length + 1}`);\n this._write('0000000000 65535 f ');\n for (let offset of Array.from(this._offsets)) {\n offset = `0000000000${offset}`.slice(-10);\n this._write(offset + ' 00000 n ');\n }\n\n // trailer\n const trailer = {\n Size: this._offsets.length + 1,\n Root: this._root,\n Info: this._info,\n ID: [this._id, this._id]\n };\n\n // if (this._security) {\n // trailer.Encrypt = this._security.dictionary;\n // }\n\n this._write('trailer');\n this._write(PDFObject$1.convert(trailer));\n this._write('startxref');\n this._write(`${xRefOffset}`);\n this._write('%%EOF');\n\n // end the stream\n return this.push(null);\n }\n toString() {\n return '[object PDFDocument]';\n }\n initColor() {}\n initVector() {}\n initFonts() {}\n initText() {}\n initImages() {}\n initOutline() {}\n\n /**\n * @param {number} m11\n * @param {number} m12\n * @param {number} m21\n * @param {number} m22\n * @param {number} dx\n * @param {number} dy\n */\n // eslint-disable-next-line no-unused-vars\n transform(m11, m12, m21, m22, dx, dy) {}\n endOutline() {}\n endAcroForm() {}\n}\nconst mixin = methods => {\n Object.assign(PDFDocument.prototype, methods);\n};\n\n// Load mixins\nmixin(MetadataMixin);\nmixin(ColorMixin);\nmixin(VectorMixin);\nmixin(FontsMixin);\nmixin(TextMixin);\nmixin(ImagesMixin);\nmixin(AnnotationsMixin);\nmixin(OutlineMixin);\nmixin(MarkingsMixin);\nmixin(AcroFormMixin);\nmixin(AttachmentsMixin);\n\nexport { EmbeddedFont, PDFFont, StandardFont, PDFDocument as default };\n","import { compose, castArray } from '@react-pdf/fns';\nimport parse$1 from 'postcss-value-parser/lib/parse.js';\nimport parseUnit from 'postcss-value-parser/lib/unit.js';\nimport hlsToHex from 'hsl-to-hex';\nimport colorString from 'color-string';\nimport matchMedia from 'media-engine';\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/flex#values\n\n// TODO: change flex defaults to [0, 1, 'auto'] as in spec in next major release\nconst flexDefaults = [1, 1, 0];\n/**\n * @type {(number | 'auto')[]}\n */\nconst flexAuto = [1, 1, 'auto'];\nconst expandFlex = (key, value) => {\n /**\n * @type {(number | 'auto')[]}\n */\n let defaults = flexDefaults;\n let matches = [];\n if (value === 'auto') {\n defaults = flexAuto;\n } else {\n matches = `${value}`.split(' ');\n }\n const flexGrow = matches[0] || defaults[0];\n const flexShrink = matches[1] || defaults[1];\n const flexBasis = matches[2] || defaults[2];\n return {\n flexGrow,\n flexShrink,\n flexBasis\n };\n};\n\n/* eslint-disable no-plusplus */\n// This file is ran directly with Node - needs to have .js extension\n// eslint-disable-next-line import/extensions\nconst BOX_MODEL_UNITS = 'px,in,mm,cm,pt,%,vw,vh';\nconst logError = (style, value) => {\n console.error(`\n @react-pdf/stylesheet parsing error:\n\n ${style}: ${value},\n ${' '.repeat(style.length + 2)}^\n Unsupported ${style} value format\n `);\n};\n\n/**\n * @param {Object} options\n * @param {Function} [options.expandsTo]\n * @param {number} [options.maxValues]\n * @param {boolean} [options.autoSupported]\n */\nconst expandBoxModel = function (_temp) {\n let {\n expandsTo,\n maxValues = 1,\n autoSupported = false\n } = _temp === void 0 ? {} : _temp;\n return (model, value) => {\n const nodes = parse$1(`${value}`);\n const parts = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n // value contains `calc`, `url` or other css function\n // `,`, `/` or strings that unsupported by margin and padding\n if (node.type === 'function' || node.type === 'string' || node.type === 'div') {\n logError(model, value);\n return {};\n }\n if (node.type === 'word') {\n if (node.value === 'auto' && autoSupported) {\n parts.push(node.value);\n } else {\n const result = parseUnit(node.value);\n\n // when unit isn't specified this condition is true\n if (result && BOX_MODEL_UNITS.includes(result.unit)) {\n parts.push(node.value);\n } else {\n logError(model, value);\n return {};\n }\n }\n }\n }\n\n // checks that we have enough parsed values\n if (parts.length > maxValues) {\n logError(model, value);\n return {};\n }\n const first = parts[0];\n if (expandsTo) {\n const second = parts[1] || parts[0];\n const third = parts[2] || parts[0];\n const fourth = parts[3] || parts[1] || parts[0];\n return expandsTo({\n first,\n second,\n third,\n fourth\n });\n }\n return {\n [model]: first\n };\n };\n};\n\nconst processMargin = expandBoxModel({\n expandsTo: _ref => {\n let {\n first,\n second,\n third,\n fourth\n } = _ref;\n return {\n marginTop: first,\n marginRight: second,\n marginBottom: third,\n marginLeft: fourth\n };\n },\n maxValues: 4,\n autoSupported: true\n});\nconst processMarginVertical = expandBoxModel({\n expandsTo: _ref2 => {\n let {\n first,\n second\n } = _ref2;\n return {\n marginTop: first,\n marginBottom: second\n };\n },\n maxValues: 2,\n autoSupported: true\n});\nconst processMarginHorizontal = expandBoxModel({\n expandsTo: _ref3 => {\n let {\n first,\n second\n } = _ref3;\n return {\n marginRight: first,\n marginLeft: second\n };\n },\n maxValues: 2,\n autoSupported: true\n});\nconst processMarginSingle = expandBoxModel({\n autoSupported: true\n});\n\nconst BORDER_SHORTHAND_REGEX = /(-?\\d+(\\.\\d+)?(px|in|mm|cm|pt|vw|vh|px)?)\\s(\\S+)\\s(.+)/;\nconst matchBorderShorthand = value => value.match(BORDER_SHORTHAND_REGEX) || [];\nconst expandBorders = (key, value) => {\n const match = matchBorderShorthand(`${value}`);\n if (match) {\n const color = match[5] || value;\n const style = match[4] || value;\n const width = match[1] || value;\n if (key.match(/(Top|Right|Bottom|Left)$/)) {\n return {\n [`${key}Color`]: color,\n [`${key}Style`]: style,\n [`${key}Width`]: width\n };\n }\n if (key.match(/Color$/)) {\n return {\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color\n };\n }\n if (key.match(/Style$/)) {\n return {\n borderTopStyle: style,\n borderRightStyle: style,\n borderBottomStyle: style,\n borderLeftStyle: style\n };\n }\n if (key.match(/Width$/)) {\n return {\n borderTopWidth: width,\n borderRightWidth: width,\n borderBottomWidth: width,\n borderLeftWidth: width\n };\n }\n if (key.match(/Radius$/)) {\n return {\n borderTopLeftRadius: value,\n borderTopRightRadius: value,\n borderBottomRightRadius: value,\n borderBottomLeftRadius: value\n };\n }\n return {\n borderTopColor: color,\n borderTopStyle: style,\n borderTopWidth: width,\n borderRightColor: color,\n borderRightStyle: style,\n borderRightWidth: width,\n borderBottomColor: color,\n borderBottomStyle: style,\n borderBottomWidth: width,\n borderLeftColor: color,\n borderLeftStyle: style,\n borderLeftWidth: width\n };\n }\n return value;\n};\n\nconst processPadding = expandBoxModel({\n expandsTo: _ref => {\n let {\n first,\n second,\n third,\n fourth\n } = _ref;\n return {\n paddingTop: first,\n paddingRight: second,\n paddingBottom: third,\n paddingLeft: fourth\n };\n },\n maxValues: 4\n});\nconst processPaddingVertical = expandBoxModel({\n expandsTo: _ref2 => {\n let {\n first,\n second\n } = _ref2;\n return {\n paddingTop: first,\n paddingBottom: second\n };\n },\n maxValues: 2\n});\nconst processPaddingHorizontal = expandBoxModel({\n expandsTo: _ref3 => {\n let {\n first,\n second\n } = _ref3;\n return {\n paddingRight: first,\n paddingLeft: second\n };\n },\n maxValues: 2\n});\nconst processPaddingSingle = expandBoxModel();\n\nconst expandObjectPosition = (key, value) => {\n const match = `${value}`.split(' ');\n return {\n objectPositionX: (match === null || match === void 0 ? void 0 : match[0]) || value,\n objectPositionY: (match === null || match === void 0 ? void 0 : match[1]) || value\n };\n};\n\nconst Y_AXIS_SHORTHANDS = {\n top: true,\n bottom: true\n};\nconst sortTransformOriginPair = (a, b) => {\n if (Y_AXIS_SHORTHANDS[a]) return 1;\n if (Y_AXIS_SHORTHANDS[b]) return -1;\n return 0;\n};\nconst getTransformOriginPair = values => {\n if (!values || values.length === 0) return ['center', 'center'];\n const pair = values.length === 1 ? [values[0], 'center'] : values;\n return pair.sort(sortTransformOriginPair);\n};\n\n// Transforms shorthand transformOrigin values\nconst expandTransformOrigin = (key, value) => {\n const match = `${value}`.split(' ');\n const pair = getTransformOriginPair(match);\n return {\n transformOriginX: pair[0],\n transformOriginY: pair[1]\n };\n};\n\nconst expandGap = (key, value) => {\n const match = `${value}`.split(' ');\n return {\n rowGap: (match === null || match === void 0 ? void 0 : match[0]) || value,\n columnGap: (match === null || match === void 0 ? void 0 : match[1]) || value\n };\n};\n\nconst shorthands = {\n flex: expandFlex,\n gap: expandGap,\n margin: processMargin,\n marginHorizontal: processMarginHorizontal,\n marginVertical: processMarginVertical,\n marginTop: processMarginSingle,\n marginRight: processMarginSingle,\n marginBottom: processMarginSingle,\n marginLeft: processMarginSingle,\n padding: processPadding,\n paddingHorizontal: processPaddingHorizontal,\n paddingVertical: processPaddingVertical,\n paddingTop: processPaddingSingle,\n paddingRight: processPaddingSingle,\n paddingBottom: processPaddingSingle,\n paddingLeft: processPaddingSingle,\n border: expandBorders,\n borderTop: expandBorders,\n borderRight: expandBorders,\n borderBottom: expandBorders,\n borderLeft: expandBorders,\n borderColor: expandBorders,\n borderRadius: expandBorders,\n borderStyle: expandBorders,\n borderWidth: expandBorders,\n objectPosition: expandObjectPosition,\n transformOrigin: expandTransformOrigin\n};\n\n/**\n * Transforms style key-value\n *\n * @param {string} key style key\n * @param {string} value style value\n * @returns {string | Number} transformed style values\n */\nconst expandStyle = (key, value) => {\n return shorthands[key] ? shorthands[key](key, value) : {\n [key]: value\n };\n};\n\n/**\n * Expand the shorthand properties.\n *\n * @param {Object} style object\n * @returns {Object} expanded style object\n */\nconst expand = style => {\n if (!style) return style;\n const propsArray = Object.keys(style);\n const resolvedStyle = {};\n for (let i = 0; i < propsArray.length; i += 1) {\n const key = propsArray[i];\n const value = style[key];\n const extended = expandStyle(key, value);\n const keys = Object.keys(extended);\n for (let j = 0; j < keys.length; j += 1) {\n const propName = keys[j];\n const propValue = extended[propName];\n resolvedStyle[propName] = propValue;\n }\n }\n return resolvedStyle;\n};\n\n/**\n * Remove nil values from array\n *\n * @template T\n * @param {(T | null | undefined)[]} array\n * @returns {T[]} array without nils\n */\nconst compact = array => array.filter(Boolean);\n\n/**\n * Merges style objects array\n *\n * @param {Object[]} styles style objects array\n * @returns {Object} merged style object\n */\nconst mergeStyles = styles => styles.reduce((acc, style) => {\n const s = Array.isArray(style) ? flatten(style) : style;\n Object.keys(s).forEach(key => {\n if (s[key] !== null && s[key] !== undefined) {\n acc[key] = s[key];\n }\n });\n return acc;\n}, {});\n\n/**\n * Flattens an array of style objects, into one aggregated style object.\n *\n * @param {Object[]} styles style objects array\n * @returns {Object} flattened style object\n */\nconst flatten = compose(mergeStyles, compact, castArray);\n\n/**\n * Parses scalar value in value and unit pairs\n *\n * @param {string} value scalar value\n * @returns {Object} parsed value\n */\nconst parseValue = value => {\n const match = /^(-?\\d*\\.?\\d+)(in|mm|cm|pt|vh|vw|px)?$/g.exec(value);\n return match ? {\n value: parseFloat(match[1]),\n unit: match[2] || 'pt'\n } : {\n value,\n unit: undefined\n };\n};\n\n/**\n * Transform given scalar value\n *\n * @param {Object} container\n * @param {string} value styles value\n * @returns {Object} transformed value\n */\nconst transformUnit = (container, value) => {\n const scalar = parseValue(value);\n const dpi = 72; // Removed: container.dpi || 72\n const mmFactor = 1 / 25.4 * dpi;\n const cmFactor = 1 / 2.54 * dpi;\n switch (scalar.unit) {\n case 'in':\n return scalar.value * dpi;\n case 'mm':\n return scalar.value * mmFactor;\n case 'cm':\n return scalar.value * cmFactor;\n case 'vh':\n return scalar.value * (container.height / 100);\n case 'vw':\n return scalar.value * (container.width / 100);\n default:\n return scalar.value;\n }\n};\n\nconst isRgb = value => /rgba?/g.test(value);\nconst isHsl = value => /hsla?/g.test(value);\n\n/**\n * Transform rgb color to hexa\n *\n * @param {string} value styles value\n * @returns {Object} transformed value\n */\nconst parseRgb = value => {\n const rgb = colorString.get.rgb(value);\n return colorString.to.hex(rgb);\n};\n\n/**\n * Transform Hsl color to hexa\n *\n * @param {string} value styles value\n * @returns {Object} transformed value\n */\nconst parseHsl = value => {\n const hsl = colorString.get.hsl(value).map(Math.round);\n const hex = hlsToHex(...hsl);\n return hex.toUpperCase();\n};\n\n/**\n * Transform given color to hexa\n *\n * @param {string} value styles value\n * @returns {Object} transformed value\n */\nconst transformColor = value => {\n if (isRgb(value)) return parseRgb(value);\n if (isHsl(value)) return parseHsl(value);\n return value;\n};\n\nconst parse = transformString => {\n const transforms = transformString.trim().split(/\\) |\\)/);\n\n // Handle \"initial\", \"inherit\", \"unset\".\n if (transforms.length === 1) {\n return [[transforms[0], true]];\n }\n const parsed = [];\n for (let i = 0; i < transforms.length; i += 1) {\n const transform = transforms[i];\n if (transform) {\n const [name, rawValue] = transform.split('(');\n const splitChar = rawValue.indexOf(',') >= 0 ? ',' : ' ';\n const value = rawValue.split(splitChar).map(val => val.trim());\n parsed.push({\n operation: name,\n value\n });\n }\n }\n return parsed;\n};\nconst parseAngle = value => {\n const unitsRegexp = /(-?\\d*\\.?\\d*)(\\w*)?/i;\n const [, angle, unit] = unitsRegexp.exec(value);\n const number = Number.parseFloat(angle);\n return unit === 'rad' ? number * 180 / Math.PI : number;\n};\nconst normalizeTransformOperation = _ref => {\n let {\n operation,\n value\n } = _ref;\n switch (operation) {\n case 'scale':\n {\n const [scaleX, scaleY = scaleX] = value.map(num => Number.parseFloat(num));\n return {\n operation: 'scale',\n value: [scaleX, scaleY]\n };\n }\n case 'scaleX':\n {\n return {\n operation: 'scale',\n value: [Number.parseFloat(value), 1]\n };\n }\n case 'scaleY':\n {\n return {\n operation: 'scale',\n value: [1, Number.parseFloat(value)]\n };\n }\n case 'rotate':\n {\n return {\n operation: 'rotate',\n value: [parseAngle(value)]\n };\n }\n case 'translate':\n {\n return {\n operation: 'translate',\n value: value.map(num => Number.parseFloat(num))\n };\n }\n case 'translateX':\n {\n return {\n operation: 'translate',\n value: [Number.parseFloat(value), 0]\n };\n }\n case 'translateY':\n {\n return {\n operation: 'translate',\n value: [0, Number.parseFloat(value)]\n };\n }\n case 'skew':\n {\n return {\n operation: 'skew',\n value: value.map(parseAngle)\n };\n }\n case 'skewX':\n {\n return {\n operation: 'skew',\n value: [parseAngle(value), 0]\n };\n }\n case 'skewY':\n {\n return {\n operation: 'skew',\n value: [0, parseAngle(value)]\n };\n }\n default:\n {\n return {\n operation,\n value: value.map(num => Number.parseFloat(num))\n };\n }\n }\n};\nconst normalize = operations => {\n return operations.map(operation => normalizeTransformOperation(operation));\n};\nconst processTransform = value => {\n if (typeof value !== 'string') return value;\n return normalize(parse(value));\n};\n\nconst FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n ultralight: 200,\n extralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n demibold: 600,\n bold: 700,\n ultrabold: 800,\n extrabold: 800,\n heavy: 900,\n black: 900\n};\nconst processFontWeight = value => {\n if (!value) return FONT_WEIGHTS.normal;\n if (typeof value === 'number') return value;\n const lv = value.toLowerCase();\n if (FONT_WEIGHTS[lv]) return FONT_WEIGHTS[lv];\n return value;\n};\n\nconst matchNumber = value => typeof value === 'string' && /^-?\\d*\\.?\\d*$/.test(value);\nconst castFloat = value => {\n if (typeof value !== 'string') return value;\n if (matchNumber(value)) return parseFloat(value);\n return value;\n};\n\nconst offsetKeyword = value => {\n switch (value) {\n case 'top':\n case 'left':\n return '0%';\n case 'right':\n case 'bottom':\n return '100%';\n case 'center':\n return '50%';\n default:\n return null;\n }\n};\n\nconst transformObjectPosition = value => offsetKeyword(value) || castFloat(value);\n\nconst transformTransformOrigin = value => offsetKeyword(value) || castFloat(value);\n\nconst handlers = {\n transform: processTransform,\n fontWeight: processFontWeight,\n objectPositionX: transformObjectPosition,\n objectPositionY: transformObjectPosition,\n transformOriginX: transformTransformOrigin,\n transformOriginY: transformTransformOrigin\n};\nconst transformStyle = (key, value, container) => {\n const result = handlers[key] ? handlers[key](value) : value;\n return transformColor(transformUnit(container, castFloat(result)));\n};\n\n/**\n * @typedef {Function} Transform\n * @param {Object} style styles object\n * @returns {Object} transformed styles\n */\n\n/**\n * Transform styles values\n *\n * @param {Object} container\n * @returns {Transform} transform function\n */\nconst transform = container => style => {\n if (!style) return style;\n const propsArray = Object.keys(style);\n const resolvedStyle = {};\n for (let i = 0; i < propsArray.length; i += 1) {\n const key = propsArray[i];\n const value = style[key];\n const transformed = transformStyle(key, value, container);\n resolvedStyle[key] = transformed;\n }\n return resolvedStyle;\n};\n\n/**\n * Resolves media queries in styles object\n *\n * @param {Object} container\n * @param {Object} styles object\n */\nconst resolveMediaQueries = (container, styles) => {\n return Object.keys(styles).reduce((acc, key) => {\n if (/@media/.test(key)) {\n return {\n ...acc,\n ...matchMedia({\n [key]: styles[key]\n }, container)\n };\n }\n return {\n ...acc,\n [key]: styles[key]\n };\n }, {});\n};\n\n/**\n * Resolves styles\n *\n * @param {Object} container\n * @param {Object} style object\n * @returns {Object} resolved style object\n */\nconst resolveStyles = (container, style) => {\n const computeMediaQueries = value => resolveMediaQueries(container, value);\n return compose(transform(container), expand, computeMediaQueries, flatten)(style);\n};\n\nexport { resolveStyles as default, flatten, processTransform, transformColor };\n","function bidiFactory() {\nvar bidi = (function (exports) {\n\n // Bidi character types data, auto generated\n var DATA = {\n \"R\": \"13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73\",\n \"EN\": \"1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9\",\n \"ES\": \"17,2,6dp+1,f+1,av,16vr,mx+1,4o,2\",\n \"ET\": \"z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj\",\n \"AN\": \"16o+5,2j+9,2+1,35,ed,1ff2+9,87+u\",\n \"CS\": \"18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b\",\n \"B\": \"a,3,f+2,2v,690\",\n \"S\": \"9,2,k\",\n \"WS\": \"c,k,4f4,1vk+a,u,1j,335\",\n \"ON\": \"x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i\",\n \"BN\": \"0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1\",\n \"NSM\": \"lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n\",\n \"AL\": \"16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d\",\n \"LRO\": \"6ct\",\n \"RLO\": \"6cu\",\n \"LRE\": \"6cq\",\n \"RLE\": \"6cr\",\n \"PDF\": \"6cs\",\n \"LRI\": \"6ee\",\n \"RLI\": \"6ef\",\n \"FSI\": \"6eg\",\n \"PDI\": \"6eh\"\n };\n\n var TYPES = {};\n var TYPES_TO_NAMES = {};\n TYPES.L = 1; //L is the default\n TYPES_TO_NAMES[1] = 'L';\n Object.keys(DATA).forEach(function (type, i) {\n TYPES[type] = 1 << (i + 1);\n TYPES_TO_NAMES[TYPES[type]] = type;\n });\n Object.freeze(TYPES);\n\n var ISOLATE_INIT_TYPES = TYPES.LRI | TYPES.RLI | TYPES.FSI;\n var STRONG_TYPES = TYPES.L | TYPES.R | TYPES.AL;\n var NEUTRAL_ISOLATE_TYPES = TYPES.B | TYPES.S | TYPES.WS | TYPES.ON | TYPES.FSI | TYPES.LRI | TYPES.RLI | TYPES.PDI;\n var BN_LIKE_TYPES = TYPES.BN | TYPES.RLE | TYPES.LRE | TYPES.RLO | TYPES.LRO | TYPES.PDF;\n var TRAILING_TYPES = TYPES.S | TYPES.WS | TYPES.B | ISOLATE_INIT_TYPES | TYPES.PDI | BN_LIKE_TYPES;\n\n var map = null;\n\n function parseData () {\n if (!map) {\n //const start = performance.now()\n map = new Map();\n var loop = function ( type ) {\n if (DATA.hasOwnProperty(type)) {\n var lastCode = 0;\n DATA[type].split(',').forEach(function (range) {\n var ref = range.split('+');\n var skip = ref[0];\n var step = ref[1];\n skip = parseInt(skip, 36);\n step = step ? parseInt(step, 36) : 0;\n map.set(lastCode += skip, TYPES[type]);\n for (var i = 0; i < step; i++) {\n map.set(++lastCode, TYPES[type]);\n }\n });\n }\n };\n\n for (var type in DATA) loop( type );\n //console.log(`char types parsed in ${performance.now() - start}ms`)\n }\n }\n\n /**\n * @param {string} char\n * @return {number}\n */\n function getBidiCharType (char) {\n parseData();\n return map.get(char.codePointAt(0)) || TYPES.L\n }\n\n function getBidiCharTypeName(char) {\n return TYPES_TO_NAMES[getBidiCharType(char)]\n }\n\n // Bidi bracket pairs data, auto generated\n var data$1 = {\n \"pairs\": \"14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1\",\n \"canonical\": \"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye\"\n };\n\n /**\n * Parses an string that holds encoded codepoint mappings, e.g. for bracket pairs or\n * mirroring characters, as encoded by scripts/generateBidiData.js. Returns an object\n * holding the `map`, and optionally a `reverseMap` if `includeReverse:true`.\n * @param {string} encodedString\n * @param {boolean} includeReverse - true if you want reverseMap in the output\n * @return {{map: Map, reverseMap?: Map}}\n */\n function parseCharacterMap (encodedString, includeReverse) {\n var radix = 36;\n var lastCode = 0;\n var map = new Map();\n var reverseMap = includeReverse && new Map();\n var prevPair;\n encodedString.split(',').forEach(function visit(entry) {\n if (entry.indexOf('+') !== -1) {\n for (var i = +entry; i--;) {\n visit(prevPair);\n }\n } else {\n prevPair = entry;\n var ref = entry.split('>');\n var a = ref[0];\n var b = ref[1];\n a = String.fromCodePoint(lastCode += parseInt(a, radix));\n b = String.fromCodePoint(lastCode += parseInt(b, radix));\n map.set(a, b);\n includeReverse && reverseMap.set(b, a);\n }\n });\n return { map: map, reverseMap: reverseMap }\n }\n\n var openToClose, closeToOpen, canonical;\n\n function parse$1 () {\n if (!openToClose) {\n //const start = performance.now()\n var ref = parseCharacterMap(data$1.pairs, true);\n var map = ref.map;\n var reverseMap = ref.reverseMap;\n openToClose = map;\n closeToOpen = reverseMap;\n canonical = parseCharacterMap(data$1.canonical, false).map;\n //console.log(`brackets parsed in ${performance.now() - start}ms`)\n }\n }\n\n function openingToClosingBracket (char) {\n parse$1();\n return openToClose.get(char) || null\n }\n\n function closingToOpeningBracket (char) {\n parse$1();\n return closeToOpen.get(char) || null\n }\n\n function getCanonicalBracket (char) {\n parse$1();\n return canonical.get(char) || null\n }\n\n // Local type aliases\n var TYPE_L = TYPES.L;\n var TYPE_R = TYPES.R;\n var TYPE_EN = TYPES.EN;\n var TYPE_ES = TYPES.ES;\n var TYPE_ET = TYPES.ET;\n var TYPE_AN = TYPES.AN;\n var TYPE_CS = TYPES.CS;\n var TYPE_B = TYPES.B;\n var TYPE_S = TYPES.S;\n var TYPE_ON = TYPES.ON;\n var TYPE_BN = TYPES.BN;\n var TYPE_NSM = TYPES.NSM;\n var TYPE_AL = TYPES.AL;\n var TYPE_LRO = TYPES.LRO;\n var TYPE_RLO = TYPES.RLO;\n var TYPE_LRE = TYPES.LRE;\n var TYPE_RLE = TYPES.RLE;\n var TYPE_PDF = TYPES.PDF;\n var TYPE_LRI = TYPES.LRI;\n var TYPE_RLI = TYPES.RLI;\n var TYPE_FSI = TYPES.FSI;\n var TYPE_PDI = TYPES.PDI;\n\n /**\n * @typedef {object} GetEmbeddingLevelsResult\n * @property {{start, end, level}[]} paragraphs\n * @property {Uint8Array} levels\n */\n\n /**\n * This function applies the Bidirectional Algorithm to a string, returning the resolved embedding levels\n * in a single Uint8Array plus a list of objects holding each paragraph's start and end indices and resolved\n * base embedding level.\n *\n * @param {string} string - The input string\n * @param {\"ltr\"|\"rtl\"|\"auto\"} [baseDirection] - Use \"ltr\" or \"rtl\" to force a base paragraph direction,\n * otherwise a direction will be chosen automatically from each paragraph's contents.\n * @return {GetEmbeddingLevelsResult}\n */\n function getEmbeddingLevels (string, baseDirection) {\n var MAX_DEPTH = 125;\n\n // Start by mapping all characters to their unicode type, as a bitmask integer\n var charTypes = new Uint32Array(string.length);\n for (var i = 0; i < string.length; i++) {\n charTypes[i] = getBidiCharType(string[i]);\n }\n\n var charTypeCounts = new Map(); //will be cleared at start of each paragraph\n function changeCharType(i, type) {\n var oldType = charTypes[i];\n charTypes[i] = type;\n charTypeCounts.set(oldType, charTypeCounts.get(oldType) - 1);\n if (oldType & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) - 1);\n }\n charTypeCounts.set(type, (charTypeCounts.get(type) || 0) + 1);\n if (type & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);\n }\n }\n\n var embedLevels = new Uint8Array(string.length);\n var isolationPairs = new Map(); //init->pdi and pdi->init\n\n // === 3.3.1 The Paragraph Level ===\n // 3.3.1 P1: Split the text into paragraphs\n var paragraphs = []; // [{start, end, level}, ...]\n var paragraph = null;\n for (var i$1 = 0; i$1 < string.length; i$1++) {\n if (!paragraph) {\n paragraphs.push(paragraph = {\n start: i$1,\n end: string.length - 1,\n // 3.3.1 P2-P3: Determine the paragraph level\n level: baseDirection === 'rtl' ? 1 : baseDirection === 'ltr' ? 0 : determineAutoEmbedLevel(i$1, false)\n });\n }\n if (charTypes[i$1] & TYPE_B) {\n paragraph.end = i$1;\n paragraph = null;\n }\n }\n\n var FORMATTING_TYPES = TYPE_RLE | TYPE_LRE | TYPE_RLO | TYPE_LRO | ISOLATE_INIT_TYPES | TYPE_PDI | TYPE_PDF | TYPE_B;\n var nextEven = function (n) { return n + ((n & 1) ? 1 : 2); };\n var nextOdd = function (n) { return n + ((n & 1) ? 2 : 1); };\n\n // Everything from here on will operate per paragraph.\n for (var paraIdx = 0; paraIdx < paragraphs.length; paraIdx++) {\n paragraph = paragraphs[paraIdx];\n var statusStack = [{\n _level: paragraph.level,\n _override: 0, //0=neutral, 1=L, 2=R\n _isolate: 0 //bool\n }];\n var stackTop = (void 0);\n var overflowIsolateCount = 0;\n var overflowEmbeddingCount = 0;\n var validIsolateCount = 0;\n charTypeCounts.clear();\n\n // === 3.3.2 Explicit Levels and Directions ===\n for (var i$2 = paragraph.start; i$2 <= paragraph.end; i$2++) {\n var charType = charTypes[i$2];\n stackTop = statusStack[statusStack.length - 1];\n\n // Set initial counts\n charTypeCounts.set(charType, (charTypeCounts.get(charType) || 0) + 1);\n if (charType & NEUTRAL_ISOLATE_TYPES) {\n charTypeCounts.set(NEUTRAL_ISOLATE_TYPES, (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES) || 0) + 1);\n }\n\n // Explicit Embeddings: 3.3.2 X2 - X3\n if (charType & FORMATTING_TYPES) { //prefilter all formatters\n if (charType & (TYPE_RLE | TYPE_LRE)) {\n embedLevels[i$2] = stackTop._level; // 5.2\n var level = (charType === TYPE_RLE ? nextOdd : nextEven)(stackTop._level);\n if (level <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {\n statusStack.push({\n _level: level,\n _override: 0,\n _isolate: 0\n });\n } else if (!overflowIsolateCount) {\n overflowEmbeddingCount++;\n }\n }\n\n // Explicit Overrides: 3.3.2 X4 - X5\n else if (charType & (TYPE_RLO | TYPE_LRO)) {\n embedLevels[i$2] = stackTop._level; // 5.2\n var level$1 = (charType === TYPE_RLO ? nextOdd : nextEven)(stackTop._level);\n if (level$1 <= MAX_DEPTH && !overflowIsolateCount && !overflowEmbeddingCount) {\n statusStack.push({\n _level: level$1,\n _override: (charType & TYPE_RLO) ? TYPE_R : TYPE_L,\n _isolate: 0\n });\n } else if (!overflowIsolateCount) {\n overflowEmbeddingCount++;\n }\n }\n\n // Isolates: 3.3.2 X5a - X5c\n else if (charType & ISOLATE_INIT_TYPES) {\n // X5c - FSI becomes either RLI or LRI\n if (charType & TYPE_FSI) {\n charType = determineAutoEmbedLevel(i$2 + 1, true) === 1 ? TYPE_RLI : TYPE_LRI;\n }\n\n embedLevels[i$2] = stackTop._level;\n if (stackTop._override) {\n changeCharType(i$2, stackTop._override);\n }\n var level$2 = (charType === TYPE_RLI ? nextOdd : nextEven)(stackTop._level);\n if (level$2 <= MAX_DEPTH && overflowIsolateCount === 0 && overflowEmbeddingCount === 0) {\n validIsolateCount++;\n statusStack.push({\n _level: level$2,\n _override: 0,\n _isolate: 1,\n _isolInitIndex: i$2\n });\n } else {\n overflowIsolateCount++;\n }\n }\n\n // Terminating Isolates: 3.3.2 X6a\n else if (charType & TYPE_PDI) {\n if (overflowIsolateCount > 0) {\n overflowIsolateCount--;\n } else if (validIsolateCount > 0) {\n overflowEmbeddingCount = 0;\n while (!statusStack[statusStack.length - 1]._isolate) {\n statusStack.pop();\n }\n // Add to isolation pairs bidirectional mapping:\n var isolInitIndex = statusStack[statusStack.length - 1]._isolInitIndex;\n if (isolInitIndex != null) {\n isolationPairs.set(isolInitIndex, i$2);\n isolationPairs.set(i$2, isolInitIndex);\n }\n statusStack.pop();\n validIsolateCount--;\n }\n stackTop = statusStack[statusStack.length - 1];\n embedLevels[i$2] = stackTop._level;\n if (stackTop._override) {\n changeCharType(i$2, stackTop._override);\n }\n }\n\n\n // Terminating Embeddings and Overrides: 3.3.2 X7\n else if (charType & TYPE_PDF) {\n if (overflowIsolateCount === 0) {\n if (overflowEmbeddingCount > 0) {\n overflowEmbeddingCount--;\n } else if (!stackTop._isolate && statusStack.length > 1) {\n statusStack.pop();\n stackTop = statusStack[statusStack.length - 1];\n }\n }\n embedLevels[i$2] = stackTop._level; // 5.2\n }\n\n // End of Paragraph: 3.3.2 X8\n else if (charType & TYPE_B) {\n embedLevels[i$2] = paragraph.level;\n }\n }\n\n // Non-formatting characters: 3.3.2 X6\n else {\n embedLevels[i$2] = stackTop._level;\n // NOTE: This exclusion of BN seems to go against what section 5.2 says, but is required for test passage\n if (stackTop._override && charType !== TYPE_BN) {\n changeCharType(i$2, stackTop._override);\n }\n }\n }\n\n // === 3.3.3 Preparations for Implicit Processing ===\n\n // Remove all RLE, LRE, RLO, LRO, PDF, and BN characters: 3.3.3 X9\n // Note: Due to section 5.2, we won't remove them, but we'll use the BN_LIKE_TYPES bitset to\n // easily ignore them all from here on out.\n\n // 3.3.3 X10\n // Compute the set of isolating run sequences as specified by BD13\n var levelRuns = [];\n var currentRun = null;\n for (var i$3 = paragraph.start; i$3 <= paragraph.end; i$3++) {\n var charType$1 = charTypes[i$3];\n if (!(charType$1 & BN_LIKE_TYPES)) {\n var lvl = embedLevels[i$3];\n var isIsolInit = charType$1 & ISOLATE_INIT_TYPES;\n var isPDI = charType$1 === TYPE_PDI;\n if (currentRun && lvl === currentRun._level) {\n currentRun._end = i$3;\n currentRun._endsWithIsolInit = isIsolInit;\n } else {\n levelRuns.push(currentRun = {\n _start: i$3,\n _end: i$3,\n _level: lvl,\n _startsWithPDI: isPDI,\n _endsWithIsolInit: isIsolInit\n });\n }\n }\n }\n var isolatingRunSeqs = []; // [{seqIndices: [], sosType: L|R, eosType: L|R}]\n for (var runIdx = 0; runIdx < levelRuns.length; runIdx++) {\n var run = levelRuns[runIdx];\n if (!run._startsWithPDI || (run._startsWithPDI && !isolationPairs.has(run._start))) {\n var seqRuns = [currentRun = run];\n for (var pdiIndex = (void 0); currentRun && currentRun._endsWithIsolInit && (pdiIndex = isolationPairs.get(currentRun._end)) != null;) {\n for (var i$4 = runIdx + 1; i$4 < levelRuns.length; i$4++) {\n if (levelRuns[i$4]._start === pdiIndex) {\n seqRuns.push(currentRun = levelRuns[i$4]);\n break\n }\n }\n }\n // build flat list of indices across all runs:\n var seqIndices = [];\n for (var i$5 = 0; i$5 < seqRuns.length; i$5++) {\n var run$1 = seqRuns[i$5];\n for (var j = run$1._start; j <= run$1._end; j++) {\n seqIndices.push(j);\n }\n }\n // determine the sos/eos types:\n var firstLevel = embedLevels[seqIndices[0]];\n var prevLevel = paragraph.level;\n for (var i$6 = seqIndices[0] - 1; i$6 >= 0; i$6--) {\n if (!(charTypes[i$6] & BN_LIKE_TYPES)) { //5.2\n prevLevel = embedLevels[i$6];\n break\n }\n }\n var lastIndex = seqIndices[seqIndices.length - 1];\n var lastLevel = embedLevels[lastIndex];\n var nextLevel = paragraph.level;\n if (!(charTypes[lastIndex] & ISOLATE_INIT_TYPES)) {\n for (var i$7 = lastIndex + 1; i$7 <= paragraph.end; i$7++) {\n if (!(charTypes[i$7] & BN_LIKE_TYPES)) { //5.2\n nextLevel = embedLevels[i$7];\n break\n }\n }\n }\n isolatingRunSeqs.push({\n _seqIndices: seqIndices,\n _sosType: Math.max(prevLevel, firstLevel) % 2 ? TYPE_R : TYPE_L,\n _eosType: Math.max(nextLevel, lastLevel) % 2 ? TYPE_R : TYPE_L\n });\n }\n }\n\n // The next steps are done per isolating run sequence\n for (var seqIdx = 0; seqIdx < isolatingRunSeqs.length; seqIdx++) {\n var ref = isolatingRunSeqs[seqIdx];\n var seqIndices$1 = ref._seqIndices;\n var sosType = ref._sosType;\n var eosType = ref._eosType;\n /**\n * All the level runs in an isolating run sequence have the same embedding level.\n * \n * DO NOT change any `embedLevels[i]` within the current scope.\n */\n var embedDirection = ((embedLevels[seqIndices$1[0]]) & 1) ? TYPE_R : TYPE_L;\n\n // === 3.3.4 Resolving Weak Types ===\n\n // W1 + 5.2. Search backward from each NSM to the first character in the isolating run sequence whose\n // bidirectional type is not BN, and set the NSM to ON if it is an isolate initiator or PDI, and to its\n // type otherwise. If the NSM is the first non-BN character, change the NSM to the type of sos.\n if (charTypeCounts.get(TYPE_NSM)) {\n for (var si = 0; si < seqIndices$1.length; si++) {\n var i$8 = seqIndices$1[si];\n if (charTypes[i$8] & TYPE_NSM) {\n var prevType = sosType;\n for (var sj = si - 1; sj >= 0; sj--) {\n if (!(charTypes[seqIndices$1[sj]] & BN_LIKE_TYPES)) { //5.2 scan back to first non-BN\n prevType = charTypes[seqIndices$1[sj]];\n break\n }\n }\n changeCharType(i$8, (prevType & (ISOLATE_INIT_TYPES | TYPE_PDI)) ? TYPE_ON : prevType);\n }\n }\n }\n\n // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sos)\n // is found. If an AL is found, change the type of the European number to Arabic number.\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$1 = 0; si$1 < seqIndices$1.length; si$1++) {\n var i$9 = seqIndices$1[si$1];\n if (charTypes[i$9] & TYPE_EN) {\n for (var sj$1 = si$1 - 1; sj$1 >= -1; sj$1--) {\n var prevCharType = sj$1 === -1 ? sosType : charTypes[seqIndices$1[sj$1]];\n if (prevCharType & STRONG_TYPES) {\n if (prevCharType === TYPE_AL) {\n changeCharType(i$9, TYPE_AN);\n }\n break\n }\n }\n }\n }\n }\n\n // W3. Change all ALs to R\n if (charTypeCounts.get(TYPE_AL)) {\n for (var si$2 = 0; si$2 < seqIndices$1.length; si$2++) {\n var i$10 = seqIndices$1[si$2];\n if (charTypes[i$10] & TYPE_AL) {\n changeCharType(i$10, TYPE_R);\n }\n }\n }\n\n // W4. A single European separator between two European numbers changes to a European number. A single common\n // separator between two numbers of the same type changes to that type.\n if (charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {\n for (var si$3 = 1; si$3 < seqIndices$1.length - 1; si$3++) {\n var i$11 = seqIndices$1[si$3];\n if (charTypes[i$11] & (TYPE_ES | TYPE_CS)) {\n var prevType$1 = 0, nextType = 0;\n for (var sj$2 = si$3 - 1; sj$2 >= 0; sj$2--) {\n prevType$1 = charTypes[seqIndices$1[sj$2]];\n if (!(prevType$1 & BN_LIKE_TYPES)) { //5.2\n break\n }\n }\n for (var sj$3 = si$3 + 1; sj$3 < seqIndices$1.length; sj$3++) {\n nextType = charTypes[seqIndices$1[sj$3]];\n if (!(nextType & BN_LIKE_TYPES)) { //5.2\n break\n }\n }\n if (prevType$1 === nextType && (charTypes[i$11] === TYPE_ES ? prevType$1 === TYPE_EN : (prevType$1 & (TYPE_EN | TYPE_AN)))) {\n changeCharType(i$11, prevType$1);\n }\n }\n }\n }\n\n // W5. A sequence of European terminators adjacent to European numbers changes to all European numbers.\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$4 = 0; si$4 < seqIndices$1.length; si$4++) {\n var i$12 = seqIndices$1[si$4];\n if (charTypes[i$12] & TYPE_EN) {\n for (var sj$4 = si$4 - 1; sj$4 >= 0 && (charTypes[seqIndices$1[sj$4]] & (TYPE_ET | BN_LIKE_TYPES)); sj$4--) {\n changeCharType(seqIndices$1[sj$4], TYPE_EN);\n }\n for (si$4++; si$4 < seqIndices$1.length && (charTypes[seqIndices$1[si$4]] & (TYPE_ET | BN_LIKE_TYPES | TYPE_EN)); si$4++) {\n if (charTypes[seqIndices$1[si$4]] !== TYPE_EN) {\n changeCharType(seqIndices$1[si$4], TYPE_EN);\n }\n }\n }\n }\n }\n\n // W6. Otherwise, separators and terminators change to Other Neutral.\n if (charTypeCounts.get(TYPE_ET) || charTypeCounts.get(TYPE_ES) || charTypeCounts.get(TYPE_CS)) {\n for (var si$5 = 0; si$5 < seqIndices$1.length; si$5++) {\n var i$13 = seqIndices$1[si$5];\n if (charTypes[i$13] & (TYPE_ET | TYPE_ES | TYPE_CS)) {\n changeCharType(i$13, TYPE_ON);\n // 5.2 transform adjacent BNs too:\n for (var sj$5 = si$5 - 1; sj$5 >= 0 && (charTypes[seqIndices$1[sj$5]] & BN_LIKE_TYPES); sj$5--) {\n changeCharType(seqIndices$1[sj$5], TYPE_ON);\n }\n for (var sj$6 = si$5 + 1; sj$6 < seqIndices$1.length && (charTypes[seqIndices$1[sj$6]] & BN_LIKE_TYPES); sj$6++) {\n changeCharType(seqIndices$1[sj$6], TYPE_ON);\n }\n }\n }\n }\n\n // W7. Search backward from each instance of a European number until the first strong type (R, L, or sos)\n // is found. If an L is found, then change the type of the European number to L.\n // NOTE: implemented in single forward pass for efficiency\n if (charTypeCounts.get(TYPE_EN)) {\n for (var si$6 = 0, prevStrongType = sosType; si$6 < seqIndices$1.length; si$6++) {\n var i$14 = seqIndices$1[si$6];\n var type = charTypes[i$14];\n if (type & TYPE_EN) {\n if (prevStrongType === TYPE_L) {\n changeCharType(i$14, TYPE_L);\n }\n } else if (type & STRONG_TYPES) {\n prevStrongType = type;\n }\n }\n }\n\n // === 3.3.5 Resolving Neutral and Isolate Formatting Types ===\n\n if (charTypeCounts.get(NEUTRAL_ISOLATE_TYPES)) {\n // N0. Process bracket pairs in an isolating run sequence sequentially in the logical order of the text\n // positions of the opening paired brackets using the logic given below. Within this scope, bidirectional\n // types EN and AN are treated as R.\n var R_TYPES_FOR_N_STEPS = (TYPE_R | TYPE_EN | TYPE_AN);\n var STRONG_TYPES_FOR_N_STEPS = R_TYPES_FOR_N_STEPS | TYPE_L;\n\n // * Identify the bracket pairs in the current isolating run sequence according to BD16.\n var bracketPairs = [];\n {\n var openerStack = [];\n for (var si$7 = 0; si$7 < seqIndices$1.length; si$7++) {\n // NOTE: for any potential bracket character we also test that it still carries a NI\n // type, as that may have been changed earlier. This doesn't seem to be explicitly\n // called out in the spec, but is required for passage of certain tests.\n if (charTypes[seqIndices$1[si$7]] & NEUTRAL_ISOLATE_TYPES) {\n var char = string[seqIndices$1[si$7]];\n var oppositeBracket = (void 0);\n // Opening bracket\n if (openingToClosingBracket(char) !== null) {\n if (openerStack.length < 63) {\n openerStack.push({ char: char, seqIndex: si$7 });\n } else {\n break\n }\n }\n // Closing bracket\n else if ((oppositeBracket = closingToOpeningBracket(char)) !== null) {\n for (var stackIdx = openerStack.length - 1; stackIdx >= 0; stackIdx--) {\n var stackChar = openerStack[stackIdx].char;\n if (stackChar === oppositeBracket ||\n stackChar === closingToOpeningBracket(getCanonicalBracket(char)) ||\n openingToClosingBracket(getCanonicalBracket(stackChar)) === char\n ) {\n bracketPairs.push([openerStack[stackIdx].seqIndex, si$7]);\n openerStack.length = stackIdx; //pop the matching bracket and all following\n break\n }\n }\n }\n }\n }\n bracketPairs.sort(function (a, b) { return a[0] - b[0]; });\n }\n // * For each bracket-pair element in the list of pairs of text positions\n for (var pairIdx = 0; pairIdx < bracketPairs.length; pairIdx++) {\n var ref$1 = bracketPairs[pairIdx];\n var openSeqIdx = ref$1[0];\n var closeSeqIdx = ref$1[1];\n // a. Inspect the bidirectional types of the characters enclosed within the bracket pair.\n // b. If any strong type (either L or R) matching the embedding direction is found, set the type for both\n // brackets in the pair to match the embedding direction.\n var foundStrongType = false;\n var useStrongType = 0;\n for (var si$8 = openSeqIdx + 1; si$8 < closeSeqIdx; si$8++) {\n var i$15 = seqIndices$1[si$8];\n if (charTypes[i$15] & STRONG_TYPES_FOR_N_STEPS) {\n foundStrongType = true;\n var lr = (charTypes[i$15] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n if (lr === embedDirection) {\n useStrongType = lr;\n break\n }\n }\n }\n // c. Otherwise, if there is a strong type it must be opposite the embedding direction. Therefore, test\n // for an established context with a preceding strong type by checking backwards before the opening paired\n // bracket until the first strong type (L, R, or sos) is found.\n // 1. If the preceding strong type is also opposite the embedding direction, context is established, so\n // set the type for both brackets in the pair to that direction.\n // 2. Otherwise set the type for both brackets in the pair to the embedding direction.\n if (foundStrongType && !useStrongType) {\n useStrongType = sosType;\n for (var si$9 = openSeqIdx - 1; si$9 >= 0; si$9--) {\n var i$16 = seqIndices$1[si$9];\n if (charTypes[i$16] & STRONG_TYPES_FOR_N_STEPS) {\n var lr$1 = (charTypes[i$16] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n if (lr$1 !== embedDirection) {\n useStrongType = lr$1;\n } else {\n useStrongType = embedDirection;\n }\n break\n }\n }\n }\n if (useStrongType) {\n charTypes[seqIndices$1[openSeqIdx]] = charTypes[seqIndices$1[closeSeqIdx]] = useStrongType;\n // * Any number of characters that had original bidirectional character type NSM prior to the application\n // of W1 that immediately follow a paired bracket which changed to L or R under N0 should change to match\n // the type of their preceding bracket.\n if (useStrongType !== embedDirection) {\n for (var si$10 = openSeqIdx + 1; si$10 < seqIndices$1.length; si$10++) {\n if (!(charTypes[seqIndices$1[si$10]] & BN_LIKE_TYPES)) {\n if (getBidiCharType(string[seqIndices$1[si$10]]) & TYPE_NSM) {\n charTypes[seqIndices$1[si$10]] = useStrongType;\n }\n break\n }\n }\n }\n if (useStrongType !== embedDirection) {\n for (var si$11 = closeSeqIdx + 1; si$11 < seqIndices$1.length; si$11++) {\n if (!(charTypes[seqIndices$1[si$11]] & BN_LIKE_TYPES)) {\n if (getBidiCharType(string[seqIndices$1[si$11]]) & TYPE_NSM) {\n charTypes[seqIndices$1[si$11]] = useStrongType;\n }\n break\n }\n }\n }\n }\n }\n\n // N1. A sequence of NIs takes the direction of the surrounding strong text if the text on both sides has the\n // same direction.\n // N2. Any remaining NIs take the embedding direction.\n for (var si$12 = 0; si$12 < seqIndices$1.length; si$12++) {\n if (charTypes[seqIndices$1[si$12]] & NEUTRAL_ISOLATE_TYPES) {\n var niRunStart = si$12, niRunEnd = si$12;\n var prevType$2 = sosType; //si === 0 ? sosType : (charTypes[seqIndices[si - 1]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L\n for (var si2 = si$12 - 1; si2 >= 0; si2--) {\n if (charTypes[seqIndices$1[si2]] & BN_LIKE_TYPES) {\n niRunStart = si2; //5.2 treat BNs adjacent to NIs as NIs\n } else {\n prevType$2 = (charTypes[seqIndices$1[si2]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n break\n }\n }\n var nextType$1 = eosType;\n for (var si2$1 = si$12 + 1; si2$1 < seqIndices$1.length; si2$1++) {\n if (charTypes[seqIndices$1[si2$1]] & (NEUTRAL_ISOLATE_TYPES | BN_LIKE_TYPES)) {\n niRunEnd = si2$1;\n } else {\n nextType$1 = (charTypes[seqIndices$1[si2$1]] & R_TYPES_FOR_N_STEPS) ? TYPE_R : TYPE_L;\n break\n }\n }\n for (var sj$7 = niRunStart; sj$7 <= niRunEnd; sj$7++) {\n charTypes[seqIndices$1[sj$7]] = prevType$2 === nextType$1 ? prevType$2 : embedDirection;\n }\n si$12 = niRunEnd;\n }\n }\n }\n }\n\n // === 3.3.6 Resolving Implicit Levels ===\n\n for (var i$17 = paragraph.start; i$17 <= paragraph.end; i$17++) {\n var level$3 = embedLevels[i$17];\n var type$1 = charTypes[i$17];\n // I2. For all characters with an odd (right-to-left) embedding level, those of type L, EN or AN go up one level.\n if (level$3 & 1) {\n if (type$1 & (TYPE_L | TYPE_EN | TYPE_AN)) {\n embedLevels[i$17]++;\n }\n }\n // I1. For all characters with an even (left-to-right) embedding level, those of type R go up one level\n // and those of type AN or EN go up two levels.\n else {\n if (type$1 & TYPE_R) {\n embedLevels[i$17]++;\n } else if (type$1 & (TYPE_AN | TYPE_EN)) {\n embedLevels[i$17] += 2;\n }\n }\n\n // 5.2: Resolve any LRE, RLE, LRO, RLO, PDF, or BN to the level of the preceding character if there is one,\n // and otherwise to the base level.\n if (type$1 & BN_LIKE_TYPES) {\n embedLevels[i$17] = i$17 === 0 ? paragraph.level : embedLevels[i$17 - 1];\n }\n\n // 3.4 L1.1-4: Reset the embedding level of segment/paragraph separators, and any sequence of whitespace or\n // isolate formatting characters preceding them or the end of the paragraph, to the paragraph level.\n // NOTE: this will also need to be applied to each individual line ending after line wrapping occurs.\n if (i$17 === paragraph.end || getBidiCharType(string[i$17]) & (TYPE_S | TYPE_B)) {\n for (var j$1 = i$17; j$1 >= 0 && (getBidiCharType(string[j$1]) & TRAILING_TYPES); j$1--) {\n embedLevels[j$1] = paragraph.level;\n }\n }\n }\n }\n\n // DONE! The resolved levels can then be used, after line wrapping, to flip runs of characters\n // according to section 3.4 Reordering Resolved Levels\n return {\n levels: embedLevels,\n paragraphs: paragraphs\n }\n\n function determineAutoEmbedLevel (start, isFSI) {\n // 3.3.1 P2 - P3\n for (var i = start; i < string.length; i++) {\n var charType = charTypes[i];\n if (charType & (TYPE_R | TYPE_AL)) {\n return 1\n }\n if ((charType & (TYPE_B | TYPE_L)) || (isFSI && charType === TYPE_PDI)) {\n return 0\n }\n if (charType & ISOLATE_INIT_TYPES) {\n var pdi = indexOfMatchingPDI(i);\n i = pdi === -1 ? string.length : pdi;\n }\n }\n return 0\n }\n\n function indexOfMatchingPDI (isolateStart) {\n // 3.1.2 BD9\n var isolationLevel = 1;\n for (var i = isolateStart + 1; i < string.length; i++) {\n var charType = charTypes[i];\n if (charType & TYPE_B) {\n break\n }\n if (charType & TYPE_PDI) {\n if (--isolationLevel === 0) {\n return i\n }\n } else if (charType & ISOLATE_INIT_TYPES) {\n isolationLevel++;\n }\n }\n return -1\n }\n }\n\n // Bidi mirrored chars data, auto generated\n var data = \"14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1\";\n\n var mirrorMap;\n\n function parse () {\n if (!mirrorMap) {\n //const start = performance.now()\n var ref = parseCharacterMap(data, true);\n var map = ref.map;\n var reverseMap = ref.reverseMap;\n // Combine both maps into one\n reverseMap.forEach(function (value, key) {\n map.set(key, value);\n });\n mirrorMap = map;\n //console.log(`mirrored chars parsed in ${performance.now() - start}ms`)\n }\n }\n\n function getMirroredCharacter (char) {\n parse();\n return mirrorMap.get(char) || null\n }\n\n /**\n * Given a string and its resolved embedding levels, build a map of indices to replacement chars\n * for any characters in right-to-left segments that have defined mirrored characters.\n * @param string\n * @param embeddingLevels\n * @param [start]\n * @param [end]\n * @return {Map}\n */\n function getMirroredCharactersMap(string, embeddingLevels, start, end) {\n var strLen = string.length;\n start = Math.max(0, start == null ? 0 : +start);\n end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);\n\n var map = new Map();\n for (var i = start; i <= end; i++) {\n if (embeddingLevels[i] & 1) { //only odd (rtl) levels\n var mirror = getMirroredCharacter(string[i]);\n if (mirror !== null) {\n map.set(i, mirror);\n }\n }\n }\n return map\n }\n\n /**\n * Given a start and end denoting a single line within a string, and a set of precalculated\n * bidi embedding levels, produce a list of segments whose ordering should be flipped, in sequence.\n * @param {string} string - the full input string\n * @param {GetEmbeddingLevelsResult} embeddingLevelsResult - the result object from getEmbeddingLevels\n * @param {number} [start] - first character in a subset of the full string\n * @param {number} [end] - last character in a subset of the full string\n * @return {number[][]} - the list of start/end segments that should be flipped, in order.\n */\n function getReorderSegments(string, embeddingLevelsResult, start, end) {\n var strLen = string.length;\n start = Math.max(0, start == null ? 0 : +start);\n end = Math.min(strLen - 1, end == null ? strLen - 1 : +end);\n\n var segments = [];\n embeddingLevelsResult.paragraphs.forEach(function (paragraph) {\n var lineStart = Math.max(start, paragraph.start);\n var lineEnd = Math.min(end, paragraph.end);\n if (lineStart < lineEnd) {\n // Local slice for mutation\n var lineLevels = embeddingLevelsResult.levels.slice(lineStart, lineEnd + 1);\n\n // 3.4 L1.4: Reset any sequence of whitespace characters and/or isolate formatting characters at the\n // end of the line to the paragraph level.\n for (var i = lineEnd; i >= lineStart && (getBidiCharType(string[i]) & TRAILING_TYPES); i--) {\n lineLevels[i] = paragraph.level;\n }\n\n // L2. From the highest level found in the text to the lowest odd level on each line, including intermediate levels\n // not actually present in the text, reverse any contiguous sequence of characters that are at that level or higher.\n var maxLevel = paragraph.level;\n var minOddLevel = Infinity;\n for (var i$1 = 0; i$1 < lineLevels.length; i$1++) {\n var level = lineLevels[i$1];\n if (level > maxLevel) { maxLevel = level; }\n if (level < minOddLevel) { minOddLevel = level | 1; }\n }\n for (var lvl = maxLevel; lvl >= minOddLevel; lvl--) {\n for (var i$2 = 0; i$2 < lineLevels.length; i$2++) {\n if (lineLevels[i$2] >= lvl) {\n var segStart = i$2;\n while (i$2 + 1 < lineLevels.length && lineLevels[i$2 + 1] >= lvl) {\n i$2++;\n }\n if (i$2 > segStart) {\n segments.push([segStart + lineStart, i$2 + lineStart]);\n }\n }\n }\n }\n }\n });\n return segments\n }\n\n /**\n * @param {string} string\n * @param {GetEmbeddingLevelsResult} embedLevelsResult\n * @param {number} [start]\n * @param {number} [end]\n * @return {string} the new string with bidi segments reordered\n */\n function getReorderedString(string, embedLevelsResult, start, end) {\n var indices = getReorderedIndices(string, embedLevelsResult, start, end);\n var chars = [].concat( string );\n indices.forEach(function (charIndex, i) {\n chars[i] = (\n (embedLevelsResult.levels[charIndex] & 1) ? getMirroredCharacter(string[charIndex]) : null\n ) || string[charIndex];\n });\n return chars.join('')\n }\n\n /**\n * @param {string} string\n * @param {GetEmbeddingLevelsResult} embedLevelsResult\n * @param {number} [start]\n * @param {number} [end]\n * @return {number[]} an array with character indices in their new bidi order\n */\n function getReorderedIndices(string, embedLevelsResult, start, end) {\n var segments = getReorderSegments(string, embedLevelsResult, start, end);\n // Fill an array with indices\n var indices = [];\n for (var i = 0; i < string.length; i++) {\n indices[i] = i;\n }\n // Reverse each segment in order\n segments.forEach(function (ref) {\n var start = ref[0];\n var end = ref[1];\n\n var slice = indices.slice(start, end + 1);\n for (var i = slice.length; i--;) {\n indices[end - i] = slice[i];\n }\n });\n return indices\n }\n\n exports.closingToOpeningBracket = closingToOpeningBracket;\n exports.getBidiCharType = getBidiCharType;\n exports.getBidiCharTypeName = getBidiCharTypeName;\n exports.getCanonicalBracket = getCanonicalBracket;\n exports.getEmbeddingLevels = getEmbeddingLevels;\n exports.getMirroredCharacter = getMirroredCharacter;\n exports.getMirroredCharactersMap = getMirroredCharactersMap;\n exports.getReorderSegments = getReorderSegments;\n exports.getReorderedIndices = getReorderedIndices;\n exports.getReorderedString = getReorderedString;\n exports.openingToClosingBracket = openingToClosingBracket;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\nreturn bidi}\n\nexport default bidiFactory;\n","import { isNil, last, repeat, dropLast as dropLast$2, adjust, compose } from '@react-pdf/fns';\nimport bidiFactory from 'bidi-js';\nimport unicode from 'unicode-properties';\nimport hyphen from 'hyphen';\nimport pattern from 'hyphen/patterns/en-us.js';\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Fragment} Fragment\n */\n\n/**\n * Create attributed string from text fragments\n *\n * @param {Fragment[]} fragments fragments\n * @returns {AttributedString} attributed string\n */\nconst fromFragments = fragments => {\n let offset = 0;\n let string = '';\n const runs = [];\n fragments.forEach(fragment => {\n string += fragment.string;\n runs.push({\n ...fragment,\n start: offset,\n end: offset + fragment.string.length,\n attributes: fragment.attributes || {}\n });\n offset += fragment.string.length;\n });\n return {\n string,\n runs\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Default word hyphenation engine used when no one provided.\n * Does not perform word hyphenation at all\n *\n * @param {string} word\n * @returns {[string]} same word\n */\nconst defaultHyphenationEngine = word => [word];\n\n/**\n * Wrap words of attribute string\n *\n * @param {Object} engines layout engines\n * @param {Object} options layout options\n */\nconst wrapWords = function (engines, options) {\n if (engines === void 0) {\n engines = {};\n }\n if (options === void 0) {\n options = {};\n }\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string including syllables\n */\n return attributedString => {\n var _engines$wordHyphenat, _engines;\n const syllables = [];\n const fragments = [];\n const hyphenateWord = options.hyphenationCallback || ((_engines$wordHyphenat = (_engines = engines).wordHyphenation) === null || _engines$wordHyphenat === void 0 ? void 0 : _engines$wordHyphenat.call(_engines, options)) || defaultHyphenationEngine;\n for (let i = 0; i < attributedString.runs.length; i += 1) {\n let string = '';\n const run = attributedString.runs[i];\n const words = attributedString.string.slice(run.start, run.end).split(/([ ]+)/g).filter(Boolean);\n for (let j = 0; j < words.length; j += 1) {\n const word = words[j];\n const parts = hyphenateWord(word);\n syllables.push(...parts);\n string += parts.join('');\n }\n fragments.push({\n ...run,\n string\n });\n }\n return {\n ...fromFragments(fragments),\n syllables\n };\n };\n};\n\n/**\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * Clone rect\n *\n * @param {Rect} rect rect\n * @returns {Rect} cloned rect\n */\nconst copy = rect => {\n return Object.assign({}, rect);\n};\n\n/**\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n *\n * @param {Rect} rect rect\n * @param {number} height height\n * @returns {[Rect, Rect]} partitioned rects\n */\nconst partition = (rect, height) => {\n const a = Object.assign({}, rect, {\n height\n });\n const b = Object.assign({}, rect, {\n y: rect.y + height,\n height: rect.height - height\n });\n return [a, b];\n};\n\n/**\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * Crop upper section of rect\n *\n * @param {number} height height\n * @param {Rect} rect rect\n * @returns {Rect} cropped rect\n */\nconst crop = (height, rect) => {\n const [, result] = partition(rect, height);\n return result;\n};\n\n/**\n * Get paragraph block height\n *\n * @param {Object} paragraph block\n * @returns {number} paragraph block height\n */\nconst height$2 = paragraph => {\n return paragraph.reduce((acc, block) => acc + block.box.height, 0);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Calculate run scale\n *\n * @param {Run} run run\n * @returns {number} scale\n */\nconst calculateScale = run => {\n var _attributes$font;\n const attributes = run.attributes || {};\n const fontSize = attributes.fontSize || 12;\n const unitsPerEm = (_attributes$font = attributes.font) === null || _attributes$font === void 0 ? void 0 : _attributes$font.unitsPerEm;\n return unitsPerEm ? fontSize / unitsPerEm : 0;\n};\n\n/**\n * Get run scale\n *\n * @param {Object} run\n * @returns {number} scale\n */\nconst scale = run => {\n var _run$attributes;\n return ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : _run$attributes.scale) || calculateScale(run);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get ligature offset by index\n *\n * Ex. ffi ligature\n *\n * glyphs: l o f f i m\n * glyphIndices: 0 1 2 2 2 3\n * offset: 0 0 0 1 2 0\n *\n * @param {number} index\n * @param {Run} run run\n * @returns {number} ligature offset\n */\nconst offset = (index, run) => {\n if (!run) return 0;\n const glyphIndices = run.glyphIndices || [];\n const value = glyphIndices[index];\n return glyphIndices.slice(0, index).filter(i => i === value).length;\n};\n\n/**\n * @typedef {import('../types.js').Font} Font\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run font\n *\n * @param {Run} run run\n * @returns {Font | null} font\n */\nconst getFont = run => {\n var _run$attributes;\n return ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : _run$attributes.font) || null;\n};\n\n/**\n * @typedef {import('../types.js').Font} Font\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\n/**\n * Slice glyph between codePoints range\n * Util for breaking ligatures\n *\n * @param {number} start start code point index\n * @param {number} end end code point index\n * @param {Font} font font to generate new glyph\n * @param {Glyph} glyph glyph to be sliced\n * @returns {Glyph[]} sliced glyph parts\n */\nconst slice$2 = (start, end, font, glyph) => {\n if (!glyph) return [];\n if (start === end) return [];\n if (start === 0 && end === glyph.codePoints.length) return [glyph];\n const codePoints = glyph.codePoints.slice(start, end);\n const string = String.fromCodePoint(...codePoints);\n\n // passing LTR To force fontkit to not reverse the string\n return font ? font.layout(string, undefined, undefined, undefined, 'ltr').glyphs : [glyph];\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Return glyph index at string index, if glyph indices present.\n * Otherwise return string index\n *\n * @param {number} index index\n * @param {Run} run run\n * @returns {number} glyph index\n */\nconst glyphIndexAt = (index, run) => {\n var _run$glyphIndices;\n const result = run === null || run === void 0 ? void 0 : (_run$glyphIndices = run.glyphIndices) === null || _run$glyphIndices === void 0 ? void 0 : _run$glyphIndices[index];\n return isNil(result) ? index : result;\n};\n\n/**\n * Returns new array starting with zero, and keeping same relation between consecutive values\n *\n * @param {number[]} array list\n * @returns {number[]} normalized array\n */\nconst normalize = array => {\n const head = array[0];\n return array.map(value => value - head);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Slice run between glyph indices range\n *\n * @param {number} start glyph index\n * @param {number} end glyph index\n * @param {Run} run run\n * @returns {Run} sliced run\n */\nconst slice$1 = (start, end, run) => {\n var _run$glyphs, _run$glyphs2;\n const runScale = scale(run);\n const font = getFont(run);\n\n // Get glyph start and end indices\n const startIndex = glyphIndexAt(start, run);\n const endIndex = glyphIndexAt(end, run);\n\n // Get start and end glyph\n const startGlyph = (_run$glyphs = run.glyphs) === null || _run$glyphs === void 0 ? void 0 : _run$glyphs[startIndex];\n const endGlyph = (_run$glyphs2 = run.glyphs) === null || _run$glyphs2 === void 0 ? void 0 : _run$glyphs2[endIndex];\n\n // Get start ligature chunks (if any)\n const startOffset = offset(start, run);\n const startGlyphs = startOffset > 0 ? slice$2(startOffset, Infinity, font, startGlyph) : [];\n\n // Get end ligature chunks (if any)\n const endOffset = offset(end, run);\n const endGlyphs = slice$2(0, endOffset, font, endGlyph);\n\n // Compute new glyphs\n const sliceStart = startIndex + Math.min(1, startOffset);\n const glyphs = (run.glyphs || []).slice(sliceStart, endIndex);\n\n // Compute new positions\n const glyphPosition = g => ({\n xAdvance: g.advanceWidth * runScale\n });\n const startPositions = startGlyphs.map(glyphPosition);\n const positions = (run.positions || []).slice(sliceStart, endIndex);\n const endPositions = endGlyphs.map(glyphPosition);\n return Object.assign({}, run, {\n start: run.start + start,\n end: Math.min(run.end, run.start + end),\n glyphIndices: normalize((run.glyphIndices || []).slice(start, end)),\n glyphs: [startGlyphs, glyphs, endGlyphs].flat(),\n positions: [startPositions, positions, endPositions].flat()\n });\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run index that contains passed index\n *\n * @param {number} n index\n * @param {Run[]} runs runs\n * @returns {number} run index\n */\nconst runIndexAt$1 = (n, runs) => {\n if (!runs) return -1;\n return runs.findIndex(run => run.start <= n && n < run.end);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Filter runs contained between start and end\n *\n * @param {number} start\n * @param {number} end\n * @param {Run[]} runs\n * @returns {Run[]} filtered runs\n */\nconst filter = (start, end, runs) => {\n const startIndex = runIndexAt$1(start, runs);\n const endIndex = Math.max(runIndexAt$1(end - 1, runs), startIndex);\n return runs.slice(startIndex, endIndex + 1);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Subtract scalar to run\n *\n * @param {number} n scalar\n * @param {Run} run run\n * @returns {Object} subtracted run\n */\nconst subtract = (n, run) => {\n const start = run.start - n;\n const end = run.end - n;\n return Object.assign({}, run, {\n start,\n end\n });\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Slice array of runs\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {Run[]} runs\n * @returns {Run[]} sliced runs\n */\nconst sliceRuns = (start, end, runs) => {\n const sliceFirstRun = a => slice$1(start - a.start, end - a.start, a);\n const sliceLastRun = a => slice$1(0, end - a.start, a);\n return runs.map((run, i) => {\n let result = run;\n const isFirst = i === 0;\n const isLast = !isFirst && i === runs.length - 1;\n if (isFirst) result = sliceFirstRun(run);\n if (isLast) result = sliceLastRun(run);\n return subtract(start, result);\n });\n};\n\n/**\n * Slice attributed string between two indices\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\nconst slice = (start, end, attributedString) => {\n if (attributedString.string.length === 0) return attributedString;\n const string = attributedString.string.slice(start, end);\n const filteredRuns = filter(start, end, attributedString.runs);\n const slicedRuns = sliceRuns(start, end, filteredRuns);\n return Object.assign({}, attributedString, {\n string,\n runs: slicedRuns\n });\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * @param {string} string\n * @returns {number} index\n */\nconst findCharIndex = string => {\n return string.search(/\\S/g);\n};\n\n/**\n * @param {string} string\n * @returns {number} index\n */\nconst findLastCharIndex = string => {\n const match = string.match(/\\S/g);\n return match ? string.lastIndexOf(match[match.length - 1]) : -1;\n};\n\n/**\n * Removes (strips) whitespace from both ends of the attributted string.\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\nconst trim = attributedString => {\n const start = findCharIndex(attributedString.string);\n const end = findLastCharIndex(attributedString.string);\n return slice(start, end + 1, attributedString);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Returns empty run\n *\n * @returns {Run} empty run\n */\nconst empty$1 = () => {\n return {\n start: 0,\n end: 0,\n glyphIndices: [],\n glyphs: [],\n positions: [],\n attributes: {}\n };\n};\n\n/**\n * Check if value is a number\n *\n * @template {unknown} T\n * @param {T} value Value to check\n * @returns {value is number} Whether value is a number\n */\nconst isNumber = value => {\n return typeof value === 'number';\n};\n\n/**\n * Append glyph indices with given length\n *\n * Ex. appendIndices(3, [0, 1, 2, 2]) => [0, 1, 2, 2, 3, 3, 3]\n *\n * @param {number} length length\n * @param {number[]} indices glyph indices\n * @returns {number[]} extended glyph indices\n */\nconst appendIndices = (length, indices) => {\n const lastIndex = last(indices);\n const value = isNil(lastIndex) ? 0 : lastIndex + 1;\n const newIndices = Array(length).fill(value);\n return indices.concat(newIndices);\n};\n\n/**\n * @typedef {import('../types.js').Font} Font\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\n/**\n * Get glyph for a given code point\n *\n * @param {number} [value] codePoint\n * @param {Font} [font] font\n * @returns {Glyph} glyph\n * */\nconst fromCodePoint = (value, font) => {\n return font && value ? font.glyphForCodePoint(value) : null;\n};\n\n/**\n * @typedef {import('../types.js').Glyph} Glyph\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Append glyph to run\n *\n * @param {Glyph} glyph glyph\n * @param {Run} run run\n * @returns {Run} run with glyph\n */\nconst appendGlyph = (glyph, run) => {\n var _glyph$codePoints;\n const glyphLength = ((_glyph$codePoints = glyph.codePoints) === null || _glyph$codePoints === void 0 ? void 0 : _glyph$codePoints.length) || 0;\n const end = run.end + glyphLength;\n const glyphs = run.glyphs.concat(glyph);\n const glyphIndices = appendIndices(glyphLength, run.glyphIndices);\n if (!run.positions) return Object.assign({}, run, {\n end,\n glyphs,\n glyphIndices\n });\n const positions = run.positions.concat({\n xAdvance: glyph.advanceWidth * scale(run)\n });\n return Object.assign({}, run, {\n end,\n glyphs,\n glyphIndices,\n positions\n });\n};\n\n/**\n * Append glyph or code point to run\n *\n * @param {Glyph | number | undefined} value glyph or codePoint\n * @param {Run} run run\n * @returns {Run} run with glyph\n */\nconst append$1 = (value, run) => {\n if (!value) return run;\n const font = getFont(run);\n const glyph = isNumber(value) ? fromCodePoint(value, font) : value;\n return appendGlyph(glyph, run);\n};\n\n/**\n * Get string from array of code points\n *\n * @param {number[]} codePoints points\n * @returns {string} string\n */\nconst stringFromCodePoints = codePoints => {\n return String.fromCodePoint(...(codePoints || []));\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\n/**\n * Append glyph into last run of attributed string\n *\n * @param {Glyph} glyph glyph\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string with new glyph\n */\nconst append = (glyph, attributedString) => {\n const codePoints = (glyph === null || glyph === void 0 ? void 0 : glyph.codePoints) || [];\n const codePointsString = stringFromCodePoints(codePoints);\n const string = attributedString.string + codePointsString;\n const firstRuns = attributedString.runs.slice(0, -1);\n const lastRun = last(attributedString.runs) || empty$1();\n const runs = firstRuns.concat(append$1(glyph, lastRun));\n return Object.assign({}, attributedString, {\n string,\n runs\n });\n};\n\nconst ELLIPSIS_UNICODE = 8230;\nconst ELLIPSIS_STRING = String.fromCharCode(ELLIPSIS_UNICODE);\n\n/**\n * Get ellipsis codepoint. This may be different in standard and embedded fonts\n *\n * @param {Object} font\n * @returns {Object} ellipsis codepoint\n */\nconst getEllipsisCodePoint = font => {\n if (!font.encode) return ELLIPSIS_UNICODE;\n const [codePoints] = font.encode(ELLIPSIS_STRING);\n return parseInt(codePoints[0], 16);\n};\n\n/**\n * Trucante block with ellipsis\n *\n * @param {Object} block paragraph block\n * @returns {Object} sliced paragraph block\n */\nconst truncate = block => {\n var _last, _last2, _last2$attributes;\n const runs = ((_last = last(block)) === null || _last === void 0 ? void 0 : _last.runs) || [];\n const font = (_last2 = last(runs)) === null || _last2 === void 0 ? void 0 : (_last2$attributes = _last2.attributes) === null || _last2$attributes === void 0 ? void 0 : _last2$attributes.font;\n if (font) {\n const index = block.length - 1;\n const codePoint = getEllipsisCodePoint(font);\n const glyph = font.glyphForCodePoint(codePoint);\n const lastBlock = append(glyph, trim(block[index]));\n return Object.assign([], block, {\n [index]: lastBlock\n });\n }\n return block;\n};\n\n/**\n * @typedef {import('../types.js').Attributes} Attributes\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Omit attribute from run\n *\n * @param {keyof Attributes} value attribute value\n * @param {Run} run run\n * @returns {Run} run without ommited attribute\n */\nconst omit = (value, run) => {\n const attributes = Object.assign({}, run.attributes);\n delete attributes[value];\n return Object.assign({}, run, {\n attributes\n });\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run ascent\n *\n * @param {Run} run run\n * @returns {number} ascent\n */\nconst ascent$1 = run => {\n var _run$attributes, _run$attributes$attac, _run$attributes2, _run$attributes2$font;\n const attachmentHeight = ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : (_run$attributes$attac = _run$attributes.attachment) === null || _run$attributes$attac === void 0 ? void 0 : _run$attributes$attac.height) || 0;\n const fontAscent = ((_run$attributes2 = run.attributes) === null || _run$attributes2 === void 0 ? void 0 : (_run$attributes2$font = _run$attributes2.font) === null || _run$attributes2$font === void 0 ? void 0 : _run$attributes2$font.ascent) || 0;\n return Math.max(attachmentHeight, fontAscent * scale(run));\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run descent\n *\n * @param {Run} run run\n * @returns {number} descent\n */\nconst descent = run => {\n var _run$attributes, _run$attributes$font;\n const fontDescent = ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : (_run$attributes$font = _run$attributes.font) === null || _run$attributes$font === void 0 ? void 0 : _run$attributes$font.descent) || 0;\n return scale(run) * fontDescent;\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run lineGap\n *\n * @param {Object} run run\n * @returns {number} lineGap\n */\nconst lineGap = run => {\n var _run$attributes, _run$attributes$font;\n return (((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : (_run$attributes$font = _run$attributes.font) === null || _run$attributes$font === void 0 ? void 0 : _run$attributes$font.lineGap) || 0) * scale(run);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run height\n *\n * @param {Run} run run\n * @returns {number} height\n */\nconst height$1 = run => {\n var _run$attributes;\n const lineHeight = (_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : _run$attributes.lineHeight;\n return lineHeight || lineGap(run) + ascent$1(run) - descent(run);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Returns attributed string height\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} height\n */\nconst height = attributedString => {\n const reducer = (acc, run) => Math.max(acc, height$1(run));\n return attributedString.runs.reduce(reducer, 0);\n};\n\n/**\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * Checks if two rects intersect each other\n *\n * @param {Rect} a rect A\n * @param {Rect} b rect B\n * @returns {boolean} whether rects intersect\n */\nconst intersects = (a, b) => {\n const x = Math.max(a.x, b.x);\n const num1 = Math.min(a.x + a.width, b.x + b.width);\n const y = Math.max(a.y, b.y);\n const num2 = Math.min(a.y + a.height, b.y + b.height);\n return num1 >= x && num2 >= y;\n};\n\nconst getLineFragment = (lineRect, excludeRect) => {\n if (!intersects(excludeRect, lineRect)) return [lineRect];\n const eStart = excludeRect.x;\n const eEnd = excludeRect.x + excludeRect.width;\n const lStart = lineRect.x;\n const lEnd = lineRect.x + lineRect.width;\n const a = Object.assign({}, lineRect, {\n width: eStart - lStart\n });\n const b = Object.assign({}, lineRect, {\n x: eEnd,\n width: lEnd - eEnd\n });\n return [a, b].filter(r => r.width > 0);\n};\nconst getLineFragments = (rect, excludeRects) => {\n let fragments = [rect];\n for (let i = 0; i < excludeRects.length; i += 1) {\n const excludeRect = excludeRects[i];\n fragments = fragments.reduce((acc, fragment) => {\n const pieces = getLineFragment(fragment, excludeRect);\n return acc.concat(pieces);\n }, []);\n }\n return fragments;\n};\nconst generateLineRects = (container, height) => {\n const {\n excludeRects,\n ...rect\n } = container;\n if (!excludeRects) return [rect];\n const lineRects = [];\n const maxY = Math.max(...excludeRects.map(r => r.y + r.height));\n let currentRect = rect;\n while (currentRect.y < maxY) {\n const [lineRect, rest] = partition(currentRect, height);\n const lineRectFragments = getLineFragments(lineRect, excludeRects);\n currentRect = rest;\n lineRects.push(...lineRectFragments);\n }\n return [...lineRects, currentRect];\n};\n\nconst ATTACHMENT_CODE$1 = '\\ufffc'; // 65532\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * Remove attachment attribute if no char present\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\nconst purgeAttachments = attributedString => {\n const shouldPurge = !attributedString.string.includes(ATTACHMENT_CODE$1);\n if (!shouldPurge) return attributedString;\n const runs = attributedString.runs.map(run => omit('attachment', run));\n return Object.assign({}, attributedString, {\n runs\n });\n};\n\n/**\n * Layout paragraphs inside rectangle\n *\n * @param {Object} rects rect\n * @param {Object[]} lines attributed strings\n * @param {number} indent\n * @returns {Object} layout blocks\n */\nconst layoutLines = (rects, lines, indent) => {\n let rect = rects.shift();\n let currentY = rect.y;\n return lines.map((line, i) => {\n var _line$runs, _line$runs$;\n const lineIndent = i === 0 ? indent : 0;\n const style = ((_line$runs = line.runs) === null || _line$runs === void 0 ? void 0 : (_line$runs$ = _line$runs[0]) === null || _line$runs$ === void 0 ? void 0 : _line$runs$.attributes) || {};\n const height$1 = Math.max(height(line), style.lineHeight);\n if (currentY + height$1 > rect.y + rect.height && rects.length > 0) {\n rect = rects.shift();\n currentY = rect.y;\n }\n const newLine = Object.assign({}, line);\n delete newLine.syllables;\n newLine.box = {\n x: rect.x + lineIndent,\n y: currentY,\n width: rect.width - lineIndent,\n height: height$1\n };\n currentY += height$1;\n return purgeAttachments(newLine);\n });\n};\n\n/**\n * Performs line breaking and layout\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n */\nconst layoutParagraph = (engines, options) => {\n /**\n * @param {Rect} container rect\n * @param {Object} paragraph attributed string\n * @returns {Object} layout block\n */\n return (container, paragraph) => {\n var _paragraph$runs, _paragraph$runs$, _paragraph$runs$$attr;\n const height$1 = height(paragraph);\n const indent = ((_paragraph$runs = paragraph.runs) === null || _paragraph$runs === void 0 ? void 0 : (_paragraph$runs$ = _paragraph$runs[0]) === null || _paragraph$runs$ === void 0 ? void 0 : (_paragraph$runs$$attr = _paragraph$runs$.attributes) === null || _paragraph$runs$$attr === void 0 ? void 0 : _paragraph$runs$$attr.indent) || 0;\n const rects = generateLineRects(container, height$1);\n const availableWidths = rects.map(r => r.width);\n availableWidths[0] -= indent;\n const lines = engines.linebreaker(options)(paragraph, availableWidths);\n return layoutLines(rects, lines, indent);\n };\n};\n\n/**\n * Slice block at given height\n *\n * @param {number} height height\n * @param {Object} block paragraph block\n * @returns {number[]} sliced paragraph block\n */\nconst sliceAtHeight = (height, block) => {\n const newBlock = [];\n let counter = 0;\n for (let i = 0; i < block.length; i += 1) {\n const line = block[i];\n counter += line.box.height;\n if (counter < height) {\n newBlock.push(line);\n } else {\n break;\n }\n }\n return newBlock;\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * Layout paragraphs inside container until it does not\n * fit anymore, performing line wrapping in the process.\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n * @param {Rect} container container rect\n */\nconst typesetter = (engines, options, container) => {\n /**\n * @param {AttributedString} attributedStrings attributed strings (paragraphs)\n * @returns {Object[]} paragraph blocks\n */\n return attributedStrings => {\n const blocks = [];\n const paragraphs = [...attributedStrings];\n const layoutBlock = layoutParagraph(engines, options);\n const maxLines = isNil(container.maxLines) ? Infinity : container.maxLines;\n const truncateEllipsis = container.truncateMode === 'ellipsis';\n let linesCount = maxLines;\n let paragraphRect = copy(container);\n let nextParagraph = paragraphs.shift();\n while (linesCount > 0 && nextParagraph) {\n const block = layoutBlock(paragraphRect, nextParagraph);\n const slicedBlock = block.slice(0, linesCount);\n const linesHeight = height$2(slicedBlock);\n const shouldTruncate = truncateEllipsis && block.length !== slicedBlock.length;\n linesCount -= slicedBlock.length;\n if (paragraphRect.height >= linesHeight) {\n blocks.push(shouldTruncate ? truncate(slicedBlock) : slicedBlock);\n paragraphRect = crop(linesHeight, paragraphRect);\n nextParagraph = paragraphs.shift();\n } else {\n blocks.push(truncate(sliceAtHeight(paragraphRect.height, slicedBlock)));\n break;\n }\n }\n return blocks;\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get attributed string start value\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} start\n */\nconst start = attributedString => {\n const {\n runs\n } = attributedString;\n return runs.length === 0 ? 0 : runs[0].start;\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get attributed string end value\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} end\n */\nconst end = attributedString => {\n const {\n runs\n } = attributedString;\n return runs.length === 0 ? 0 : last(runs).end;\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get attributed string length\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} end\n */\nconst length$1 = attributedString => {\n return end(attributedString) - start(attributedString);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Glyph} Glyph\n * @typedef {import('../types.js').Position} Position\n * @typedef {import('../types.js').Run} Run\n */\n\nconst bidi$2 = bidiFactory();\n\n/**\n * @param {Run[]} runs\n * @returns {number[]} bidi levels\n */\nconst getBidiLevels$1 = runs => {\n return runs.reduce((acc, run) => {\n const length = run.end - run.start;\n const levels = repeat(run.attributes.bidiLevel, length);\n return acc.concat(levels);\n }, []);\n};\nconst getReorderedIndices = (string, segments) => {\n // Fill an array with indices\n const indices = [];\n for (let i = 0; i < string.length; i += 1) {\n indices[i] = i;\n }\n // Reverse each segment in order\n segments.forEach(_ref => {\n let [start, end] = _ref;\n const slice = indices.slice(start, end + 1);\n for (let i = slice.length - 1; i >= 0; i -= 1) {\n indices[end - i] = slice[i];\n }\n });\n return indices;\n};\n\n/**\n * @template {'glyphs'|'positions'} T\n * @param {Run[]} runs\n * @param {T} objectName\n * @param {number} index\n * @returns {T extends 'glyphs' ? Glyph|undefined : Position|undefined}\n */\nconst getItemAtIndex = (runs, objectName, index) => {\n for (let i = 0; i < runs.length; i += 1) {\n const run = runs[i];\n const updatedIndex = run.glyphIndices[index - run.start];\n if (index >= run.start && index < run.end) {\n return run[objectName][updatedIndex];\n }\n }\n throw new Error(`index ${index} out of range`);\n};\n\n/**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} reordered attributed string\n */\nconst reorderLine = attributedString => {\n var _attributedString$run;\n const levels = getBidiLevels$1(attributedString.runs);\n const direction = (_attributedString$run = attributedString.runs[0]) === null || _attributedString$run === void 0 ? void 0 : _attributedString$run.attributes.direction;\n const level = direction === 'rtl' ? 1 : 0;\n const end = length$1(attributedString) - 1;\n const paragraphs = [{\n start: 0,\n end,\n level\n }];\n const embeddingLevels = {\n paragraphs,\n levels\n };\n const segments = bidi$2.getReorderSegments(attributedString.string, embeddingLevels);\n\n // No need for bidi reordering\n if (segments.length === 0) return attributedString;\n const indices = getReorderedIndices(attributedString.string, segments);\n const updatedString = bidi$2.getReorderedString(attributedString.string, embeddingLevels);\n const updatedRuns = attributedString.runs.map(run => {\n const selectedIndices = indices.slice(run.start, run.end);\n const updatedGlyphs = [];\n const updatedPositions = [];\n const addedGlyphs = new Set();\n for (let i = 0; i < selectedIndices.length; i += 1) {\n const index = selectedIndices[i];\n const glyph = getItemAtIndex(attributedString.runs, 'glyphs', index);\n if (addedGlyphs.has(glyph.id)) continue;\n updatedGlyphs.push(glyph);\n updatedPositions.push(getItemAtIndex(attributedString.runs, 'positions', index));\n if (glyph.isLigature) {\n addedGlyphs.add(glyph.id);\n }\n }\n return {\n ...run,\n glyphs: updatedGlyphs,\n positions: updatedPositions\n };\n });\n return {\n ...attributedString,\n runs: updatedRuns,\n string: updatedString\n };\n};\n\n/**\n * Reorder a paragraph\n *\n * @param {AttributedString[]} lines\n * @returns {AttributedString[]} reordered lines\n */\nconst reorderParagraph = lines => lines.map(reorderLine);\n\n/**\n * Perform bidi reordering\n *\n * @returns {(paragraphs: AttributedString[][]) => AttributedString[][]} reordered paragraphs\n */\nconst bidiReordering = () => {\n /**\n * @param {AttributedString[][]} paragraphs line blocks\n * @returns {AttributedString[][]} reordered line blocks\n */\n return paragraphs => paragraphs.map(reorderParagraph);\n};\n\n/**\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\nconst DUMMY_CODEPOINT = 123;\n\n/**\n * Resolve string indices based on glyphs code points\n *\n * @param {Glyph[]} glyphs\n * @returns {number[]} glyph indices\n */\nconst resolve = function (glyphs) {\n if (glyphs === void 0) {\n glyphs = [];\n }\n return glyphs.reduce((acc, glyph) => {\n const codePoints = (glyph === null || glyph === void 0 ? void 0 : glyph.codePoints) || [DUMMY_CODEPOINT];\n if (acc.length === 0) return codePoints.map(() => 0);\n const last = acc[acc.length - 1];\n const next = codePoints.map(() => last + 1);\n return [...acc, ...next];\n }, []);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Position} Position\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * @param {Run} run\n * @returns {number}\n */\nconst getCharacterSpacing = run => {\n var _run$attributes;\n return ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : _run$attributes.characterSpacing) || 0;\n};\n\n/**\n * Scale run positions\n *\n * @param {Run} run\n * @param {Position[]} positions\n * @returns {Position[]} scaled positions\n */\nconst scalePositions = (run, positions) => {\n const runScale = scale(run);\n const characterSpacing = getCharacterSpacing(run);\n return positions.map((position, i) => {\n const isLast = i === positions.length;\n const xSpacing = isLast ? 0 : characterSpacing;\n return Object.assign({}, position, {\n xAdvance: position.xAdvance * runScale + xSpacing,\n yAdvance: position.yAdvance * runScale,\n xOffset: position.xOffset * runScale,\n yOffset: position.yOffset * runScale\n });\n });\n};\n\n/**\n * Create glyph run\n *\n * @param {string} string string\n */\nconst layoutRun = string => {\n /**\n * @param {Run} run run\n * @returns {Run} glyph run\n */\n return run => {\n const {\n start,\n end,\n attributes = {}\n } = run;\n const {\n font\n } = attributes;\n if (!font) return {\n ...run,\n glyphs: [],\n glyphIndices: [],\n positions: []\n };\n const runString = string.slice(start, end);\n\n // passing LTR To force fontkit to not reverse the string\n const glyphRun = font.layout(runString, undefined, undefined, undefined, 'ltr');\n const positions = scalePositions(run, glyphRun.positions);\n const glyphIndices = resolve(glyphRun.glyphs);\n return {\n ...run,\n positions,\n glyphIndices,\n glyphs: glyphRun.glyphs\n };\n };\n};\n\n/**\n * Generate glyphs for single attributed string\n */\nconst generateGlyphs = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string with glyphs\n */\n return attributedString => {\n const runs = attributedString.runs.map(layoutRun(attributedString.string));\n return Object.assign({}, attributedString, {\n runs\n });\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Resolves yOffset for run\n *\n * @param {Run} run run\n * @returns {Run} run\n */\nconst resolveRunYOffset = run => {\n var _run$attributes, _run$attributes$font, _run$attributes2;\n if (!run.positions) return run;\n const unitsPerEm = ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : (_run$attributes$font = _run$attributes.font) === null || _run$attributes$font === void 0 ? void 0 : _run$attributes$font.unitsPerEm) || 0;\n const yOffset = (((_run$attributes2 = run.attributes) === null || _run$attributes2 === void 0 ? void 0 : _run$attributes2.yOffset) || 0) * unitsPerEm;\n const positions = run.positions.map(p => Object.assign({}, p, {\n yOffset\n }));\n return Object.assign({}, run, {\n positions\n });\n};\n\n/**\n * Resolves yOffset for multiple paragraphs\n */\nconst resolveYOffset = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const runs = attributedString.runs.map(resolveRunYOffset);\n return Object.assign({}, attributedString, {\n runs\n });\n };\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Sort runs in ascending order\n *\n * @param {Run[]} runs\n * @returns {Run[]} sorted runs\n */\nconst sort = runs => {\n return runs.sort((a, b) => a.start - b.start || a.end - b.end);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Is run empty (start === end)\n *\n * @param {Run} run run\n * @returns {boolean} is run empty\n */\nconst isEmpty = run => {\n return run.start === run.end;\n};\n\n/**\n * @typedef {import('../types.js').Point} Point\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Sort points in ascending order\n * @param {Point} a first point\n * @param {Point} b second point\n * @returns {number} sort order\n */\nconst sortPoints = (a, b) => {\n return a[1] - b[1] || a[3] - b[3];\n};\n\n/**\n * @param {Run[]} runs\n * @returns {Point[]} points\n */\nconst generatePoints = runs => {\n const result = runs.reduce((acc, run, i) => {\n return acc.concat([['start', run.start, run.attributes, i], ['end', run.end, run.attributes, i]]);\n }, []);\n return result.sort(sortPoints);\n};\n\n/**\n * @param {Run[]} runs\n * @returns {Run} merged runs\n */\nconst mergeRuns = runs => {\n return runs.reduce((acc, run) => {\n const attributes = Object.assign({}, acc.attributes, run.attributes);\n return Object.assign({}, run, {\n attributes\n });\n }, {});\n};\n\n/**\n * @param {Run[]} runs\n * @returns {Run[][]} grouped runs\n */\nconst groupEmptyRuns = runs => {\n const groups = runs.reduce((acc, run) => {\n if (!acc[run.start]) acc[run.start] = [];\n acc[run.start].push(run);\n return acc;\n }, []);\n return Object.values(groups);\n};\n\n/**\n * @param {Run[]} runs\n * @returns {Run[]} flattened runs\n */\nconst flattenEmptyRuns = runs => {\n return groupEmptyRuns(runs).map(mergeRuns);\n};\n\n/**\n * @param {Run[]} runs\n * @returns {Run[]} flattened runs\n */\nconst flattenRegularRuns = runs => {\n const res = [];\n const points = generatePoints(runs);\n let start = -1;\n let attrs = {};\n const stack = [];\n for (let i = 0; i < points.length; i += 1) {\n const [type, offset, attributes] = points[i];\n if (start !== -1 && start < offset) {\n res.push({\n start,\n end: offset,\n attributes: attrs\n });\n }\n if (type === 'start') {\n stack.push(attributes);\n attrs = Object.assign({}, attrs, attributes);\n } else {\n attrs = {};\n for (let j = 0; j < stack.length; j += 1) {\n if (stack[j] === attributes) {\n // eslint-disable-next-line no-plusplus\n stack.splice(j--, 1);\n } else {\n attrs = Object.assign({}, attrs, stack[j]);\n }\n }\n }\n start = offset;\n }\n return res;\n};\n\n/**\n * Flatten many runs\n *\n * @param {Run[]} runs\n * @returns {Run[]} flattened runs\n */\nconst flatten = function (runs) {\n if (runs === void 0) {\n runs = [];\n }\n const emptyRuns = flattenEmptyRuns(runs.filter(run => isEmpty(run)));\n const regularRuns = flattenRegularRuns(runs.filter(run => !isEmpty(run)));\n return sort(emptyRuns.concat(regularRuns));\n};\n\n/**\n * Returns empty attributed string\n *\n * @returns {Object} empty attributed string\n */\nconst empty = () => ({\n string: '',\n runs: []\n});\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n *\n * @param {AttributedString} attributedString\n * @returns {AttributedString} attributed string without font\n */\nconst omitFont = attributedString => {\n const runs = attributedString.runs.map(run => omit('font', run));\n return Object.assign({}, attributedString, {\n runs\n });\n};\n\n/**\n * Performs font substitution and script itemization on attributed string\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n */\nconst preprocessRuns = (engines, options) => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} processed attributed string\n */\n return attributedString => {\n if (isNil(attributedString)) return empty();\n const {\n string\n } = attributedString;\n const {\n fontSubstitution,\n scriptItemizer,\n bidi\n } = engines;\n const {\n runs: omittedFontRuns\n } = omitFont(attributedString);\n const {\n runs: itemizationRuns\n } = scriptItemizer(options)(attributedString);\n const {\n runs: substitutedRuns\n } = fontSubstitution(options)(attributedString);\n const {\n runs: bidiRuns\n } = bidi(options)(attributedString);\n const runs = bidiRuns.concat(substitutedRuns).concat(itemizationRuns).concat(omittedFontRuns);\n return {\n string,\n runs: flatten(runs)\n };\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Breaks attributed string into paragraphs\n */\nconst splitParagraphs = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString[]} attributed string array\n */\n return attributedString => {\n const res = [];\n let start = 0;\n let breakPoint = attributedString.string.indexOf('\\n') + 1;\n while (breakPoint > 0) {\n res.push(slice(start, breakPoint, attributedString));\n start = breakPoint;\n breakPoint = attributedString.string.indexOf('\\n', breakPoint) + 1;\n }\n if (start === 0) {\n res.push(attributedString);\n } else if (start < attributedString.string.length) {\n res.push(slice(start, length$1(attributedString), attributedString));\n }\n return res;\n };\n};\n\n/**\n * @typedef {import('../types.js').Position} Position\n */\n\n/**\n * Return positions advance width\n *\n * @param {Position[]} positions positions\n * @returns {number} advance width\n */\nconst advanceWidth$2 = positions => {\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Return run advance width\n *\n * @param {Run} run run\n * @returns {number} advance width\n */\nconst advanceWidth$1 = run => {\n return advanceWidth$2(run.positions || []);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Returns attributed string advancewidth\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} advance width\n */\nconst advanceWidth = attributedString => {\n const reducer = (acc, run) => acc + advanceWidth$1(run);\n return attributedString.runs.reduce(reducer, 0);\n};\n\n/**\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\nconst WHITE_SPACES_CODE = 32;\n\n/**\n * Check if glyph is white space\n *\n * @param {Glyph} [glyph] glyph\n * @returns {boolean} whether glyph is white space\n * */\nconst isWhiteSpace = glyph => {\n const codePoints = (glyph === null || glyph === void 0 ? void 0 : glyph.codePoints) || [];\n return codePoints.includes(WHITE_SPACES_CODE);\n};\n\n/**\n * @typedef {import('../types.js').Position} Position\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get white space leading positions\n *\n * @param {Run} run run\n * @returns {Position[]} white space leading positions\n */\nconst leadingPositions = run => {\n const glyphs = run.glyphs || [];\n const positions = run.positions || [];\n const leadingWhitespaces = glyphs.findIndex(g => !isWhiteSpace(g));\n return positions.slice(0, leadingWhitespaces);\n};\n\n/**\n * Get run leading white space offset\n *\n * @param {Run} run run\n * @returns {number} leading white space offset\n */\nconst leadingOffset$1 = run => {\n const positions = leadingPositions(run);\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get attributed string leading white space offset\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} leading white space offset\n */\nconst leadingOffset = attributedString => {\n const runs = attributedString.runs || [];\n return leadingOffset$1(runs[0]);\n};\n\n/**\n * @typedef {import('../types.js').Position} Position\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * @template T\n * @param {T[]} array\n * @returns {T[]} reversed array\n */\nconst reverse = array => {\n return [...array].reverse();\n};\n\n/**\n * Get white space trailing positions\n *\n * @param {Run} run run\n * @returns {Position[]} white space trailing positions\n */\nconst trailingPositions = run => {\n const glyphs = reverse(run.glyphs || []);\n const positions = reverse(run.positions || []);\n const leadingWhitespaces = glyphs.findIndex(g => !isWhiteSpace(g));\n return positions.slice(0, leadingWhitespaces);\n};\n\n/**\n * Get run trailing white space offset\n *\n * @param {Run} run run\n * @returns {number} trailing white space offset\n */\nconst trailingOffset$1 = run => {\n const positions = trailingPositions(run);\n return positions.reduce((acc, pos) => acc + (pos.xAdvance || 0), 0);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get attributed string trailing white space offset\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} trailing white space offset\n */\nconst trailingOffset = attributedString => {\n const runs = attributedString.runs || [];\n return trailingOffset$1(last(runs));\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Drop last char of run\n *\n * @param {Run} run run\n * @returns {Run} run without last char\n */\nconst dropLast$1 = run => {\n return slice$1(0, run.end - run.start - 1, run);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Drop last glyph\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string with new glyph\n */\nconst dropLast = attributedString => {\n const string = dropLast$2(attributedString.string);\n const runs = adjust(-1, dropLast$1, attributedString.runs);\n return Object.assign({}, attributedString, {\n string,\n runs\n });\n};\n\nconst ALIGNMENT_FACTORS = {\n center: 0.5,\n right: 1\n};\n\n/**\n * Remove new line char at the end of line if present\n *\n * @param {Object} line\n * @returns {Object} line\n */\nconst removeNewLine = line => {\n return last(line.string) === '\\n' ? dropLast(line) : line;\n};\nconst getOverflowLeft = line => {\n return leadingOffset(line) + (line.overflowLeft || 0);\n};\nconst getOverflowRight = line => {\n return trailingOffset(line) + (line.overflowRight || 0);\n};\n\n/**\n * Ignore whitespace at the start and end of a line for alignment\n *\n * @param {Object} line\n * @returns {Object} line\n */\nconst adjustOverflow = line => {\n const overflowLeft = getOverflowLeft(line);\n const overflowRight = getOverflowRight(line);\n const x = line.box.x - overflowLeft;\n const width = line.box.width + overflowLeft + overflowRight;\n const box = Object.assign({}, line.box, {\n x,\n width\n });\n return Object.assign({}, line, {\n box,\n overflowLeft,\n overflowRight\n });\n};\n\n/**\n * Performs line justification by calling appropiate engine\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n * @param {string} align text align\n */\nconst justifyLine$1 = (engines, options, align) => {\n /**\n * @param {Object} line lint\n * @returns {Object} line\n */\n return line => {\n const lineWidth = advanceWidth(line);\n const alignFactor = ALIGNMENT_FACTORS[align] || 0;\n const remainingWidth = Math.max(0, line.box.width - lineWidth);\n const shouldJustify = align === 'justify' || lineWidth > line.box.width;\n const x = line.box.x + remainingWidth * alignFactor;\n const box = Object.assign({}, line.box, {\n x\n });\n const newLine = Object.assign({}, line, {\n box\n });\n return shouldJustify ? engines.justification(options)(newLine) : newLine;\n };\n};\nconst finalizeLine = line => {\n let lineAscent = 0;\n let lineDescent = 0;\n let lineHeight = 0;\n let lineXAdvance = 0;\n const runs = line.runs.map(run => {\n const height = height$1(run);\n const ascent = ascent$1(run);\n const descent$1 = descent(run);\n const xAdvance = advanceWidth$1(run);\n lineHeight = Math.max(lineHeight, height);\n lineAscent = Math.max(lineAscent, ascent);\n lineDescent = Math.max(lineDescent, descent$1);\n lineXAdvance += xAdvance;\n return Object.assign({}, run, {\n height,\n ascent,\n descent: descent$1,\n xAdvance\n });\n });\n return Object.assign({}, line, {\n runs,\n height: lineHeight,\n ascent: lineAscent,\n descent: lineDescent,\n xAdvance: lineXAdvance\n });\n};\n\n/**\n * Finalize line by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n */\nconst finalizeBlock = function (engines, options) {\n if (engines === void 0) {\n engines = {};\n }\n /**\n * @param {Object} line lint\n * @param {number} i line index\n * @param {Object[]} lines total lines\n * @returns {Object} line\n */\n return (line, i, lines) => {\n var _line$runs, _line$runs$;\n const isLastFragment = i === lines.length - 1;\n const style = ((_line$runs = line.runs) === null || _line$runs === void 0 ? void 0 : (_line$runs$ = _line$runs[0]) === null || _line$runs$ === void 0 ? void 0 : _line$runs$.attributes) || {};\n const align = isLastFragment ? style.alignLastLine : style.align;\n return compose(finalizeLine, engines.textDecoration(options), justifyLine$1(engines, options, align), adjustOverflow, removeNewLine)(line);\n };\n};\n\n/**\n * Finalize line block by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param {Object} engines engines\n * @param {Object} options layout options\n */\nconst finalizeFragments = (engines, options) => {\n /**\n * @param {Object[]} blocks line blocks\n * @returns {Object[]} blocks\n */\n return blocks => {\n const blockFinalizer = finalizeBlock(engines, options);\n return blocks.map(block => block.map(blockFinalizer));\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\nconst ATTACHMENT_CODE = 0xfffc; // 65532\n\nconst isReplaceGlyph = glyph => glyph.codePoints.includes(ATTACHMENT_CODE);\n\n/**\n * Resolve attachments of run\n *\n * @param {Object} run\n * @returns {Object} run\n */\nconst resolveRunAttachments = run => {\n var _run$attributes;\n if (!run.positions) return run;\n const glyphs = run.glyphs || [];\n const attachment = ((_run$attributes = run.attributes) === null || _run$attributes === void 0 ? void 0 : _run$attributes.attachment) || {};\n const positions = run.positions.map((position, i) => {\n const glyph = glyphs[i];\n if (attachment && attachment.width && isReplaceGlyph(glyph)) {\n return Object.assign({}, position, {\n xAdvance: attachment.width\n });\n }\n return Object.assign({}, position);\n });\n return Object.assign({}, run, {\n positions\n });\n};\n\n/**\n * Resolve attachments for multiple paragraphs\n */\nconst resolveAttachments = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const runs = attributedString.runs.map(resolveRunAttachments);\n return Object.assign({}, attributedString, {\n runs\n });\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Attributes} Attributes\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * @param {Attributes} a attributes\n * @returns {Attributes} attributes with defaults\n */\nconst applyAttributes = a => {\n return {\n align: a.align || (a.direction === 'rtl' ? 'right' : 'left'),\n alignLastLine: a.alignLastLine || (a.align === 'justify' ? 'left' : a.align || 'left'),\n attachment: a.attachment || null,\n backgroundColor: a.backgroundColor || null,\n bullet: a.bullet || null,\n characterSpacing: a.characterSpacing || 0,\n color: a.color || 'black',\n direction: a.direction || 'ltr',\n features: a.features || [],\n fill: a.fill !== false,\n font: a.font || null,\n fontSize: a.fontSize || 12,\n hangingPunctuation: a.hangingPunctuation || false,\n hyphenationFactor: a.hyphenationFactor || 0,\n indent: a.indent || 0,\n justificationFactor: a.justificationFactor || 1,\n lineHeight: a.lineHeight || null,\n lineSpacing: a.lineSpacing || 0,\n link: a.link || null,\n marginLeft: a.marginLeft || a.margin || 0,\n marginRight: a.marginRight || a.margin || 0,\n opacity: a.opacity,\n paddingTop: a.paddingTop || a.padding || 0,\n paragraphSpacing: a.paragraphSpacing || 0,\n script: a.script || null,\n shrinkFactor: a.shrinkFactor || 0,\n strike: a.strike || false,\n strikeColor: a.strikeColor || a.color || 'black',\n strikeStyle: a.strikeStyle || 'solid',\n stroke: a.stroke || false,\n underline: a.underline || false,\n underlineColor: a.underlineColor || a.color || 'black',\n underlineStyle: a.underlineStyle || 'solid',\n verticalAlign: a.verticalAlign || null,\n wordSpacing: a.wordSpacing || 0,\n yOffset: a.yOffset || 0\n };\n};\n\n/**\n * Apply default style to run\n *\n * @param {Run} run run\n * @returns {Run} run with styles\n */\nconst applyRunStyles = run => {\n const attributes = applyAttributes(run.attributes);\n return Object.assign({}, run, {\n attributes\n });\n};\n\n/**\n * Apply default attributes for an attributed string\n */\nconst applyDefaultStyles = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const string = attributedString.string || '';\n const runs = (attributedString.runs || []).map(applyRunStyles);\n return {\n string,\n runs\n };\n };\n};\n\n/* eslint-disable no-restricted-syntax */\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Apply scaling and yOffset for verticalAlign 'sub' and 'super'.\n */\nconst verticalAlignment = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n attributedString.runs.forEach(run => {\n const {\n attributes\n } = run;\n const {\n verticalAlign\n } = attributes;\n if (verticalAlign === 'sub') {\n attributes.yOffset = -0.2;\n } else if (verticalAlign === 'super') {\n attributes.yOffset = 0.4;\n }\n });\n return attributedString;\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Run} Run\n */\n\nconst bidi$1 = bidiFactory();\n\n/**\n * @param {Run[]} runs\n * @returns {number[]} bidi levels\n */\nconst getBidiLevels = runs => {\n return runs.reduce((acc, run) => {\n const length = run.end - run.start;\n const levels = repeat(run.attributes.bidiLevel, length);\n return acc.concat(levels);\n }, []);\n};\n\n/**\n * Perform bidi mirroring\n */\nconst mirrorString = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const levels = getBidiLevels(attributedString.runs);\n let updatedString = '';\n attributedString.string.split('').forEach((char, index) => {\n const isRTL = levels[index] % 2 === 1;\n const mirroredChar = isRTL ? bidi$1.getMirroredCharacter(attributedString.string.charAt(index)) : null;\n updatedString += mirroredChar || char;\n });\n return {\n ...attributedString,\n string: updatedString,\n levels\n };\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Rect} Rect\n */\n\n/**\n * A LayoutEngine is the main object that performs text layout.\n * It accepts an AttributedString and a Container object\n * to layout text into, and uses several helper objects to perform\n * various layout tasks. These objects can be overridden to customize\n * layout behavior.\n *\n * @param {Object} engines engines\n */\nconst layoutEngine = engines => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @param {Rect} container container rect\n * @param {Object} options layout options\n * @returns {Object[]} paragraph blocks\n */\n return function (attributedString, container, options) {\n if (options === void 0) {\n options = {};\n }\n const processParagraph = compose(resolveYOffset(), resolveAttachments(), verticalAlignment(), wrapWords(engines, options), generateGlyphs(), mirrorString(), preprocessRuns(engines, options));\n const processParagraphs = paragraphs => paragraphs.map(processParagraph);\n return compose(finalizeFragments(engines, options), bidiReordering(), typesetter(engines, options, container), processParagraphs, splitParagraphs(), applyDefaultStyles())(attributedString);\n };\n};\n\nconst bidi = bidiFactory();\n\n/**\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Object} attributed string\n */\nconst bidiEngine = () => attributedString => {\n var _attributedString$run;\n const {\n string\n } = attributedString;\n const direction = (_attributedString$run = attributedString.runs[0]) === null || _attributedString$run === void 0 ? void 0 : _attributedString$run.attributes.direction;\n const {\n levels\n } = bidi.getEmbeddingLevels(string, direction);\n let lastLevel = null;\n let lastIndex = 0;\n let index = 0;\n const res = [];\n for (let i = 0; i < levels.length; i += 1) {\n const level = levels[i];\n if (level !== lastLevel) {\n if (lastLevel !== null) {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n bidiLevel: lastLevel\n }\n });\n }\n lastIndex = index;\n lastLevel = level;\n }\n index += 1;\n }\n if (lastIndex < string.length) {\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n bidiLevel: lastLevel\n }\n });\n }\n return {\n string,\n runs: res\n };\n};\n\n/* eslint-disable no-plusplus */\nconst INFINITY = 10000;\n\n/**\n * @param {Object[]} subnodes\n * @param {number[]} widths\n * @param {number} lineNumber\n * @returns {number}\n */\nconst getNextBreakpoint = (subnodes, widths, lineNumber) => {\n let position = null;\n let minimumBadness = Infinity;\n const sum = {\n width: 0,\n stretch: 0,\n shrink: 0\n };\n const lineLength = widths[Math.min(lineNumber, widths.length - 1)];\n const calculateRatio = node => {\n if (sum.width < lineLength) {\n return sum.stretch - node.stretch > 0 ? (lineLength - sum.width) / sum.stretch : INFINITY;\n }\n if (sum.width > lineLength) {\n return sum.shrink - node.shrink > 0 ? (lineLength - sum.width) / sum.shrink : INFINITY;\n }\n return 0;\n };\n for (let i = 0; i < subnodes.length; i += 1) {\n const node = subnodes[i];\n if (node.type === 'box') {\n sum.width += node.width;\n } else if (node.type === 'glue') {\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n }\n if (sum.width - sum.shrink > lineLength) {\n if (position === null) {\n let j = i === 0 ? i + 1 : i;\n while (j < subnodes.length && (subnodes[j].type === 'glue' || subnodes[j].type === 'penalty')) {\n j++;\n }\n position = j - 1;\n }\n break;\n }\n if (node.type === 'penalty' || node.type === 'glue') {\n const ratio = calculateRatio(node);\n const penalty = node.type === 'penalty' ? node.penalty : 0;\n const badness = 100 * Math.abs(ratio) ** 3 + penalty;\n if (minimumBadness >= badness) {\n position = i;\n minimumBadness = badness;\n }\n }\n }\n return sum.width - sum.shrink > lineLength ? position : null;\n};\n\n/**\n * @param {Object[]} nodes\n * @param {number[]} widths\n */\nconst applyBestFit = (nodes, widths) => {\n let count = 0;\n let lineNumber = 0;\n let subnodes = nodes;\n const breakpoints = [{\n position: 0\n }];\n while (subnodes.length > 0) {\n const breakpoint = getNextBreakpoint(subnodes, widths, lineNumber);\n if (breakpoint !== null) {\n count += breakpoint;\n breakpoints.push({\n position: count\n });\n subnodes = subnodes.slice(breakpoint + 1, subnodes.length);\n count++;\n lineNumber++;\n } else {\n subnodes = [];\n }\n }\n return breakpoints;\n};\n\n/* eslint-disable no-param-reassign */\n/* eslint-disable max-classes-per-file */\nclass Node {\n constructor(data) {\n this.prev = null;\n this.next = null;\n this.data = data;\n }\n toString() {\n return this.data.toString();\n }\n}\nclass LinkedList {\n constructor() {\n this.head = null;\n this.tail = null;\n this.listSize = 0;\n this.listLength = 0;\n }\n isLinked(node) {\n return !(node && node.prev === null && node.next === null && this.tail !== node && this.head !== node || this.isEmpty());\n }\n size() {\n return this.listSize;\n }\n isEmpty() {\n return this.listSize === 0;\n }\n first() {\n return this.head;\n }\n last() {\n return this.last;\n }\n toString() {\n return this.toArray().toString();\n }\n toArray() {\n let node = this.head;\n const result = [];\n while (node !== null) {\n result.push(node);\n node = node.next;\n }\n return result;\n }\n forEach(fun) {\n let node = this.head;\n while (node !== null) {\n fun(node);\n node = node.next;\n }\n }\n contains(n) {\n let node = this.head;\n if (!this.isLinked(n)) {\n return false;\n }\n while (node !== null) {\n if (node === n) {\n return true;\n }\n node = node.next;\n }\n return false;\n }\n at(i) {\n let node = this.head;\n let index = 0;\n if (i >= this.listLength || i < 0) {\n return null;\n }\n while (node !== null) {\n if (i === index) {\n return node;\n }\n node = node.next;\n index += 1;\n }\n return null;\n }\n insertAfter(node, newNode) {\n if (!this.isLinked(node)) {\n return this;\n }\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next === null) {\n this.tail = newNode;\n } else {\n node.next.prev = newNode;\n }\n node.next = newNode;\n this.listSize += 1;\n return this;\n }\n insertBefore(node, newNode) {\n if (!this.isLinked(node)) {\n return this;\n }\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev === null) {\n this.head = newNode;\n } else {\n node.prev.next = newNode;\n }\n node.prev = newNode;\n this.listSize += 1;\n return this;\n }\n push(node) {\n if (this.head === null) {\n this.unshift(node);\n } else {\n this.insertAfter(this.tail, node);\n }\n return this;\n }\n unshift(node) {\n if (this.head === null) {\n this.head = node;\n this.tail = node;\n node.prev = null;\n node.next = null;\n this.listSize += 1;\n } else {\n this.insertBefore(this.head, node);\n }\n return this;\n }\n remove(node) {\n if (!this.isLinked(node)) {\n return this;\n }\n if (node.prev === null) {\n this.head = node.next;\n } else {\n node.prev.next = node.next;\n }\n if (node.next === null) {\n this.tail = node.prev;\n } else {\n node.next.prev = node.prev;\n }\n this.listSize -= 1;\n return this;\n }\n pop() {\n const node = this.tail;\n this.tail.prev.next = null;\n this.tail = this.tail.prev;\n this.listSize -= 1;\n node.prev = null;\n node.next = null;\n return node;\n }\n shift() {\n const node = this.head;\n this.head.next.prev = null;\n this.head = this.head.next;\n this.listSize -= 1;\n node.prev = null;\n node.next = null;\n return node;\n }\n}\nLinkedList.Node = Node;\n\n/* eslint-disable no-restricted-properties */\n\n/**\n * @param {Object[]} nodes\n * @param {number[]} lines\n * @param {Object} settings\n * @preserve Knuth and Plass line breaking algorithm in JavaScript\n *\n * Licensed under the new BSD License.\n * Copyright 2009-2010, Bram Stein\n * All rights reserved.\n */\nconst linebreak = (nodes, lines, settings) => {\n const options = {\n demerits: {\n line: settings && settings.demerits && settings.demerits.line || 10,\n flagged: settings && settings.demerits && settings.demerits.flagged || 100,\n fitness: settings && settings.demerits && settings.demerits.fitness || 3000\n },\n tolerance: settings && settings.tolerance || 3\n };\n const activeNodes = new LinkedList();\n const sum = {\n width: 0,\n stretch: 0,\n shrink: 0\n };\n const lineLengths = lines;\n const breaks = [];\n let tmp = {\n data: {\n demerits: Infinity\n }\n };\n function breakpoint(position, demerits, ratio, line, fitnessClass, totals, previous) {\n return {\n position,\n demerits,\n ratio,\n line,\n fitnessClass,\n totals: totals || {\n width: 0,\n stretch: 0,\n shrink: 0\n },\n previous\n };\n }\n function computeCost(start, end, active, currentLine) {\n let width = sum.width - active.totals.width;\n let stretch = 0;\n let shrink = 0;\n // If the current line index is within the list of linelengths, use it, otherwise use\n // the last line length of the list.\n const lineLength = currentLine < lineLengths.length ? lineLengths[currentLine - 1] : lineLengths[lineLengths.length - 1];\n if (nodes[end].type === 'penalty') {\n width += nodes[end].width;\n }\n if (width < lineLength) {\n // Calculate the stretch ratio\n stretch = sum.stretch - active.totals.stretch;\n if (stretch > 0) {\n return (lineLength - width) / stretch;\n }\n return linebreak.infinity;\n }\n if (width > lineLength) {\n // Calculate the shrink ratio\n shrink = sum.shrink - active.totals.shrink;\n if (shrink > 0) {\n return (lineLength - width) / shrink;\n }\n return linebreak.infinity;\n }\n\n // perfect match\n return 0;\n }\n\n // Add width, stretch and shrink values from the current\n // break point up to the next box or forced penalty.\n function computeSum(breakPointIndex) {\n const result = {\n width: sum.width,\n stretch: sum.stretch,\n shrink: sum.shrink\n };\n for (let i = breakPointIndex; i < nodes.length; i += 1) {\n if (nodes[i].type === 'glue') {\n result.width += nodes[i].width;\n result.stretch += nodes[i].stretch;\n result.shrink += nodes[i].shrink;\n } else if (nodes[i].type === 'box' || nodes[i].type === 'penalty' && nodes[i].penalty === -linebreak.infinity && i > breakPointIndex) {\n break;\n }\n }\n return result;\n }\n\n // The main loop of the algorithm\n // eslint-disable-next-line no-shadow\n function mainLoop(node, index, nodes) {\n let active = activeNodes.first();\n let next = null;\n let ratio = 0;\n let demerits = 0;\n /**\n * @type {Object[]}\n */\n let candidates = [];\n let badness;\n let currentLine = 0;\n let tmpSum;\n let currentClass = 0;\n let fitnessClass;\n /**\n * @type {Object}\n */\n let candidate;\n let newNode;\n\n // The inner loop iterates through all the active nodes with line < currentLine and then\n // breaks out to insert the new active node candidates before looking at the next active\n // nodes for the next lines. The result of this is that the active node list is always\n // sorted by line number.\n while (active !== null) {\n candidates = [{\n demerits: Infinity\n }, {\n demerits: Infinity\n }, {\n demerits: Infinity\n }, {\n demerits: Infinity\n }];\n\n // Iterate through the linked list of active nodes to find new potential active nodes\n // and deactivate current active nodes.\n while (active !== null) {\n next = active.next;\n currentLine = active.data.line + 1;\n ratio = computeCost(active.data.position, index, active.data, currentLine);\n\n // Deactive nodes when the distance between the current active node and the\n // current node becomes too large (i.e. it exceeds the stretch limit and the stretch\n // ratio becomes negative) or when the current node is a forced break (i.e. the end\n // of the paragraph when we want to remove all active nodes, but possibly have a final\n // candidate active node---if the paragraph can be set using the given tolerance value.)\n if (ratio < -1 || node.type === 'penalty' && node.penalty === -linebreak.infinity) {\n activeNodes.remove(active);\n }\n\n // If the ratio is within the valid range of -1 <= ratio <= tolerance calculate the\n // total demerits and record a candidate active node.\n if (ratio >= -1 && ratio <= options.tolerance) {\n badness = 100 * Math.pow(Math.abs(ratio), 3);\n\n // Positive penalty\n if (node.type === 'penalty' && node.penalty >= 0) {\n demerits = Math.pow(options.demerits.line + badness, 2) + Math.pow(node.penalty, 2);\n // Negative penalty but not a forced break\n } else if (node.type === 'penalty' && node.penalty !== -linebreak.infinity) {\n demerits = Math.pow(options.demerits.line + badness, 2) - Math.pow(node.penalty, 2);\n // All other cases\n } else {\n demerits = Math.pow(options.demerits.line + badness, 2);\n }\n if (node.type === 'penalty' && nodes[active.data.position].type === 'penalty') {\n demerits += options.demerits.flagged * node.flagged * nodes[active.data.position].flagged;\n }\n\n // Calculate the fitness class for this candidate active node.\n if (ratio < -0.5) {\n currentClass = 0;\n } else if (ratio <= 0.5) {\n currentClass = 1;\n } else if (ratio <= 1) {\n currentClass = 2;\n } else {\n currentClass = 3;\n }\n\n // Add a fitness penalty to the demerits if the fitness classes of two adjacent lines\n // differ too much.\n if (Math.abs(currentClass - active.data.fitnessClass) > 1) {\n demerits += options.demerits.fitness;\n }\n\n // Add the total demerits of the active node to get the total demerits of this candidate node.\n demerits += active.data.demerits;\n\n // Only store the best candidate for each fitness class\n if (demerits < candidates[currentClass].demerits) {\n candidates[currentClass] = {\n active,\n demerits,\n ratio\n };\n }\n }\n active = next;\n\n // Stop iterating through active nodes to insert new candidate active nodes in the active list\n // before moving on to the active nodes for the next line.\n // TODO: The Knuth and Plass paper suggests a conditional for currentLine < j0. This means paragraphs\n // with identical line lengths will not be sorted by line number. Find out if that is a desirable outcome.\n // For now I left this out, as it only adds minimal overhead to the algorithm and keeping the active node\n // list sorted has a higher priority.\n if (active !== null && active.data.line >= currentLine) {\n break;\n }\n }\n tmpSum = computeSum(index);\n for (fitnessClass = 0; fitnessClass < candidates.length; fitnessClass += 1) {\n candidate = candidates[fitnessClass];\n if (candidate.demerits < Infinity) {\n newNode = new LinkedList.Node(breakpoint(index, candidate.demerits, candidate.ratio, candidate.active.data.line + 1, fitnessClass, tmpSum, candidate.active));\n if (active !== null) {\n activeNodes.insertBefore(active, newNode);\n } else {\n activeNodes.push(newNode);\n }\n }\n }\n }\n }\n\n // Add an active node for the start of the paragraph.\n activeNodes.push(new LinkedList.Node(breakpoint(0, 0, 0, 0, 0, undefined, null)));\n\n // eslint-disable-next-line no-shadow\n nodes.forEach((node, index, nodes) => {\n if (node.type === 'box') {\n sum.width += node.width;\n } else if (node.type === 'glue') {\n if (index > 0 && nodes[index - 1].type === 'box') {\n mainLoop(node, index, nodes);\n }\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n } else if (node.type === 'penalty' && node.penalty !== linebreak.infinity) {\n mainLoop(node, index, nodes);\n }\n });\n if (activeNodes.size() !== 0) {\n // Find the best active node (the one with the least total demerits.)\n activeNodes.forEach(node => {\n if (node.data.demerits < tmp.data.demerits) {\n tmp = node;\n }\n });\n while (tmp !== null) {\n breaks.push({\n position: tmp.data.position,\n ratio: tmp.data.ratio\n });\n tmp = tmp.data.previous;\n }\n return breaks.reverse();\n }\n return [];\n};\nlinebreak.infinity = 10000;\nlinebreak.glue = (width, value, stretch, shrink) => ({\n type: 'glue',\n value,\n width,\n stretch,\n shrink\n});\nlinebreak.box = function (width, value, hyphenated) {\n if (hyphenated === void 0) {\n hyphenated = false;\n }\n return {\n type: 'box',\n width,\n value,\n hyphenated\n };\n};\nlinebreak.penalty = (width, penalty, flagged) => ({\n type: 'penalty',\n width,\n penalty,\n flagged\n});\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Add scalar to run\n *\n * @param {number} n scalar\n * @param {Run} run run\n * @returns {Run} added run\n */\nconst add = (n, run) => {\n const start = run.start + n;\n const end = run.end + n;\n return Object.assign({}, run, {\n start,\n end\n });\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Get run length\n *\n * @param {Run} run run\n * @returns {number} length\n */\nconst length = run => {\n return run.end - run.start;\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Concats two runs into one\n *\n * @param {Run} runA first run\n * @param {Run} runB second run\n * @returns {Run} concatenated run\n */\nconst concat = (runA, runB) => {\n const end = runA.end + length(runB);\n const glyphs = (runA.glyphs || []).concat(runB.glyphs || []);\n const positions = (runA.positions || []).concat(runB.positions || []);\n const attributes = Object.assign({}, runA.attributes, runB.attributes);\n const runAIndices = runA.glyphIndices || [];\n const runALastIndex = last(runAIndices) || 0;\n const runBIndices = (runB.glyphIndices || []).map(i => i + runALastIndex + 1);\n const glyphIndices = normalize(runAIndices.concat(runBIndices));\n return Object.assign({}, runA, {\n end,\n glyphs,\n positions,\n attributes,\n glyphIndices\n });\n};\n\n/**\n * @typedef {import('../types.js').Glyph} Glyph\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Insert glyph to run in the given index\n *\n * @param {number} index index\n * @param {Glyph} glyph glyph\n * @param {Run} run run\n * @returns {Run} run with glyph\n */\nconst insertGlyph$1 = (index, glyph, run) => {\n if (!glyph) return run;\n\n // Split resolves ligature splitting in case new glyph breaks some\n const leadingRun = slice$1(0, index, run);\n const trailingRun = slice$1(index, Infinity, run);\n return concat(append$1(glyph, leadingRun), trailingRun);\n};\n\n/**\n * Insert either glyph or code point to run in the given index\n *\n * @param {number} index index\n * @param {Glyph | number} value glyph or codePoint\n * @param {Run} run run\n * @returns {Run} run with glyph\n */\nconst insert = (index, value, run) => {\n const font = getFont(run);\n const glyph = isNumber(value) ? fromCodePoint(value, font) : value;\n return insertGlyph$1(index, glyph, run);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Get run index at char index\n *\n * @param {number} n char index\n * @param {AttributedString} string attributed string\n * @returns {number} run index\n */\nconst runIndexAt = (n, string) => {\n return runIndexAt$1(n, string.runs);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n * @typedef {import('../types.js').Glyph} Glyph\n */\n\n/**\n * Insert glyph into attributed string\n *\n * @param {number} index index\n * @param {Glyph} glyph glyph\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string with new glyph\n */\nconst insertGlyph = (index, glyph, attributedString) => {\n const runIndex = runIndexAt(index, attributedString);\n\n // Add glyph to the end if run index invalid\n if (runIndex === -1) return append(glyph, attributedString);\n const codePoints = (glyph === null || glyph === void 0 ? void 0 : glyph.codePoints) || [];\n const string = attributedString.string.slice(0, index) + stringFromCodePoints(codePoints) + attributedString.string.slice(index);\n const runs = attributedString.runs.map((run, i) => {\n if (i === runIndex) return insert(index - run.start, glyph, run);\n if (i > runIndex) return add(codePoints.length, run);\n return run;\n });\n return Object.assign({}, attributedString, {\n string,\n runs\n });\n};\n\n/**\n * @typedef {import('../types.js').Run} Run\n */\n\n/**\n * Advance width between two string indices\n *\n * @param {number} start glyph index\n * @param {number} end glyph index\n * @param {Run} run run\n * @returns {number} advanced width run\n */\nconst advanceWidthBetween$1 = (start, end, run) => {\n const runStart = run.start || 0;\n const glyphStartIndex = Math.max(0, glyphIndexAt(start - runStart, run));\n const glyphEndIndex = Math.max(0, glyphIndexAt(end - runStart, run));\n const positions = (run.positions || []).slice(glyphStartIndex, glyphEndIndex);\n return advanceWidth$2(positions);\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Advance width between start and end\n * Does not consider ligature splitting for the moment.\n * Check performance impact on supporting this\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {AttributedString} attributedString\n * @returns {number} advance width\n */\nconst advanceWidthBetween = (start, end, attributedString) => {\n const runs = filter(start, end, attributedString.runs);\n return runs.reduce((acc, run) => acc + advanceWidthBetween$1(start, end, run), 0);\n};\n\n/**\n * @typedef {import('../../types.js').AttributedString} AttributedString\n * @typedef {import('../../types.js').Attributes} Attributes\n */\n\nconst HYPHEN = 0x002d;\nconst TOLERANCE_STEPS = 5;\nconst TOLERANCE_LIMIT = 50;\nconst opts = {\n width: 3,\n stretch: 6,\n shrink: 9\n};\n\n/**\n * Slice attributed string to many lines\n *\n * @param {AttributedString} string attributed string\n * @param {Object[]} nodes\n * @param {Object[]} breaks\n * @returns {AttributedString[]} attributed strings\n */\nconst breakLines = (string, nodes, breaks) => {\n let start = 0;\n let end = null;\n const lines = breaks.reduce((acc, breakPoint) => {\n const node = nodes[breakPoint.position];\n const prevNode = nodes[breakPoint.position - 1];\n\n // Last breakpoint corresponds to K&P mandatory final glue\n if (breakPoint.position === nodes.length - 1) return acc;\n let line;\n if (node.type === 'penalty') {\n end = prevNode.value.end;\n line = slice(start, end, string);\n line = insertGlyph(line.length, HYPHEN, line);\n } else {\n end = node.value.end;\n line = slice(start, end, string);\n }\n start = end;\n return [...acc, line];\n }, []);\n\n // Last line\n lines.push(slice(start, string.string.length, string));\n return lines;\n};\n\n/**\n * Return Knuth & Plass nodes based on line and previously calculated syllables\n *\n * @param {AttributedString} attributedString attributed string\n * @param {Object} args attributed string args\n * @param {Object} options layout options\n * @returns {Object[]} attributed strings\n */\nconst getNodes = (attributedString, _ref, options) => {\n let {\n align\n } = _ref;\n let start = 0;\n const hyphenWidth = 5;\n const {\n syllables\n } = attributedString;\n const hyphenPenalty = options.hyphenationPenalty || (align === 'justify' ? 100 : 600);\n const result = syllables.reduce((acc, s, index) => {\n const width = advanceWidthBetween(start, start + s.length, attributedString);\n if (s.trim() === '') {\n const stretch = width * opts.width / opts.stretch;\n const shrink = width * opts.width / opts.shrink;\n const value = {\n start,\n end: start + s.length\n };\n acc.push(linebreak.glue(width, value, stretch, shrink));\n } else {\n const hyphenated = syllables[index + 1] !== ' ';\n const value = {\n start,\n end: start + s.length\n };\n acc.push(linebreak.box(width, value, hyphenated));\n if (syllables[index + 1] && hyphenated) {\n acc.push(linebreak.penalty(hyphenWidth, hyphenPenalty, 1));\n }\n }\n start += s.length;\n return acc;\n }, []);\n result.push(linebreak.glue(0, null, linebreak.infinity, 0));\n result.push(linebreak.penalty(0, -linebreak.infinity, 1));\n return result;\n};\n\n/**\n * @param {AttributedString} attributedString attributed string\n * @returns {Attributes} styles\n */\nconst getStyles = attributedString => {\n var _attributedString$run, _attributedString$run2;\n return ((_attributedString$run = attributedString.runs) === null || _attributedString$run === void 0 ? void 0 : (_attributedString$run2 = _attributedString$run[0]) === null || _attributedString$run2 === void 0 ? void 0 : _attributedString$run2.attributes) || {};\n};\n\n/**\n * Performs Knuth & Plass line breaking algorithm\n * Fallbacks to best fit algorithm if latter not successful\n *\n * @param {Object} options layout options\n */\nconst linebreaker = options => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @param {number[]} availableWidths available widths\n * @returns {AttributedString[]} attributed strings\n */\n return (attributedString, availableWidths) => {\n let tolerance = options.tolerance || 4;\n const style = getStyles(attributedString);\n const nodes = getNodes(attributedString, style, options);\n\n /** @type {Object[]} */\n let breaks = linebreak(nodes, availableWidths, {\n tolerance\n });\n\n // Try again with a higher tolerance if the line breaking failed.\n while (breaks.length === 0 && tolerance < TOLERANCE_LIMIT) {\n tolerance += TOLERANCE_STEPS;\n breaks = linebreak(nodes, availableWidths, {\n tolerance\n });\n }\n if (breaks.length === 0 || breaks.length === 1 && breaks[0].position === 0) {\n breaks = applyBestFit(nodes, availableWidths);\n }\n return breakLines(attributedString, nodes, breaks.slice(1));\n };\n};\n\nconst WHITESPACE_PRIORITY = 1;\nconst LETTER_PRIORITY = 2;\nconst EXPAND_WHITESPACE_FACTOR = {\n before: 0.5,\n after: 0.5,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false\n};\nconst EXPAND_CHAR_FACTOR = {\n before: 0.14453125,\n // 37/256\n after: 0.14453125,\n priority: LETTER_PRIORITY,\n unconstrained: false\n};\nconst SHRINK_WHITESPACE_FACTOR = {\n before: -0.04296875,\n // -11/256\n after: -0.04296875,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false\n};\nconst SHRINK_CHAR_FACTOR = {\n before: -0.04296875,\n after: -0.04296875,\n priority: LETTER_PRIORITY,\n unconstrained: false\n};\nconst getCharFactor = (direction, options) => {\n const expandCharFactor = options.expandCharFactor || {};\n const shrinkCharFactor = options.shrinkCharFactor || {};\n return direction === 'GROW' ? Object.assign({}, EXPAND_CHAR_FACTOR, expandCharFactor) : Object.assign({}, SHRINK_CHAR_FACTOR, shrinkCharFactor);\n};\nconst getWhitespaceFactor = (direction, options) => {\n const expandWhitespaceFactor = options.expandWhitespaceFactor || {};\n const shrinkWhitespaceFactor = options.shrinkWhitespaceFactor || {};\n return direction === 'GROW' ? Object.assign({}, EXPAND_WHITESPACE_FACTOR, expandWhitespaceFactor) : Object.assign({}, SHRINK_WHITESPACE_FACTOR, shrinkWhitespaceFactor);\n};\nconst factor = (direction, options) => glyphs => {\n const charFactor = getCharFactor(direction, options);\n const whitespaceFactor = getWhitespaceFactor(direction, options);\n const factors = [];\n for (let index = 0; index < glyphs.length; index += 1) {\n let f;\n const glyph = glyphs[index];\n if (isWhiteSpace(glyph)) {\n f = Object.assign({}, whitespaceFactor);\n if (index === glyphs.length - 1) {\n f.before = 0;\n if (index > 0) {\n factors[index - 1].after = 0;\n }\n }\n } else if (glyph.isMark && index > 0) {\n f = Object.assign({}, factors[index - 1]);\n f.before = 0;\n factors[index - 1].after = 0;\n } else {\n f = Object.assign({}, charFactor);\n }\n factors.push(f);\n }\n return factors;\n};\nconst getFactors = (gap, line, options) => {\n const direction = gap > 0 ? 'GROW' : 'SHRINK';\n const getFactor = factor(direction, options);\n const factors = line.runs.reduce((acc, run) => {\n return acc.concat(getFactor(run.glyphs));\n }, []);\n factors[0].before = 0;\n factors[factors.length - 1].after = 0;\n return factors;\n};\n\n/* eslint-disable no-multi-assign */\nconst KASHIDA_PRIORITY = 0;\nconst NULL_PRIORITY = 3;\nconst getDistances = (gap, factors) => {\n let total = 0;\n const priorities = [];\n const unconstrained = [];\n for (let priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {\n priorities[priority] = unconstrained[priority] = 0;\n }\n\n // sum the factors at each priority\n for (let j = 0; j < factors.length; j += 1) {\n const f = factors[j];\n const sum = f.before + f.after;\n total += sum;\n priorities[f.priority] += sum;\n if (f.unconstrained) {\n unconstrained[f.priority] += sum;\n }\n }\n\n // choose the priorities that need to be applied\n let highestPriority = -1;\n let highestPrioritySum = 0;\n let remainingGap = gap;\n let priority;\n for (priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {\n const prioritySum = priorities[priority];\n if (prioritySum !== 0) {\n if (highestPriority === -1) {\n highestPriority = priority;\n highestPrioritySum = prioritySum;\n }\n\n // if this priority covers the remaining gap, we're done\n if (Math.abs(remainingGap) <= Math.abs(prioritySum)) {\n priorities[priority] = remainingGap / prioritySum;\n unconstrained[priority] = 0;\n remainingGap = 0;\n break;\n }\n\n // mark that we need to use 100% of the adjustment from\n // this priority, and subtract the space that it consumes\n priorities[priority] = 1;\n remainingGap -= prioritySum;\n\n // if this priority has unconstrained glyphs, let them consume the remaining space\n if (unconstrained[priority] !== 0) {\n unconstrained[priority] = remainingGap / unconstrained[priority];\n remainingGap = 0;\n break;\n }\n }\n }\n\n // zero out remaining priorities (if any)\n for (let p = priority + 1; p <= NULL_PRIORITY; p += 1) {\n priorities[p] = 0;\n unconstrained[p] = 0;\n }\n\n // if there is still space left over, assign it to the highest priority that we saw.\n // this violates their factors, but it only happens in extreme cases\n if (remainingGap > 0 && highestPriority > -1) {\n priorities[highestPriority] = (highestPrioritySum + (gap - total)) / highestPrioritySum;\n }\n\n // create and return an array of distances to add to each glyph's advance\n const distances = [];\n for (let index = 0; index < factors.length; index += 1) {\n // the distance to add to this glyph is the sum of the space to add\n // after this glyph, and the space to add before the next glyph\n const f = factors[index];\n const next = factors[index + 1];\n let dist = f.after * priorities[f.priority];\n if (next) {\n dist += next.before * priorities[next.priority];\n }\n\n // if this glyph is unconstrained, add the unconstrained distance as well\n if (f.unconstrained) {\n dist += f.after * unconstrained[f.priority];\n if (next) {\n dist += next.before * unconstrained[next.priority];\n }\n }\n distances.push(dist);\n }\n return distances;\n};\n\n/* eslint-disable consistent-return */\n/* eslint-disable no-plusplus */\n/* eslint-disable no-restricted-syntax */\n\n\n/**\n * Adjust run positions by given distances\n *\n * @param {number[]} distances\n * @param {Object} line\n * @returns {Object} line\n */\nconst justifyLine = (distances, line) => {\n let index = 0;\n for (const run of line.runs) {\n for (const position of run.positions) {\n position.xAdvance += distances[index++];\n }\n }\n return line;\n};\n\n/**\n * A JustificationEngine is used by a Typesetter to perform line fragment\n * justification. This implementation is based on a description of Apple's\n * justification algorithm from a PDF in the Apple Font Tools package.\n *\n * // TODO: Make it immutable\n *\n * @param {Object} options layout options\n */\nconst justification = options => {\n /**\n * @param {Object} line\n * @returns {Object} line\n */\n return line => {\n const gap = line.box.width - advanceWidth(line);\n if (gap === 0) return; // Exact fit\n\n const factors = getFactors(gap, line, options);\n const distances = getDistances(gap, factors);\n return justifyLine(distances, line);\n };\n};\n\n/**\n * @typedef {import('../types.js').AttributedString} AttributedString\n */\n\n/**\n * Returns attributed string ascent\n *\n * @param {AttributedString} attributedString attributed string\n * @returns {number} ascent\n */\nconst ascent = attributedString => {\n const reducer = (acc, run) => Math.max(acc, ascent$1(run));\n return attributedString.runs.reduce(reducer, 0);\n};\n\n/* eslint-disable no-param-reassign */\n\n\n// The base font size used for calculating underline thickness.\nconst BASE_FONT_SIZE = 12;\n\n/**\n * A TextDecorationEngine is used by a Typesetter to generate\n * DecorationLines for a line fragment, including underlines\n * and strikes.\n */\nconst textDecoration = () => lineFragment => {\n let x = lineFragment.overflowLeft || 0;\n const overflowRight = lineFragment.overflowRight || 0;\n const maxX = advanceWidth(lineFragment) - overflowRight;\n lineFragment.decorationLines = [];\n for (let i = 0; i < lineFragment.runs.length; i += 1) {\n const run = lineFragment.runs[i];\n const width = Math.min(maxX - x, advanceWidth$1(run));\n const thickness = Math.max(0.5, Math.floor(run.attributes.fontSize / BASE_FONT_SIZE));\n if (run.attributes.underline) {\n const rect = {\n x,\n y: ascent(lineFragment) + thickness * 2,\n width,\n height: thickness\n };\n const line = {\n rect,\n opacity: run.attributes.opacity,\n color: run.attributes.underlineColor || 'black',\n style: run.attributes.underlineStyle || 'solid'\n };\n lineFragment.decorationLines.push(line);\n }\n if (run.attributes.strike) {\n const y = ascent(lineFragment) - ascent$1(run) / 3;\n const rect = {\n x,\n y,\n width,\n height: thickness\n };\n const line = {\n rect,\n opacity: run.attributes.opacity,\n color: run.attributes.strikeColor || 'black',\n style: run.attributes.strikeStyle || 'solid'\n };\n lineFragment.decorationLines.push(line);\n }\n x += width;\n }\n return lineFragment;\n};\n\nconst ignoredScripts = ['Common', 'Inherited', 'Unknown'];\n\n/**\n * @typedef {import('../../types.js').AttributedString} AttributedString\n */\n\n/**\n * Resolves unicode script in runs, grouping equal runs together\n */\nconst scriptItemizer = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const {\n string\n } = attributedString;\n let lastScript = 'Unknown';\n let lastIndex = 0;\n let index = 0;\n const res = [];\n if (!string) return empty();\n for (let i = 0; i < string.length; i += 1) {\n const char = string[i];\n const codePoint = char.codePointAt();\n const script = unicode.getScript(codePoint);\n if (script !== lastScript && !ignoredScripts.includes(script)) {\n if (lastScript !== 'Unknown') {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n script: lastScript\n }\n });\n }\n lastIndex = index;\n lastScript = script;\n }\n index += char.length;\n }\n if (lastIndex < string.length) {\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n script: lastScript\n }\n });\n }\n return {\n string,\n runs: res\n };\n };\n};\n\nconst SOFT_HYPHEN = '\\u00ad';\nconst hyphenator = hyphen(pattern);\n\n/**\n * @param {string} word\n * @returns {string[]} word parts\n */\nconst splitHyphen = word => {\n return word.split(SOFT_HYPHEN);\n};\nconst cache = {};\n\n/**\n * @param {string} word\n * @returns {string[]} word parts\n */\nconst getParts = word => {\n const base = word.includes(SOFT_HYPHEN) ? word : hyphenator(word);\n return splitHyphen(base);\n};\nconst wordHyphenation = () => {\n /**\n * @param {string} word word\n * @returns {string[]} word parts\n */\n return word => {\n const cacheKey = `_${word}`;\n if (isNil(word)) return [];\n if (cache[cacheKey]) return cache[cacheKey];\n cache[cacheKey] = getParts(word);\n return cache[cacheKey];\n };\n};\n\n/* eslint-disable no-restricted-syntax */\n\n\n/**\n * @typedef {import('../../types.js').AttributedString} AttributedString\n * @typedef {import('../../types.js').Run} Run\n */\n\n/**\n * @param {Run} run run\n * @returns {number}\n */\nconst getFontSize = run => {\n return run.attributes.fontSize || 12;\n};\n\n/**\n * Resolve font runs in an AttributedString, grouping equal\n * runs and performing font substitution where necessary.\n */\nconst fontSubstitution = () => {\n /**\n * @param {AttributedString} attributedString attributed string\n * @returns {AttributedString} attributed string\n */\n return attributedString => {\n const {\n string,\n runs\n } = attributedString;\n let lastFont = null;\n let lastIndex = 0;\n let index = 0;\n const res = [];\n if (!string) return empty();\n for (const run of runs) {\n const fontSize = getFontSize(run);\n const defaultFont = run.attributes.font;\n if (string.length === 0) {\n res.push({\n start: 0,\n end: 0,\n attributes: {\n font: defaultFont\n }\n });\n break;\n }\n for (const char of string.slice(run.start, run.end)) {\n const font = defaultFont;\n if (font !== lastFont) {\n if (lastFont) {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n font: lastFont,\n scale: lastFont ? fontSize / lastFont.unitsPerEm : 0\n }\n });\n }\n lastFont = font;\n lastIndex = index;\n }\n index += char.length;\n }\n }\n if (lastIndex < string.length) {\n const fontSize = getFontSize(last(runs));\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n font: lastFont,\n scale: lastFont ? fontSize / lastFont.unitsPerEm : 0\n }\n });\n }\n return {\n string,\n runs: res\n };\n };\n};\n\nexport { bidiEngine as bidi, layoutEngine as default, fontSubstitution, justification, linebreaker, scriptItemizer, textDecoration, wordHyphenation };\n","\nvar loadYoga = (() => {\n var _scriptDir = import.meta.url;\n \n return (\nfunction(loadYoga) {\n loadYoga = loadYoga || {};\n\n\nvar h;h||(h=typeof loadYoga !== 'undefined' ? loadYoga : {});var aa,ca;h.ready=new Promise(function(a,b){aa=a;ca=b});var da=Object.assign({},h),q=\"\";\"undefined\"!=typeof document&&document.currentScript&&(q=document.currentScript.src);_scriptDir&&(q=_scriptDir);0!==q.indexOf(\"blob:\")?q=q.substr(0,q.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):q=\"\";var ea=h.print||console.log.bind(console),v=h.printErr||console.warn.bind(console);Object.assign(h,da);da=null;var w;h.wasmBinary&&(w=h.wasmBinary);\nvar noExitRuntime=h.noExitRuntime||!0;\"object\"!=typeof WebAssembly&&x(\"no native wasm support detected\");var fa,ha=!1;function z(a,b,c){c=b+c;for(var d=\"\";!(b>=c);){var e=a[b++];if(!e)break;if(e&128){var f=a[b++]&63;if(192==(e&224))d+=String.fromCharCode((e&31)<<6|f);else{var g=a[b++]&63;e=224==(e&240)?(e&15)<<12|f<<6|g:(e&7)<<18|f<<12|g<<6|a[b++]&63;65536>e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}\nvar ia,ja,A,C,ka,D,E,la,ma;function na(){var a=fa.buffer;ia=a;h.HEAP8=ja=new Int8Array(a);h.HEAP16=C=new Int16Array(a);h.HEAP32=D=new Int32Array(a);h.HEAPU8=A=new Uint8Array(a);h.HEAPU16=ka=new Uint16Array(a);h.HEAPU32=E=new Uint32Array(a);h.HEAPF32=la=new Float32Array(a);h.HEAPF64=ma=new Float64Array(a)}var oa,pa=[],qa=[],ra=[];function sa(){var a=h.preRun.shift();pa.unshift(a)}var F=0,ta=null,G=null;\nfunction x(a){if(h.onAbort)h.onAbort(a);a=\"Aborted(\"+a+\")\";v(a);ha=!0;a=new WebAssembly.RuntimeError(a+\". Build with -sASSERTIONS for more info.\");ca(a);throw a;}function ua(a){return a.startsWith(\"data:application/octet-stream;base64,\")}var H;H=\"data:application/octet-stream;base64,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KgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALcAyIADQALCyADQRBqJAALHAAgACABQQggAqcgAkIgiKcgA6cgA0IgiKcQFQsFABBQAAvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akHEAGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALcAyIADQALCyADQRBqJAALOQAgAEUEQEEADwsCfyABQYB/cUGAvwNGIAFB/wBNckUEQEHIO0EZNgIAQX8MAQsgACABOgAAQQELC8QCAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgAKCwwKCwIDBAUMCwwMCgsHCAkLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LAAsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsACyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAErAwA5AwAPCyAAIAIgAxECAAsPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAPCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAPCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwALXQEEfyAAKAIAIQIDQCACLAAAIgMQTwRAQX8hBCAAIAJBAWoiAjYCACABQcyZs+YATQR/QX8gA0EwayIDIAFBCmwiBGogAyAEQf////8Hc0obBSAECyEBDAELCyABC6oUAhJ/AX4jAEHQAGsiCCQAIAggATYCTCAIQTdq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AkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAFNwMIIAgpAwhCBIYgCCkDACIDQjyIhCECIAgpAxAgCCkDGIRCAFKtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgCEEgaiQAIAkgAiAGQoCAgICAgICAgH+DhL85AwALmRgDEn8BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASERQZkJIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEUGcCSETDAELQZ8JQZoJIARBAXEiERshEyARRSEVCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiARQQNqIgMgBEH//3txECsgACATIBEQKSAAQd0VQbIeIAVBIHEiBRtBtxpBth4gBRsgASABYhtBAxApIABBICACIAMgBEGAwABzECsgAyACIAIgA0gbIQoMAQsgDEEQaiESAkACfwJAIAEgDEEsahCDASIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVB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NwMIIAALDABBMBAeQQBBMBAwCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRGwALBQBBijsLIQAgACABKAIAIAEgASwAC0EASBtBhzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFBqCc2AgAgAQsFAEGHOwsFAEGEOwshACAAIAEoAgAgASABLAALQQBIG0HwOiACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBAsGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQKAsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQbAmNgIAIAELBQBB8DoLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQew6Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHQA2ogAC0AhANBA3FBAkYNAhogAEHIA2oMAgsgAEHIA2ogAC0AhANBA3FBAkYNARogAEHQA2oMAQsgACABQf8BcUECdGpByANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQa4lIAIQLhAnAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBwANqIAAtAIQDQQNxQQJGDQIaIABBuANqDAILIABBuANqIAAtAIQDQQNxQQJGDQEaIABBwANqDAEL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IAMQUwsgAEGYAWogAUGYAWpByAIQLBogACgC4AMiAwRAIAAgAzYC5AMgAxAoCyAAIAEoAuADNgLgAyAAIAEoAuQDNgLkAyAAIAEoAugDNgLoAyABQQA2AugDIAFCADcC4AMgACABKQL0AzcC9AMgACABKQLsAzcC7AMgACABKAL8AzYC/AMgASgClAEhACABQQA2ApQBIAAEQCAAEFMLIAJBoARqJAAPCyACQcYcNgIQIABBBUGuJSACQRBqEC4QJwALIAJB5hE2AgAgAEEFQa4lIAIQLhAnAAsLtyYiAEGACAvZHU9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRNYXJnaW5BdXRvAHNldFdpZHRoQXV0bwBTY2FsZSBmYWN0b3Igc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gemVybwBzZXRBc3BlY3RSYXRpbwBnZXRBc3BlY3RSYXRpbwBzZXRQb3NpdGlvbgBnZXRQb3NpdGlvbgBub3RpZnlPbkRlc3RydWN0aW9uAHNldEZsZXhEaXJlY3Rpb24AZ2V0RmxleERpcmVjdGlvbgBzZXREaXJlY3Rpb24AZ2V0RGlyZWN0aW9uAHNldE1hcmdpbgBnZXRNYXJnaW4AZ2V0Q29tcHV0ZWRNYXJnaW4AbWFya0xheW91dFNlZW4AbmFuAGJvdHRvbQBnZXRDb21wdXRlZEJvdHRvbQBib29sAGVtc2NyaXB0ZW46OnZhbABzZXRGbGV4U2hyaW5rAGdldEZsZXhTaHJpbmsAc2V0QWx3YXlzRm9ybXNDb250YWluaW5nQmxvY2sATWVhc3VyZUNhbGxiYWNrAERpcnRpZWRDYWxsYmFjawBnZXRMZW5ndGgAd2lkdGgAc2V0TWF4V2lkdGgAZ2V0TWF4V2lkdGgAc2V0V2lkdGgAZ2V0V2lkdGgAc2V0TWluV2lkdGgAZ2V0TWluV2lkdGgAZ2V0Q29tcHV0ZWRXaWR0aABwdXNoAC9ob21lL3J1bm5lci93b3JrL3lvZ2EveW9nYS9qYXZhc2NyaXB0Ly4uL3lvZ2Evc3R5bGUvU21hbGxWYWx1ZUJ1ZmZlci5oAC9ob21lL3J1bm5lci93b3JrL3lvZ2EveW9nYS9qYXZhc2NyaXB0Ly4uL3lvZ2Evc3R5bGUvU3R5bGVWYWx1ZVBvb2wuaAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2ln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\";if(!ua(H)){var va=H;H=h.locateFile?h.locateFile(va,q):q+va}\nfunction wa(){var a=H;try{if(a==H&&w)return new Uint8Array(w);if(ua(a))try{var b=xa(a.slice(37)),c=new Uint8Array(b.length);for(a=0;a=b?\"_\"+a:a}\nfunction Ba(a,b){a=Aa(a);return function(){return b.apply(this,arguments)}}var J=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a){var b=Error,c=Ba(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+\"\\n\"+d.replace(/^Error(:[^\\n]*)?\\n/,\"\"))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+\": \"+this.message};return c}var K=void 0;\nfunction L(a){throw new K(a);}var M=a=>{a||L(\"Cannot use deleted val. handle = \"+a);return J[a].value},Ea=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Ca.length?Ca.pop():J.length;J[b]={ga:1,value:a};return b}},Fa=void 0,Ga=void 0;function N(a){for(var b=\"\";A[a];)b+=Ga[A[a++]];return b}var O=[];function Ha(){for(;O.length;){var a=O.pop();a.M.$=!1;a[\"delete\"]()}}var P=void 0,Q={};\nfunction Ia(a,b){for(void 0===b&&L(\"ptr should not be undefined\");a.R;)b=a.ba(b),a=a.R;return b}var R={};function Ja(a){a=Ka(a);var b=N(a);S(a);return b}function La(a,b){var c=R[a];void 0===c&&L(b+\" has unknown type \"+Ja(a));return c}function Ma(){}var Na=!1;function Oa(a){--a.count.value;0===a.count.value&&(a.T?a.U.W(a.T):a.P.N.W(a.O))}function Pa(a,b,c){if(b===c)return a;if(void 0===c.R)return null;a=Pa(a,b,c.R);return null===a?null:c.na(a)}var Qa={};function Ra(a,b){b=Ia(a,b);return Q[b]}\nvar Sa=void 0;function Ta(a){throw new Sa(a);}function Ua(a,b){b.P&&b.O||Ta(\"makeClassHandle requires ptr and ptrType\");!!b.U!==!!b.T&&Ta(\"Both smartPtrType and smartPtr must be specified\");b.count={value:1};return T(Object.create(a,{M:{value:b}}))}function T(a){if(\"undefined\"===typeof FinalizationRegistry)return T=b=>b,a;Na=new FinalizationRegistry(b=>{Oa(b.M)});T=b=>{var c=b.M;c.T&&Na.register(b,{M:c},b);return b};Ma=b=>{Na.unregister(b)};return T(a)}var Va={};\nfunction Wa(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Xa(a){return this.fromWireType(D[a>>2])}var U={},Ya={};function V(a,b,c){function d(k){k=c(k);k.length!==a.length&&Ta(\"Mismatched type converter count\");for(var m=0;m{R.hasOwnProperty(k)?e[m]=R[k]:(f.push(k),U.hasOwnProperty(k)||(U[k]=[]),U[k].push(()=>{e[m]=R[k];++g;g===f.length&&d(e)}))});0===f.length&&d(e)}\nfunction Za(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+a);}}\nfunction W(a,b,c={}){if(!(\"argPackAdvance\"in b))throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");var d=b.name;a||L('type \"'+d+'\" must have a positive integer typeid pointer');if(R.hasOwnProperty(a)){if(c.ua)return;L(\"Cannot register type '\"+d+\"' twice\")}R[a]=b;delete Ya[a];U.hasOwnProperty(a)&&(b=U[a],delete U[a],b.forEach(e=>e()))}function $a(a){L(a.M.P.N.name+\" instance already deleted\")}function X(){}\nfunction ab(a,b,c){if(void 0===a[b].S){var d=a[b];a[b]=function(){a[b].S.hasOwnProperty(arguments.length)||L(\"Function '\"+c+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+a[b].S+\")!\");return a[b].S[arguments.length].apply(this,arguments)};a[b].S=[];a[b].S[d.Z]=d}}\nfunction bb(a,b){h.hasOwnProperty(a)?(L(\"Cannot register public name '\"+a+\"' twice\"),ab(h,a,a),h.hasOwnProperty(void 0)&&L(\"Cannot register multiple overloads of a function with the same number of arguments (undefined)!\"),h[a].S[void 0]=b):h[a]=b}function cb(a,b,c,d,e,f,g,k){this.name=a;this.constructor=b;this.X=c;this.W=d;this.R=e;this.pa=f;this.ba=g;this.na=k;this.ja=[]}\nfunction db(a,b,c){for(;b!==c;)b.ba||L(\"Expected null or instance of \"+c.name+\", got an instance of \"+b.name),a=b.ba(a),b=b.R;return a}function eb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction gb(a,b){if(null===b){this.ea&&L(\"null is not a valid \"+this.name);if(this.da){var c=this.fa();null!==a&&a.push(this.W,c);return c}return 0}b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);!this.ca&&b.M.P.ca&&L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);c=db(b.M.O,b.M.P.N,this.N);if(this.da)switch(void 0===b.M.T&&L(\"Passing raw pointer to smart pointer is illegal\"),\nthis.Ba){case 0:b.M.U===this?c=b.M.T:L(\"Cannot convert argument of type \"+(b.M.U?b.M.U.name:b.M.P.name)+\" to parameter type \"+this.name);break;case 1:c=b.M.T;break;case 2:if(b.M.U===this)c=b.M.T;else{var d=b.clone();c=this.xa(c,Ea(function(){d[\"delete\"]()}));null!==a&&a.push(this.W,c)}break;default:L(\"Unsupporting sharing policy\")}return c}\nfunction hb(a,b){if(null===b)return this.ea&&L(\"null is not a valid \"+this.name),0;b.M||L('Cannot pass \"'+fb(b)+'\" as a '+this.name);b.M.O||L(\"Cannot pass deleted object as a pointer of type \"+this.name);b.M.P.ca&&L(\"Cannot convert argument of type \"+b.M.P.name+\" to parameter type \"+this.name);return db(b.M.O,b.M.P.N,this.N)}\nfunction Y(a,b,c,d){this.name=a;this.N=b;this.ea=c;this.ca=d;this.da=!1;this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0;void 0!==b.R?this.toWireType=gb:(this.toWireType=d?eb:hb,this.V=null)}function ib(a,b){h.hasOwnProperty(a)||Ta(\"Replacing nonexistant public symbol\");h[a]=b;h[a].Z=void 0}\nfunction jb(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes(\"j\")){var d=h[\"dynCall_\"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=oa.get(b).apply(null,c);return d}}function Z(a,b){a=N(a);var c=a.includes(\"j\")?jb(a,b):oa.get(b);\"function\"!=typeof c&&L(\"unknown function pointer with signature \"+a+\": \"+b);return c}var mb=void 0;\nfunction nb(a,b){function c(f){e[f]||R[f]||(Ya[f]?Ya[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new mb(a+\": \"+d.map(Ja).join([\", \"]));}\nfunction ob(a,b,c,d,e){var f=b.length;2>f&&L(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");var g=null!==b[1]&&null!==c,k=!1;for(c=1;c>2]);return c}function qb(a){4>2])};case 3:return function(c){return this.fromWireType(ma[c>>3])};default:throw new TypeError(\"Unknown float type: \"+a);}}\nfunction sb(a,b,c){switch(b){case 0:return c?function(d){return ja[d]}:function(d){return A[d]};case 1:return c?function(d){return C[d>>1]}:function(d){return ka[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return E[d>>2]};default:throw new TypeError(\"Unknown integer type: \"+a);}}function tb(a,b){for(var c=\"\",d=0;!(d>=b/2);++d){var e=C[a+2*d>>1];if(0==e)break;c+=String.fromCharCode(e)}return c}\nfunction ub(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=a.charCodeAt(e),b+=2;C[b>>1]=0;return b-d}function vb(a){return 2*a.length}function wb(a,b){for(var c=0,d=\"\";!(c>=b/4);){var e=D[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}\nfunction xb(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}D[b>>2]=f;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}function yb(a){for(var b=0,c=0;c=d&&++c;b+=4}return b}var zb={};function Ab(a){var b=zb[a];return void 0===b?N(a):b}var Bb=[];function Cb(a){var b=Bb.length;Bb.push(a);return b}\nfunction Db(a,b){for(var c=Array(a),d=0;d>2],\"parameter \"+d);return c}var Eb=[],Fb=[null,[],[]];K=h.BindingError=Da(\"BindingError\");h.count_emval_handles=function(){for(var a=0,b=5;bHb;++Hb)Gb[Hb]=String.fromCharCode(Hb);Ga=Gb;h.getInheritedInstanceCount=function(){return Object.keys(Q).length};\nh.getLiveInheritedInstances=function(){var a=[],b;for(b in Q)Q.hasOwnProperty(b)&&a.push(Q[b]);return a};h.flushPendingDeletes=Ha;h.setDelayFunction=function(a){P=a;O.length&&P&&P(Ha)};Sa=h.InternalError=Da(\"InternalError\");X.prototype.isAliasOf=function(a){if(!(this instanceof X&&a instanceof X))return!1;var b=this.M.P.N,c=this.M.O,d=a.M.P.N;for(a=a.M.O;b.R;)c=b.ba(c),b=b.R;for(;d.R;)a=d.ba(a),d=d.R;return b===d&&c===a};\nX.prototype.clone=function(){this.M.O||$a(this);if(this.M.aa)return this.M.count.value+=1,this;var a=T,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.M;a=a(c.call(b,d,{M:{value:{count:e.count,$:e.$,aa:e.aa,O:e.O,P:e.P,T:e.T,U:e.U}}}));a.M.count.value+=1;a.M.$=!1;return a};X.prototype[\"delete\"]=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");Ma(this);Oa(this.M);this.M.aa||(this.M.T=void 0,this.M.O=void 0)};X.prototype.isDeleted=function(){return!this.M.O};\nX.prototype.deleteLater=function(){this.M.O||$a(this);this.M.$&&!this.M.aa&&L(\"Object already scheduled for deletion\");O.push(this);1===O.length&&P&&P(Ha);this.M.$=!0;return this};Y.prototype.qa=function(a){this.ka&&(a=this.ka(a));return a};Y.prototype.ha=function(a){this.W&&this.W(a)};Y.prototype.argPackAdvance=8;Y.prototype.readValueFromPointer=Xa;Y.prototype.deleteObject=function(a){if(null!==a)a[\"delete\"]()};\nY.prototype.fromWireType=function(a){function b(){return this.da?Ua(this.N.X,{P:this.wa,O:c,U:this,T:a}):Ua(this.N.X,{P:this,O:a})}var c=this.qa(a);if(!c)return this.ha(a),null;var d=Ra(this.N,c);if(void 0!==d){if(0===d.M.count.value)return d.M.O=c,d.M.T=a,d.clone();d=d.clone();this.ha(a);return d}d=this.N.pa(c);d=Qa[d];if(!d)return b.call(this);d=this.ca?d.la:d.pointerType;var e=Pa(c,this.N,d.N);return null===e?b.call(this):this.da?Ua(d.N.X,{P:d,O:e,U:this,T:a}):Ua(d.N.X,{P:d,O:e})};\nmb=h.UnboundTypeError=Da(\"UnboundTypeError\");\nvar xa=\"function\"==typeof atob?atob:function(a){var b=\"\",c=0;a=a.replace(/[^A-Za-z0-9\\+\\/=]/g,\"\");do{var d=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var f=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));var g=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(a.charAt(c++));d=d<<2|e>>4;\ne=(e&15)<<4|f>>2;var k=(f&3)<<6|g;b+=String.fromCharCode(d);64!==f&&(b+=String.fromCharCode(e));64!==g&&(b+=String.fromCharCode(k))}while(cg.ta).concat(e.map(g=>g.za));V([a],f,g=>{var k={};e.forEach((m,l)=>{var n=g[l],p=m.ra,r=m.sa,u=g[l+e.length],t=m.ya,y=m.Aa;k[m.oa]={read:B=>n.fromWireType(p(r,B)),write:(B,ba)=>{var I=[];t(y,\nB,u.toWireType(I,ba));Wa(I)}}});return[{name:b.name,fromWireType:function(m){var l={},n;for(n in k)l[n]=k[n].read(m);d(m);return l},toWireType:function(m,l){for(var n in k)if(!(n in l))throw new TypeError('Missing field: \"'+n+'\"');var p=c();for(n in k)k[n].write(p,l[n]);null!==m&&m.push(d,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:d}]})},v:function(){},B:function(a,b,c,d,e){var f=Za(c);b=N(b);W(a,{name:b,fromWireType:function(g){return!!g},toWireType:function(g,k){return k?d:e},argPackAdvance:8,\nreadValueFromPointer:function(g){if(1===c)var k=ja;else if(2===c)k=C;else if(4===c)k=D;else throw new TypeError(\"Unknown boolean type size: \"+b);return this.fromWireType(k[g>>f])},V:null})},f:function(a,b,c,d,e,f,g,k,m,l,n,p,r){n=N(n);f=Z(e,f);k&&(k=Z(g,k));l&&(l=Z(m,l));r=Z(p,r);var u=Aa(n);bb(u,function(){nb(\"Cannot construct \"+n+\" due to unbound types\",[d])});V([a,b,c],d?[d]:[],function(t){t=t[0];if(d){var y=t.N;var B=y.X}else B=X.prototype;t=Ba(u,function(){if(Object.getPrototypeOf(this)!==ba)throw new K(\"Use 'new' to construct \"+\nn);if(void 0===I.Y)throw new K(n+\" has no accessible constructor\");var kb=I.Y[arguments.length];if(void 0===kb)throw new K(\"Tried to invoke ctor of \"+n+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(I.Y).toString()+\") parameters instead!\");return kb.apply(this,arguments)});var ba=Object.create(B,{constructor:{value:t}});t.prototype=ba;var I=new cb(n,t,ba,r,y,f,k,l);y=new Y(n,I,!0,!1);B=new Y(n+\"*\",I,!1,!1);var lb=new Y(n+\" const*\",I,!1,!0);Qa[a]={pointerType:B,\nla:lb};ib(u,t);return[y,B,lb]})},d:function(a,b,c,d,e,f,g){var k=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(m){function l(){nb(\"Cannot call \"+n+\" due to unbound types\",k)}m=m[0];var n=m.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);var p=m.N.constructor;void 0===p[b]?(l.Z=c-1,p[b]=l):(ab(p,b,n),p[b].S[c-1]=l);V([],k,function(r){r=ob(n,[r[0],null].concat(r.slice(1)),null,f,g);void 0===p[b].S?(r.Z=c-1,p[b]=r):p[b].S[c-1]=r;return[]});return[]})},p:function(a,b,c,d,e,f){0{nb(\"Cannot construct \"+k.name+\" due to unbound types\",g)};V([],g,function(l){l.splice(1,0,null);k.N.Y[b-1]=ob(m,l,null,e,f);return[]});return[]})},\na:function(a,b,c,d,e,f,g,k){var m=pb(c,d);b=N(b);f=Z(e,f);V([],[a],function(l){function n(){nb(\"Cannot call \"+p+\" due to unbound types\",m)}l=l[0];var p=l.name+\".\"+b;b.startsWith(\"@@\")&&(b=Symbol[b.substring(2)]);k&&l.N.ja.push(b);var r=l.N.X,u=r[b];void 0===u||void 0===u.S&&u.className!==l.name&&u.Z===c-2?(n.Z=c-2,n.className=l.name,r[b]=n):(ab(r,b,p),r[b].S[c-2]=n);V([],m,function(t){t=ob(p,t,l,f,g);void 0===r[b].S?(t.Z=c-2,r[b]=t):r[b].S[c-2]=t;return[]});return[]})},A:function(a,b){b=N(b);W(a,\n{name:b,fromWireType:function(c){var d=M(c);qb(c);return d},toWireType:function(c,d){return Ea(d)},argPackAdvance:8,readValueFromPointer:Xa,V:null})},n:function(a,b,c){c=Za(c);b=N(b);W(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){return e},argPackAdvance:8,readValueFromPointer:rb(b,c),V:null})},e:function(a,b,c,d,e){b=N(b);-1===e&&(e=4294967295);e=Za(c);var f=k=>k;if(0===d){var g=32-8*c;f=k=>k<>>g}c=b.includes(\"unsigned\")?function(k,m){return m>>>0}:function(k,m){return m};\nW(a,{name:b,fromWireType:f,toWireType:c,argPackAdvance:8,readValueFromPointer:sb(b,e,0!==d),V:null})},b:function(a,b,c){function d(f){f>>=2;var g=E;return new e(ia,g[f+1],g[f])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=N(c);W(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{ua:!0})},o:function(a,b){b=N(b);var c=\"std::string\"===b;W(a,{name:b,fromWireType:function(d){var e=E[d>>2],f=d+4;if(c)for(var g=f,k=0;k<=e;++k){var m=\nf+k;if(k==e||0==A[m]){g=g?z(A,g,m-g):\"\";if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=m+1}}else{l=Array(e);for(k=0;k=m?k++:2047>=\nm?k+=2:55296<=m&&57343>=m?(k+=4,++f):k+=3}f=k}else f=e.length;k=Ib(4+f+1);m=k+4;E[k>>2]=f;if(c&&g){if(g=m,m=f+1,f=A,0=n){var p=e.charCodeAt(++l);n=65536+((n&1023)<<10)|p&1023}if(127>=n){if(g>=m)break;f[g++]=n}else{if(2047>=n){if(g+1>=m)break;f[g++]=192|n>>6}else{if(65535>=n){if(g+2>=m)break;f[g++]=224|n>>12}else{if(g+3>=m)break;f[g++]=240|n>>18;f[g++]=128|n>>12&63}f[g++]=128|n>>6&63}f[g++]=128|n&63}}f[g]=0}}else if(g)for(g=\n0;gka;var k=1}else 4===b&&(d=wb,e=xb,f=yb,g=()=>E,k=2);W(a,{name:c,fromWireType:function(m){for(var l=E[m>>2],n=g(),p,r=m+4,u=0;u<=l;++u){var t=m+4+u*b;if(u==l||0==n[t>>k])r=d(r,t-r),void 0===\np?p=r:(p+=String.fromCharCode(0),p+=r),r=t+b}S(m);return p},toWireType:function(m,l){\"string\"!=typeof l&&L(\"Cannot pass non-string to C++ string type \"+c);var n=f(l),p=Ib(4+n+b);E[p>>2]=n>>k;e(l,p+4,n+b);null!==m&&m.push(S,p);return p},argPackAdvance:8,readValueFromPointer:Xa,V:function(m){S(m)}})},k:function(a,b,c,d,e,f){Va[a]={name:N(b),fa:Z(c,d),W:Z(e,f),ia:[]}},h:function(a,b,c,d,e,f,g,k,m,l){Va[a].ia.push({oa:N(b),ta:c,ra:Z(d,e),sa:f,za:g,ya:Z(k,m),Aa:l})},C:function(a,b){b=N(b);W(a,{va:!0,name:b,\nargPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a,b,c,d,e){a=Bb[a];b=M(b);c=Ab(c);var f=[];E[d>>2]=Ea(f);return a(b,c,f,e)},t:function(a,b,c,d){a=Bb[a];b=M(b);c=Ab(c);a(b,c,null,d)},g:qb,m:function(a,b){var c=Db(a,b),d=c[0];b=d.name+\"_$\"+c.slice(1).map(function(g){return g.name}).join(\"_\")+\"$\";var e=Eb[b];if(void 0!==e)return e;var f=Array(a-1);e=Cb((g,k,m,l)=>{for(var n=0,p=0;p>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-ia.byteLength+65535>>>16);na();var f=1;break a}catch(g){}f=\nvoid 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a,b,c,d){for(var e=0,f=0;f>2],k=E[b+4>>2];b+=8;for(var m=0;m>2]=e;return 0}};\n(function(){function a(e){h.asm=e.exports;fa=h.asm.E;na();oa=h.asm.J;qa.unshift(h.asm.F);F--;h.monitorRunDependencies&&h.monitorRunDependencies(F);0==F&&(null!==ta&&(clearInterval(ta),ta=null),G&&(e=G,G=null,e()))}function b(e){a(e.instance)}function c(e){return ya().then(function(f){return WebAssembly.instantiate(f,d)}).then(function(f){return f}).then(e,function(f){v(\"failed to asynchronously prepare wasm: \"+f);x(f)})}var d={a:Jb};F++;h.monitorRunDependencies&&h.monitorRunDependencies(F);if(h.instantiateWasm)try{return h.instantiateWasm(d,\na)}catch(e){v(\"Module.instantiateWasm callback failed with error: \"+e),ca(e)}(function(){return w||\"function\"!=typeof WebAssembly.instantiateStreaming||ua(H)||\"function\"!=typeof fetch?c(b):fetch(H,{credentials:\"same-origin\"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(f){v(\"wasm streaming compile failed: \"+f);v(\"falling back to ArrayBuffer instantiation\");return c(b)})})})().catch(ca);return{}})();\nh.___wasm_call_ctors=function(){return(h.___wasm_call_ctors=h.asm.F).apply(null,arguments)};var Ka=h.___getTypeName=function(){return(Ka=h.___getTypeName=h.asm.G).apply(null,arguments)};h.__embind_initialize_bindings=function(){return(h.__embind_initialize_bindings=h.asm.H).apply(null,arguments)};var Ib=h._malloc=function(){return(Ib=h._malloc=h.asm.I).apply(null,arguments)},S=h._free=function(){return(S=h._free=h.asm.K).apply(null,arguments)};\nh.dynCall_jiji=function(){return(h.dynCall_jiji=h.asm.L).apply(null,arguments)};var Kb;G=function Lb(){Kb||Mb();Kb||(G=Lb)};\nfunction Mb(){function a(){if(!Kb&&(Kb=!0,h.calledRun=!0,!ha)){za(qa);aa(h);if(h.onRuntimeInitialized)h.onRuntimeInitialized();if(h.postRun)for(\"function\"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var b=h.postRun.shift();ra.unshift(b)}za(ra)}}if(!(0