{"version":3,"file":"polyfills.js","mappings":"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AAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,2BAAiB;AAC3C,cAAc,mDAA0B;AACxC,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,YAAY,mBAAO,CAAC,sBAAW;AAC/B,wBAAwB,mBAAO,CAAC,6BAAkB;AAClD,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,eAAe,mBAAO,CAAC,mCAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACpFa;AACb,aAAa,mBAAO,CAAC,sBAAW;AAChC,cAAc,mBAAO,CAAC,qBAAW;AACjC,eAAe,mBAAO,CAAC,wBAAa;AACpC,kBAAkB,mBAAO,CAAC,2BAAiB;AAC3C,WAAW,mBAAO,CAAC,oBAAS;AAC5B,YAAY,mBAAO,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CA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mBAAmB;AACnB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;;;;;;;;;;;AC/Fa;AACb;AACA,eAAe,mBAAO,CAAC,yBAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,WAAW,mBAAO,CAAC,yBAAc;AACjC,kBAAkB,mBAAO,CAAC,6BAAkB;AAC5C,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,gBAAgB,mBAAO,CAAC,uCAA4B;AACpD;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA,IAAI,4CAA4C,+BAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,sBAAW;;;;;;;;;;;ACApC;AACA;AACA;AACA;AACA;AACA,0CAA0C;;;;;;;;;;;ACL1C,uBAAuB;AACvB;AACA;AACA;;;;;;;;;;;ACHA,SAAS,mBAAO,CAAC,yBAAc;AAC/B,iBAAiB,mBAAO,CAAC,6BAAkB;AAC3C,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;;;ACPA,eAA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AiD;AACjD,CAAC;AACD;AACA,sBAAsB;AACtB;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpDA,UAAU,mBAAO,CAAC,sBAAW;AAC7B,cAAc,mBAAO,CAAC,qBAAW;AACjC,aAAa,mBAAO,CAAC,sBAAW;AAChC,iDAAiD,mBAAO,CAAC,2BAAgB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClDa;AACb;AACA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,cAAc,mBAAO,CAAC,2BAAgB;AACtC,WAAW,mBAAO,CAAC,2BAAgB;AACnC,UAAU,mBAAO,CAAC,0BAAe;AACjC,eAAe,mBAAO,CAAC,yBAAc;AACrC,cAAc,mBAAO,CAAC,uBAAY;AAClC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,qBAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;;;;;;;;;;ACrCF;AACA,eAAe,mBAAO,CAAC,yBAAc;AACrC,UAAU,mBAAO,CAAC,yBAAe;AACjC,kBAAkB,mBAAO,CAAC,4BAAkB;AAC5C,eAAe,mBAAO,CAAC,0BAAe;AACtC,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,0BAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,uDAA8B;AAChC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;ACxCA,eAAe,mBAAO,CAAC,yBAAc;AACrC,qBAAqB,mBAAO,CAAC,8BAAmB;AAChD,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C;;AAEA,SAAS,GAAG,mBAAO,CAAC,2BAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;;;;;;;;;;;ACfA,SAAS,mBAAO,CAAC,yBAAc;AAC/B,eAAe,mBAAO,CAAC,yBAAc;AACrC,cAAc,mBAAO,CAAC,2BAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZa;AACb;AACA,iBAAiB,mBAAO,CAAC,uBAAY,MAAM,mBAAO,CAAC,qBAAU;AAC7D;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D,SAAS,mBAAO,CAAC,sBAAW;AAC5B,CAAC;;;;;;;;;;;ACRD,UAAU,mBAAO,CAAC,0BAAe;AACjC,iBAAiB,mBAAO,CAAC,6BAAkB;AAC3C,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,qBAAqB,mBAAO,CAAC,8BAAmB;AAChD;;AAEA,SAAS,GAAG,mBAAO,CAAC,2BAAgB;AACpC;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA;;;;;;;;;;;ACfA;AACA,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,WAAW,oDAA2B;AACtC,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;;;;;;;;;;;AClBA;AACA,YAAY,mBAAO,CAAC,oCAAyB;AAC7C,iBAAiB,0DAAkC;;AAEnD,SAAS;AACT;AACA;;;;;;;;;;;ACNA,SAAS;;;;;;;;;;;ACAT;AACA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,0BAAe;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,eAAe,mBAAO,CAAC,0BAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA;AACA,YAAY,mBAAO,CAAC,oCAAyB;AAC7C,kBAAkB,mBAAO,CAAC,4BAAkB;;AAE5C;AACA;AACA;;;;;;;;;;;ACNA,SAAS,KAAK;;;;;;;;;;;ACAd;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,WAAW,mBAAO,CAAC,oBAAS;AAC5B,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA,sDAAsD,QAAQ;AAC9D;;;;;;;;;;;ACTA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,cAAc,mBAAO,CAAC,2BAAgB;AACtC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,aAAa,mDAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpBA;AACA,WAAW,mBAAO,CAAC,2BAAgB;AACnC,WAAW,mBAAO,CAAC,2BAAgB;AACnC,eAAe,mBAAO,CAAC,yBAAc;AACrC,cAAc,qDAA4B;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTA,kBAAkB,wDAA+B;AACjD,YAAY,sDAA8B;;AAE1C,iCAAiC,mBAAO,CAAC,yBAAc;AACvD;AACA;AACA;AACA,EAAE;;;;;;;;;;;ACPF,gBAAgB,sDAA6B;AAC7C,YAAY,sDAA8B;AAC1C,SAAS,mBAAO,CAAC,yBAAc;AAC/B;;AAEA;AACA;AACA;AACA,EAAE;;;;;;;;;;;ACRF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACPA,eAAe,mBAAO,CAAC,wBAAa;AACpC;AACA;AACA;AACA;;;;;;;;;;;ACJA,aAAa,mBAAO,CAAC,sBAAW;AAChC,WAAW,mBAAO,CAAC,oBAAS;AAC5B,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,gBAAgB,mBAAO,CAAC,kCAAuB;AAC/C;AACA;;AAEA,yDAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;AC9BY;;AAEb,cAAc,mBAAO,CAAC,uBAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpBa;;AAEb,kBAAkB,mBAAO,CAAC,qBAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACJA;AACA;AACA,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,cAAc,mBAAO,CAAC,mBAAQ,iBAAiB,oDAA2B;AAC1E;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;;;;;ACxBa;AACb,aAAa,mBAAO,CAAC,sBAAW;AAChC,SAAS,mBAAO,CAAC,yBAAc;AAC/B,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,cAAc,mBAAO,CAAC,mBAAQ;;AAE9B;AACA;AACA;AACA;AACA,uBAAuB;AACvB,GAAG;AACH;;;;;;;;;;;ACZA,UAAU,kDAAyB;AACnC,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,UAAU,mBAAO,CAAC,mBAAQ;;AAE1B;AACA,qEAAqE,gCAAgC;AACrG;;;;;;;;;;;ACNA,aAAa,mBAAO,CAAC,sBAAW;AAChC,UAAU,mBAAO,CAAC,mBAAQ;AAC1B;AACA;AACA;;;;;;;;;;;ACJA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,aAAa,mBAAO,CAAC,sBAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,uBAAY;AAC5B;AACA,CAAC;;;;;;;;;;;ACXD;AACA,eAAe,mBAAO,CAAC,yBAAc;AACrC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,cAAc,mBAAO,CAAC,mBAAQ;AAC9B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACRa;AACb,YAAY,mBAAO,CAAC,qBAAU;;AAE9B;AACA;AACA;AACA,0CAA0C,aAAa;AACvD,GAAG;AACH;;;;;;;;;;;ACRA,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,cAAc,mBAAO,CAAC,uBAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA,sBAAsB;AACtB,eAAe,mBAAO,CAAC,yBAAc;AACrC,cAAc,mBAAO,CAAC,uBAAY;;AAElC;AACA;AACA;AACA;;;;;;;;;;;ACPA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,qBAAU;AAC9B,cAAc,mBAAO,CAAC,uBAAY;AAClC;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AClBa;AACb,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,cAAc,mBAAO,CAAC,uBAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;;;;;;;;;;;ACXA,cAAc,mBAAO,CAAC,qBAAW;AACjC,cAAc,mBAAO,CAAC,uBAAY;AAClC,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,yBAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC7BA;AACA;;;;;;;;;;;ACDA,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACLA;AACA,cAAc,mBAAO,CAAC,uBAAY;AAClC,cAAc,mBAAO,CAAC,uBAAY;AAClC;AACA;AACA;;;;;;;;;;;ACLA;AACA,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;AACA;AACA,4DAA4D;AAC5D;;;;;;;;;;;ACLA;AACA,cAAc,mBAAO,CAAC,uBAAY;AAClC;AACA;AACA;;;;;;;;;;;ACJA;AACA,eAAe,mBAAO,CAAC,yBAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACJA,eAAe,mBAAO,CAAC,yBAAc;AACrC;AACA;AACA;AACA;;;;;;;;;;;ACJA,aAAa,mBAAO,CAAC,sBAAW;AAChC,WAAW,mBAAO,CAAC,oBAAS;AAC5B,cAAc,mBAAO,CAAC,uBAAY;AAClC,aAAa,mBAAO,CAAC,sBAAY;AACjC,qBAAqB,kDAAyB;AAC9C;AACA,2DAA2D,qBAAqB;AAChF,mFAAmF,uBAAuB;AAC1G;;;;;;;;;;;ACRA,oDAA6B;;;;;;;;;;;ACA7B,YAAY,mBAAO,CAAC,sBAAW;AAC/B,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,aAAa,oDAA2B;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACVA,cAAc,mBAAO,CAAC,uBAAY;AAClC,eAAe,mBAAO,CAAC,mBAAQ;AAC/B,gBAAgB,mBAAO,CAAC,yBAAc;AACtC,iBAAiB,6DAAoC;AACrD;AACA;AACA;AACA;;;;;;;;;;;ACPA;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,8BAA8B,YAAY,mBAAO,CAAC,iCAAsB,GAAG;;AAE3E,mBAAO,CAAC,iCAAuB;;;;;;;;;;;;ACLlB;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,aAAa,mBAAO,CAAC,6BAAkB;;AAEvC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACTD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,8BAA8B,MAAM,mBAAO,CAAC,0BAAe,GAAG;;AAE9D,mBAAO,CAAC,iCAAuB;;;;;;;;;;;;ACLlB;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,cAAc,mBAAO,CAAC,6BAAkB;;AAExC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTY;AACb;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,6BAAkB;AACtC;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAO,CAAC,iCAAuB;;;;;;;;;;;;ACblB;AACb;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,6BAAkB;AACtC;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAO,CAAC,iCAAuB;;;;;;;;;;;;ACblB;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,eAAe,mBAAO,CAAC,6BAAkB;AACzC,aAAa,mBAAO,CAAC,6BAAkB;;AAEvC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACVY;AACb,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,cAAc,mBAAO,CAAC,qBAAW;AACjC,eAAe,mBAAO,CAAC,yBAAc;AACrC,WAAW,mBAAO,CAAC,yBAAc;AACjC,kBAAkB,mBAAO,CAAC,6BAAkB;AAC5C,eAAe,mBAAO,CAAC,yBAAc;AACrC,qBAAqB,mBAAO,CAAC,+BAAoB;AACjD,gBAAgB,mBAAO,CAAC,uCAA4B;;AAEpD,iCAAiC,mBAAO,CAAC,2BAAgB,oBAAoB,mBAAmB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gCAAgC;AACxF;AACA;AACA,MAAM;AACN;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACpCY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,eAAe,mBAAO,CAAC,8BAAmB;AAC1C;AACA;;AAEA,mDAAmD,mBAAO,CAAC,6BAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACdD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,8BAA8B,SAAS,mBAAO,CAAC,wBAAa,GAAG;;;;;;;;;;;;ACHlD;AACb,uBAAuB,mBAAO,CAAC,iCAAuB;AACtD,WAAW,mBAAO,CAAC,yBAAc;AACjC,gBAAgB,mBAAO,CAAC,yBAAc;AACtC,gBAAgB,mBAAO,CAAC,0BAAe;;AAEvC;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACjCa;AACb;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;;AAEA;AACA,iCAAiC,mBAAO,CAAC,uBAAY,gBAAgB,mBAAO,CAAC,6BAAkB;AAC/F;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACXY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,eAAe,mBAAO,CAAC,yBAAc;AACrC;AACA;;AAEA,mDAAmD,mBAAO,CAAC,6BAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA,CAAC;;;;;;;;;;;;ACrBY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,WAAW,mBAAO,CAAC,6BAAkB;;AAErC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,qBAAqB,mBAAO,CAAC,+BAAoB;;AAEjD;AACA,gCAAgC,mBAAO,CAAC,qBAAU;AAClD,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AClBY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,cAAc,mBAAO,CAAC,4BAAiB;;AAEvC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,cAAc,mBAAO,CAAC,4BAAiB;;AAEvC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,WAAW,mBAAO,CAAC,oBAAS;AAC5B,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,sBAAsB,mBAAO,CAAC,iCAAsB;AACpD,eAAe,mBAAO,CAAC,yBAAc;AACrC;;AAEA;AACA,gCAAgC,mBAAO,CAAC,qBAAU;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,6BAAkB;;AAEtC,iCAAiC,mBAAO,CAAC,6BAAkB;AAC3D;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,eAAe,mBAAO,CAAC,yBAAc;AACrC,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC,MAAM,mBAAO,CAAC,6BAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACtBD,mBAAO,CAAC,2BAAgB;;;;;;;;;;;ACAxB;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,6BAA6B,mBAAmB,gCAAgC;;;;;;;;;;;ACHhF;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,kBAAkB,mBAAO,CAAC,kCAAuB;;AAEjD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACPY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,eAAe,mBAAO,CAAC,yBAAc;AACrC,kBAAkB,mBAAO,CAAC,4BAAiB;;AAE3C,gCAAgC,mBAAO,CAAC,qBAAU;AAClD;AACA,oCAAoC,2BAA2B,aAAa;AAC5E,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACfD,mBAAmB,mBAAO,CAAC,mBAAQ;AACnC;;AAEA,8BAA8B,mBAAO,CAAC,oBAAS,uBAAuB,mBAAO,CAAC,iCAAsB;;;;;;;;;;;ACHpG;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,wBAAa;AACvB;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACXA;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,iCAAiC,MAAM,mBAAO,CAAC,oBAAS,GAAG;;;;;;;;;;;;ACH9C;AACb,eAAe,mBAAO,CAAC,yBAAc;AACrC,qBAAqB,mBAAO,CAAC,0BAAe;AAC5C,mBAAmB,mBAAO,CAAC,mBAAQ;AACnC;AACA;AACA,sCAAsC,kDAAyB,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA,GAAG;;;;;;;;;;;ACZH,SAAS,kDAAyB;AAClC;AACA;AACA;;AAEA;AACA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACfY;AACb,aAAa,mBAAO,CAAC,iCAAsB;AAC3C,eAAe,mBAAO,CAAC,mCAAwB;AAC/C;;AAEA;AACA,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,0BAA0B;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AClBD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,0BAAe;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACjBD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,cAAc;;;;;;;;;;;ACTxF;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACTD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,WAAW,mBAAO,CAAC,yBAAc;;AAEjC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACRD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACPD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACRD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,aAAa,mBAAO,CAAC,0BAAe;;AAEpC,kEAAkE,eAAe;;;;;;;;;;;ACJjF;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,6BAA6B,QAAQ,mBAAO,CAAC,2BAAgB,GAAG;;;;;;;;;;;ACHhE;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACxBD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC;;AAEA;AACA,gCAAgC,mBAAO,CAAC,qBAAU;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AChBD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACPD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,6BAA6B,OAAO,mBAAO,CAAC,0BAAe,GAAG;;;;;;;;;;;ACH9D;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACPD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,6BAA6B,MAAM,mBAAO,CAAC,yBAAc,GAAG;;;;;;;;;;;ACH5D;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,0BAAe;AACnC;;AAEA;AACA,gCAAgC,mBAAO,CAAC,qBAAU;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACdD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,YAAY,mBAAO,CAAC,0BAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACXD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACPY;AACb,aAAa,mBAAO,CAAC,sBAAW;AAChC,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,wBAAwB,mBAAO,CAAC,mCAAwB;AACxD,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C,YAAY,mBAAO,CAAC,qBAAU;AAC9B,WAAW,oDAA2B;AACtC,WAAW,oDAA2B;AACtC,SAAS,kDAAyB;AAClC,YAAY,sDAA8B;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,6BAAkB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,MAAM;AACN;AACA,qCAAqC,cAAc,OAAO;AAC1D,sCAAsC,cAAc,OAAO;AAC3D;AACA;AACA,qEAAqE,OAAO;AAC5E;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2BAA2B;AACtE;AACA;AACA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,wBAAa;AACvB;;;;;;;;;;;ACpEA;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,+BAA+B,2BAA2B;;;;;;;;;;;ACH1D;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,sDAA6B;;AAE7C;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACRD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,+BAA+B,WAAW,mBAAO,CAAC,0BAAe,GAAG;;;;;;;;;;;ACHpE;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACRD;AACA,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACTD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,+BAA+B,oCAAoC;;;;;;;;;;;ACHnE;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,+BAA+B,qCAAqC;;;;;;;;;;;ACHpE,cAAc,mBAAO,CAAC,qBAAW;AACjC,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C;AACA,gFAAgF,yBAAyB;;;;;;;;;;;ACHzG,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,yBAAc;AACtC;AACA,4EAA4E,qBAAqB;;;;;;;;;;;;ACHpF;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,aAAa,mBAAO,CAAC,6BAAkB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAO,CAAC,qBAAU;AACxB;AACA,kBAAkB;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,CAAC;;;;;;;;;;;;ACjHY;AACb,cAAc,mBAAO,CAAC,qBAAW;AACjC,aAAa,mBAAO,CAAC,qBAAU;AAC/B,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACjBD;AACA,cAAc,mBAAO,CAAC,qBAAW;;AAEjC,2CAA2C,QAAQ,mBAAO,CAAC,6BAAkB,GAAG;;;;;;;;;;;ACHhF,cAAc,mBAAO,CAAC,qBAAW;AACjC;AACA,+BAA+B,QAAQ,mBAAO,CAAC,6BAAkB,GAAG;;;;;;;;;;;ACFpE,cAAc,mBAAO,CAAC,qBAAW;AACjC;AACA,iCAAiC,mBAAO,CAAC,2BAAgB,eAAe,kBAAkB,mBAAO,CAAC,yBAAe,GAAG;;;;;;;;;;;ACFpH,cAAc,mBAAO,CAAC,qBAAW;AACjC;AACA,iCAAiC,mBAAO,CAAC,2BAAgB,eAAe,gBAAgB,kDAAyB,EAAE;;;;;;;;;;;ACFnH;AACA,eAAe,mBAAO,CAAC,y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Cb,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,mBAAO,CAAC,qBAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;ACRD;AACA,IAAI,mBAAO,CAAC,2BAAgB,wBAAwB,kDAAyB;AAC7E;AACA,OAAO,mBAAO,CAAC,qBAAU;AACzB,CAAC;;;;;;;;;;;;ACJY;;AAEb,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,yBAAyB,mBAAO,CAAC,oCAAyB;AAC1D,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA,mBAAO,CAAC,0BAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACvCY;;AAEb,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,yBAAyB,mBAAO,CAAC,oCAAyB;AAC1D,iBAAiB,mBAAO,CAAC,oCAAyB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAO,CAAC,0BAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;;ACrHY;;AAEb,eAAe,mBAAO,CAAC,yBAAc;AACrC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC,iBAAiB,mBAAO,CAAC,oCAAyB;;AAElD;AACA,mBAAO,CAAC,0BAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC9BY;;AAEb,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,yBAAc;AACrC,yBAAyB,mBAAO,CAAC,kCAAwB;AACzD,yBAAyB,mBAAO,CAAC,oCAAyB;AAC1D,eAAe,mBAAO,CAAC,yBAAc;AACrC,qBAAqB,mBAAO,CAAC,oCAAyB;AACtD,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,0BAA0B;;AAEhE;AACA,mBAAO,CAAC,0BAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAO,CAAC,yBAAc;AAChC,YAAY,mBAAO,CAAC,2BAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,uBAAuB,uBAAuB,UAAU;AACxD,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,MAAM;AACN;AACA,uBAAuB,kCAAkC;AACzD,MAAM;AACN,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,+BAA+B;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,oDAA2B;AAC7B,EAAE,mDAA0B;AAC5B;;AAEA,sBAAsB,mBAAO,CAAC,uBAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2DAA2D,iBAAiB;;AAE5E;AACA;AACA;AACA,qBAAqB,sBAAsB;;AAE3C,qDAAqD,4BAA4B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,gBAAgB;AAC3C,2BAA2B;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,+CAA+C,aAAa;;AAE5D;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AAC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D;EAC7C;EACA;EACA,OAAOm4C,+BAA+B,CAAC3uB,GAAhC,CAAoCxpB,QAAQ,CAACnwB,WAAT,EAApC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwoE,SAAN,CAAgB;EACZz0E,WAAW,GAAG;IACV,KAAK00E,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,WAAW,CAACC,OAAD,EAAU75C,QAAV,EAAoB85C,YAAY,GAAG,EAAnC,EAAuC;IAC9C,MAAMC,gBAAgB,GAAGC,uBAAuB,CAACH,OAAD,CAAhD;IACAA,OAAO,GAAGI,aAAa,CAACJ,OAAD,CAAvB;IACAA,OAAO,GAAG,KAAKK,iBAAL,CAAuBL,OAAvB,CAAV;;IACA,MAAMM,aAAa,GAAG,KAAKC,aAAL,CAAmBP,OAAnB,EAA4B75C,QAA5B,EAAsC85C,YAAtC,CAAtB;;IACA,OAAO,CAACK,aAAD,EAAgB,GAAGJ,gBAAnB,EAAqClkE,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,IAAiCy7E,SAAS,CAACz7E,OAAV,CAAkB,GAAlB,KAA0B,CAAC,CAAhE,EAAmE;MAC/D0O,KAAK,GAAG+sE,SAAR;IACH;EACJ;;EACD,OAAO/sE,KAAP;AACH;;AACD,SAAS0sE,SAAT,CAAmB1sE,KAAnB,EAA0B;EACtB,OAAOA,KAAK,CACP7R,OADE,CACM,aADN,EACqBsL,CAAC,IAAI;IAC7B,OAAOA,CAAC,CAACmyB,MAAF,CAAS,CAAT,IAAc,GAAd,GAAoBnyB,CAAC,CAACmyB,MAAF,CAAS,CAAT,CAA3B;EACH,CAHM,EAIF7vB,WAJE,EAAP;AAKH;;AAED,MAAMixE,cAAc,GAAG,YAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kCAAkC,GAAG,CAA3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;EACjBp9E,WAAW,CAACq9E,cAAD,EAAiB;IACxB,KAAKA,cAAL,GAAsBA,cAAtB;IACA;;IACA,KAAKC,iBAAL,GAAyB,KAAzB;IACA;AACR;AACA;AACA;;IACQ,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,kBAAL,GAA0B,IAA1B,CAnBwB,CAoBxB;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,WAAW,CAAC9a,IAAb,CAAxC,EAJmC,CAKnC;;EACA4nC,aAAa,CAACv3D,GAAd,CAAkB,MAAlB,EAA0BiX,IAAI,CAAC6lC,YAA/B;;EACA,IAAI7lC,IAAI,CAACwiD,YAAT,EAAuB;IACnBlC,aAAa,CAACv3D,GAAd,CAAkB,cAAlB,EAAkCwnC,OAAO,CAACvwB,IAAI,CAACwiD,YAAN,CAAzC;EACH,CATkC,CAUnC;;;EACAlC,aAAa,CAACv3D,GAAd,CAAkB,MAAlB,EAA0BwnC,OAAO,CAACvwB,IAAI,CAACuiD,QAAN,CAAjC;;EACA,IAAIviD,IAAI,CAAC0kB,IAAL,KAAc,KAAlB,EAAyB;IACrB;IACA47B,aAAa,CAACv3D,GAAd,CAAkB,MAAlB,EAA0BwnC,OAAO,CAACvwB,IAAI,CAAC0kB,IAAN,CAAjC;EACH;;EACD,OAAO47B,aAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA2lD,aAAa,CAACjpG,OAAD,CAAb;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjjsBA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAu9G,oEAAA,GAAqBC,4DAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMG,cAAc,GAAG,GAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM3T,iBAAiB,GAAG,GAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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S,CAACoC,YAAX,EAAyBtyF,YAAzB,EAAuCwwF,aAAvC,CAAlB;EACH,CAFD,CAGA,OAAOjkI,CAAP,EAAU;IACNK,OAAO,CAACC,IAAR,CAAaN,CAAC,CAACF,OAAf;IACA,OAAO,CAAC2zC,YAAD,EAAewwF,aAAf,CAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM/9G,OAAO,GAAK,eAAe,CAAC,MAAO,OAAO+/G,UAAP,KAAsB,WAAtB,IAAqCA,UAAtC,IACnC,OAAOxrH,MAAP,KAAkB,WAAlB,IAAiCA,MADE,IACU,OAAO7c,MAAP,KAAkB,WAAlB,IAAiCA,MAD3C,IAEnC,OAAOqJ,IAAP,KAAgB,WAAhB,IAA+B,OAAO2f,iBAAP,KAA6B,WAA5D,IACG3f,IAAI,YAAY2f,iBADnB,IACwC3f,IAHZ,GAAjC;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMi/H,WAAW,GAAG,UAAUzyF,YAAV,EAAwB,GAAGnB,WAA3B,EAAwC;EACxD,IAAI4zF,WAAW,CAACJ,SAAhB,EAA2B;IACvB;IACA,MAAMR,WAAW,GAAGY,WAAW,CAACJ,SAAZ,CAAsBryF,YAAtB,EAAoCnB,WAApC,CAApB;IACAmB,YAAY,GAAG6xF,WAAW,CAAC,CAAD,CAA1B;IACAhzF,WAAW,GAAGgzF,WAAW,CAAC,CAAD,CAAzB;EACH;;EACD,IAAIxlI,OAAO,GAAGqmI,UAAU,CAAC1yF,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACoB,GAAb,CAAiB,CAAjB,CAAlB,CAAxB;;EACA,KAAK,IAAIv1C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGm0C,YAAY,CAACj0C,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;IAC1CQ,OAAO,IAAIwyC,WAAW,CAAChzC,CAAC,GAAG,CAAL,CAAX,GAAqB6mI,UAAU,CAAC1yF,YAAY,CAACn0C,CAAD,CAAb,EAAkBm0C,YAAY,CAACoB,GAAb,CAAiBv1C,CAAjB,CAAlB,CAA1C;EACH;;EACD,OAAOQ,OAAP;AACH,CAZD;;AAaA,MAAMsmI,YAAY,GAAG,GAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASD,UAAT,CAAoB5xF,WAApB,EAAiC8xF,cAAjC,EAAiD;EAC7C,OAAOA,cAAc,CAACzoG,MAAf,CAAsB,CAAtB,MAA6BwoG,YAA7B,GACH7xF,WAAW,CAACle,SAAZ,CAAsByuG,cAAc,CAACvwF,WAAD,EAAc8xF,cAAd,CAAd,GAA8C,CAApE,CADG,GAEH9xF,WAFJ;AAGH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/polyfills.ts","./node_modules/hammerjs/hammer.js","./node_modules/zone.js/fesm2015/zone.js","./node_modules/core-js/es6/array.js","./node_modules/core-js/es6/date.js","./node_modules/core-js/es6/function.js","./node_modules/core-js/es6/map.js","./node_modules/core-js/es6/math.js","./node_modules/core-js/es6/number.js","./node_modules/core-js/es6/object.js","./node_modules/core-js/es6/parse-float.js","./node_modules/core-js/es6/parse-int.js","./node_modules/core-js/es6/reflect.js","./node_modules/core-js/es6/regexp.js","./node_modules/core-js/es6/set.js","./node_modules/core-js/es6/string.js","./node_modules/core-js/es6/symbol.js","./node_modules/core-js/es7/object.js","./node_modules/core-js/es7/reflect.js","./node_modules/core-js/modules/_a-function.js","./node_modules/core-js/modules/_a-number-value.js","./node_modules/core-js/modules/_add-to-unscopables.js","./node_modules/core-js/modules/_advance-string-index.js","./node_modules/core-js/modules/_an-instance.js","./node_modules/core-js/modules/_an-object.js","./node_modules/core-js/modules/_array-copy-within.js","./node_modules/core-js/modules/_array-fill.js","./node_modules/core-js/modules/_array-from-iterable.js","./node_modules/core-js/modules/_array-includes.js","./node_modules/core-js/modules/_array-methods.js","./node_modules/core-js/modules/_array-reduce.js","./node_modules/core-js/modules/_array-species-constructor.js","./node_modules/core-js/modules/_array-species-create.js","./node_modules/core-js/modules/_bind.js","./node_modules/core-js/modules/_classof.js","./node_modules/core-js/modules/_cof.js","./node_modules/core-js/modules/_collection-strong.js","./node_modules/core-js/modules/_collection-weak.js","./node_modules/core-js/modules/_collection.js","./node_modules/core-js/modules/_core.js","./node_modules/core-js/modules/_create-property.js","./node_modules/core-js/modules/_ctx.js","./node_modules/core-js/modules/_date-to-iso-string.js","./node_modules/core-js/modules/_date-to-primitive.js","./node_modules/core-js/modules/_defined.js","./node_modules/core-js/modules/_descriptors.js","./node_modules/core-js/modules/_dom-create.js","./node_modules/core-js/modules/_enum-bug-keys.js","./node_modules/core-js/modules/_enum-keys.js","./node_modules/core-js/modules/_export.js","./node_modules/core-js/modules/_fails-is-regexp.js","./node_modules/core-js/modules/_fails.js","./node_modules/core-js/modules/_fix-re-wks.js","./node_modules/core-js/modules/_flags.js","./node_modules/core-js/modules/_for-of.js","./node_modules/core-js/modules/_function-to-string.js","./node_modules/core-js/modules/_global.js","./node_modules/core-js/modules/_has.js","./node_modules/core-js/modules/_hide.js","./node_modules/core-js/modules/_html.js","./node_modules/core-js/modules/_ie8-dom-define.js","./node_modules/core-js/modules/_inherit-if-required.js","./node_modules/core-js/modules/_invoke.js","./node_modules/core-js/modules/_iobject.js","./node_modules/core-js/modules/_is-array-iter.js","./node_modules/core-js/modules/_is-array.js","./node_modules/core-js/modules/_is-integer.js","./node_modules/core-js/modules/_is-object.js","./node_modules/core-js/modules/_is-regexp.js","./node_modules/core-js/modules/_iter-call.js","./node_modules/core-js/modules/_iter-create.js","./node_modules/core-js/modules/_iter-define.js","./node_modules/core-js/modules/_iter-detect.js","./node_modules/core-js/modules/_iter-step.js","./node_modules/core-js/modules/_iterators.js","./node_modules/core-js/modules/_library.js","./node_modules/core-js/modules/_math-expm1.js","./node_modules/core-js/modules/_math-fround.js","./node_modules/core-js/modules/_math-log1p.js","./node_modules/core-js/modules/_math-sign.js","./node_modules/core-js/modules/_meta.js","./node_modules/core-js/modules/_metadata.js","./node_modules/core-js/modules/_object-assign.js","./node_modules/core-js/modules/_object-create.js","./node_modules/core-js/modules/_object-dp.js","./node_modules/core-js/modules/_object-dps.js","./node_modules/core-js/modules/_object-forced-pam.js","./node_modules/core-js/modules/_object-gopd.js","./node_modules/core-js/modules/_object-gopn-ext.js","./node_modules/core-js/modules/_object-gopn.js","./node_modules/core-js/modules/_object-gops.js","./node_modules/core-js/modules/_object-gpo.js","./node_modules/core-js/modules/_object-keys-internal.js","./node_modules/core-js/modules/_object-keys.js","./node_modules/core-js/modules/_object-pie.js","./node_modules/core-js/modules/_object-sap.js","./node_modules/core-js/modules/_object-to-array.js","./node_modules/core-js/modules/_own-keys.js","./node_modules/core-js/modules/_parse-float.js","./node_modules/core-js/modules/_parse-int.js","./node_modules/core-js/modules/_property-desc.js","./node_modules/core-js/modules/_redefine-all.js","./node_modules/core-js/modules/_redefine.js","./node_modules/core-js/modules/_regexp-exec-abstract.js","./node_modules/core-js/modules/_regexp-exec.js","./node_modules/core-js/modules/_same-value.js","./node_modules/core-js/modules/_set-proto.js","./node_modules/core-js/modules/_set-species.js","./node_modules/core-js/modules/_set-to-string-tag.js","./node_modules/core-js/modules/_shared-key.js","./node_modules/core-js/modules/_shared.js","./node_modules/core-js/modules/_species-constructor.js","./node_modules/core-js/modules/_strict-method.js","./node_modules/core-js/modules/_string-at.js","./node_modules/core-js/modules/_string-context.js","./node_modules/core-js/modules/_string-html.js","./node_modules/core-js/modules/_string-repeat.js","./node_modules/core-js/modules/_string-trim.js","./node_modules/core-js/modules/_string-ws.js","./node_modules/core-js/modules/_to-absolute-index.js","./node_modules/core-js/modules/_to-integer.js","./node_modules/core-js/modules/_to-iobject.js","./node_modules/core-js/modules/_to-length.js","./node_modules/core-js/modules/_to-object.js","./node_modules/core-js/modules/_to-primitive.js","./node_modules/core-js/modules/_uid.js","./node_modules/core-js/modules/_validate-collection.js","./node_modules/core-js/modules/_wks-define.js","./node_modules/core-js/modules/_wks-ext.js","./node_modules/core-js/modules/_wks.js","./node_modules/core-js/modules/core.get-iterator-method.js","./node_modules/core-js/modules/es6.array.copy-within.js","./node_modules/core-js/modules/es6.array.every.js","./node_modules/core-js/modules/es6.array.fill.js","./node_modules/core-js/modules/es6.array.filter.js","./node_modules/core-js/modules/es6.array.find-index.js","./node_modules/core-js/modules/es6.array.find.js","./node_modules/core-js/modules/es6.array.for-each.js","./node_modules/core-js/modules/es6.array.from.js","./node_modules/core-js/modules/es6.array.index-of.js","./node_modules/core-js/modules/es6.array.is-array.js","./node_modules/core-js/modules/es6.array.iterator.js","./node_modules/core-js/modules/es6.array.join.js","./node_modules/core-js/modules/es6.array.last-index-of.js","./node_modules/core-js/modules/es6.array.map.js","./node_modules/core-js/modules/es6.array.of.js","./node_modules/core-js/modules/es6.array.reduce-right.js","./node_modules/core-js/modules/es6.array.reduce.js","./node_modules/core-js/modules/es6.array.slice.js","./node_modules/core-js/modules/es6.array.some.js","./node_modules/core-js/modules/es6.array.sort.js","./node_modules/core-js/modules/es6.array.species.js","./node_modules/core-js/modules/es6.date.now.js","./node_modules/core-js/modules/es6.date.to-iso-string.js","./node_modules/core-js/modules/es6.date.to-json.js","./node_modules/core-js/modules/es6.date.to-primitive.js","./node_modules/core-js/modules/es6.date.to-string.js","./node_modules/core-js/modules/es6.function.bind.js","./node_modules/core-js/modules/es6.function.has-instance.js","./node_modules/core-js/modules/es6.function.name.js","./node_modules/core-js/modules/es6.map.js","./node_modules/core-js/modules/es6.math.acosh.js","./node_modules/core-js/modules/es6.math.asinh.js","./node_modules/core-js/modules/es6.math.atanh.js","./node_modules/core-js/modules/es6.math.cbrt.js","./node_modules/core-js/modules/es6.math.clz32.js","./node_modules/core-js/modules/es6.math.cosh.js","./node_modules/core-js/modules/es6.math.expm1.js","./node_modules/core-js/modules/es6.math.fround.js","./node_modules/core-js/modules/es6.math.hypot.js","./node_modules/core-js/modules/es6.math.imul.js","./node_modules/core-js/modules/es6.math.log10.js","./node_modules/core-js/modules/es6.math.log1p.js","./node_modules/core-js/modules/es6.math.log2.js","./node_modules/core-js/modules/es6.math.sign.js","./node_modules/core-js/modules/es6.math.sinh.js","./node_modules/core-js/modules/es6.math.tanh.js","./node_modules/core-js/modules/es6.math.trunc.js","./node_modules/core-js/modules/es6.number.constructor.js","./node_modules/core-js/modules/es6.number.epsilon.js","./node_modules/core-js/modules/es6.number.is-finite.js","./node_modules/core-js/modules/es6.number.is-integer.js","./node_modules/core-js/modules/es6.number.is-nan.js","./node_modules/core-js/modules/es6.number.is-safe-integer.js","./node_modules/core-js/modules/es6.number.max-safe-integer.js","./node_modules/core-js/modules/es6.number.min-safe-integer.js","./node_modules/core-js/modules/es6.number.parse-float.js","./node_modules/core-js/modules/es6.number.parse-int.js","./node_modules/core-js/modules/es6.number.to-fixed.js","./node_modules/core-js/modules/es6.number.to-precision.js","./node_modules/core-js/modules/es6.object.assign.js","./node_modules/core-js/modules/es6.object.create.js","./node_modules/core-js/modules/es6.object.define-properties.js","./node_modules/core-js/modules/es6.object.define-property.js","./node_modules/core-js/modules/es6.object.freeze.js","./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","./node_modules/core-js/modules/es6.object.get-own-property-names.js","./node_modules/core-js/modules/es6.object.get-prototype-of.js","./node_modules/core-js/modules/es6.object.is-extensible.js","./node_modules/core-js/modules/es6.object.is-frozen.js","./node_modules/core-js/modules/es6.object.is-sealed.js","./node_modules/core-js/modules/es6.object.is.js","./node_modules/core-js/modules/es6.object.keys.js","./node_modules/core-js/modules/es6.object.prevent-extensions.js","./node_modules/core-js/modules/es6.object.seal.js","./node_modules/core-js/modules/es6.object.set-prototype-of.js","./node_modules/core-js/modules/es6.object.to-string.js","./node_modules/core-js/modules/es6.parse-float.js","./node_modules/core-js/modules/es6.parse-int.js","./node_modules/core-js/modules/es6.reflect.apply.js","./node_modules/core-js/modules/es6.reflect.construct.js","./node_modules/core-js/modules/es6.reflect.define-property.js","./node_modules/core-js/modules/es6.reflect.delete-property.js","./node_modules/core-js/modules/es6.reflect.enumerate.js","./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","./node_modules/core-js/modules/es6.reflect.get.js","./node_modules/core-js/modules/es6.reflect.has.js","./node_modules/core-js/modules/es6.reflect.is-extensible.js","./node_modules/core-js/modules/es6.reflect.own-keys.js","./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","./node_modules/core-js/modules/es6.reflect.set.js","./node_modules/core-js/modules/es6.regexp.constructor.js","./node_modules/core-js/modules/es6.regexp.exec.js","./node_modules/core-js/modules/es6.regexp.flags.js","./node_modules/core-js/modules/es6.regexp.match.js","./node_modules/core-js/modules/es6.regexp.replace.js","./node_modules/core-js/modules/es6.regexp.search.js","./node_modules/core-js/modules/es6.regexp.split.js","./node_modules/core-js/modules/es6.regexp.to-string.js","./node_modules/core-js/modules/es6.set.js","./node_modules/core-js/modules/es6.string.anchor.js","./node_modules/core-js/modules/es6.string.big.js","./node_modules/core-js/modules/es6.string.blink.js","./node_modules/core-js/modules/es6.string.bold.js","./node_modules/core-js/modules/es6.string.code-point-at.js","./node_modules/core-js/modules/es6.string.ends-with.js","./node_modules/core-js/modules/es6.string.fixed.js","./node_modules/core-js/modules/es6.string.fontcolor.js","./node_modules/core-js/modules/es6.string.fontsize.js","./node_modules/core-js/modules/es6.string.from-code-point.js","./node_modules/core-js/modules/es6.string.includes.js","./node_modules/core-js/modules/es6.string.italics.js","./node_modules/core-js/modules/es6.string.iterator.js","./node_modules/core-js/modules/es6.string.link.js","./node_modules/core-js/modules/es6.string.raw.js","./node_modules/core-js/modules/es6.string.repeat.js","./node_modules/core-js/modules/es6.string.small.js","./node_modules/core-js/modules/es6.string.starts-with.js","./node_modules/core-js/modules/es6.string.strike.js","./node_modules/core-js/modules/es6.string.sub.js","./node_modules/core-js/modules/es6.string.sup.js","./node_modules/core-js/modules/es6.string.trim.js","./node_modules/core-js/modules/es6.symbol.js","./node_modules/core-js/modules/es6.weak-map.js","./node_modules/core-js/modules/es7.object.define-getter.js","./node_modules/core-js/modules/es7.object.define-setter.js","./node_modules/core-js/modules/es7.object.entries.js","./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","./node_modules/core-js/modules/es7.object.lookup-getter.js","./node_modules/core-js/modules/es7.object.lookup-setter.js","./node_modules/core-js/modules/es7.object.values.js","./node_modules/core-js/modules/es7.reflect.define-metadata.js","./node_modules/core-js/modules/es7.reflect.delete-metadata.js","./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","./node_modules/core-js/modules/es7.reflect.get-metadata.js","./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","./node_modules/core-js/modules/es7.reflect.has-metadata.js","./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","./node_modules/core-js/modules/es7.reflect.metadata.js","./node_modules/core-js/modules/web.dom.iterable.js","./node_modules/@angular/compiler/fesm2020/compiler.mjs","./node_modules/@angular/localize/fesm2020/init.mjs","./node_modules/@angular/localize/fesm2020/localize.mjs"],"sourcesContent":["/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\n// This file includes polyfills needed by Angular 2 and is loaded before\r\n// the app. You can add your own extra polyfills to this file.\r\nimport \"hammerjs/hammer\";\r\nimport 'core-js/es6/symbol';\r\nimport 'core-js/es6/object';\r\nimport 'core-js/es6/function';\r\nimport 'core-js/es6/parse-int';\r\nimport 'core-js/es6/parse-float';\r\nimport 'core-js/es6/number';\r\nimport 'core-js/es6/math';\r\nimport 'core-js/es6/string';\r\nimport 'core-js/es6/date';\r\nimport 'core-js/es6/array';\r\nimport 'core-js/es6/regexp';\r\nimport 'core-js/es6/map';\r\nimport 'core-js/es6/set';\r\nimport 'core-js/es6/reflect';\r\nimport 'core-js/es7/object';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js';\r\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\n/**\n * @license Angular v14.2.0-next.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n var _a;\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n var _a;\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch (_a) {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n api.patchMethod(global, 'queueMicrotask', delegate => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n","require('../modules/es6.string.iterator');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nmodule.exports = require('../modules/_core').Array;\n","require('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nmodule.exports = Date;\n","require('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nmodule.exports = require('../modules/_core').Function;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nmodule.exports = require('../modules/_core').Map;\n","require('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nmodule.exports = require('../modules/_core').Math;\n","require('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nmodule.exports = require('../modules/_core').Number;\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\n\nmodule.exports = require('../modules/_core').Object;\n","require('../modules/es6.parse-float');\nmodule.exports = require('../modules/_core').parseFloat;\n","require('../modules/es6.parse-int');\nmodule.exports = require('../modules/_core').parseInt;\n","require('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core').Reflect;\n","require('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').RegExp;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nmodule.exports = require('../modules/_core').Set;\n","require('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').String;\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","require('../modules/es7.object.get-own-property-descriptors');\nrequire('../modules/es7.object.values');\nrequire('../modules/es7.object.entries');\nrequire('../modules/es7.object.define-getter');\nrequire('../modules/es7.object.define-setter');\nrequire('../modules/es7.object.lookup-getter');\nrequire('../modules/es7.object.lookup-setter');\nmodule.exports = require('../modules/_core').Object;\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\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 NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(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 (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\n});\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\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 || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar TagContentType;\n(function (TagContentType) {\n TagContentType[TagContentType[\"RAW_TEXT\"] = 0] = \"RAW_TEXT\";\n TagContentType[TagContentType[\"ESCAPABLE_RAW_TEXT\"] = 1] = \"ESCAPABLE_RAW_TEXT\";\n TagContentType[TagContentType[\"PARSABLE_DATA\"] = 2] = \"PARSABLE_DATA\";\n})(TagContentType || (TagContentType = {}));\nfunction splitNsName(elementName) {\n if (elementName[0] != ':') {\n return [null, elementName];\n }\n const colonIndex = elementName.indexOf(':', 1);\n if (colonIndex === -1) {\n throw new Error(`Unsupported format \"${elementName}\" expecting \":namespace:name\"`);\n }\n return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];\n}\n// `` tags work the same regardless the namespace\nfunction isNgContainer(tagName) {\n return splitNsName(tagName)[1] === 'ng-container';\n}\n// `` tags work the same regardless the namespace\nfunction isNgContent(tagName) {\n return splitNsName(tagName)[1] === 'ng-content';\n}\n// `` tags work the same regardless the namespace\nfunction isNgTemplate(tagName) {\n return splitNsName(tagName)[1] === 'ng-template';\n}\nfunction getNsPrefix(fullName) {\n return fullName === null ? null : splitNsName(fullName)[0];\n}\nfunction mergeNsAndName(prefix, localName) {\n return prefix ? `:${prefix}:${localName}` : localName;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass HtmlTagDefinition {\n constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false } = {}) {\n this.closedByChildren = {};\n this.closedByParent = false;\n this.canSelfClose = false;\n if (closedByChildren && closedByChildren.length > 0) {\n closedByChildren.forEach(tagName => this.closedByChildren[tagName] = true);\n }\n this.isVoid = isVoid;\n this.closedByParent = closedByParent || isVoid;\n this.implicitNamespacePrefix = implicitNamespacePrefix || null;\n this.contentType = contentType;\n this.ignoreFirstLf = ignoreFirstLf;\n this.preventNamespaceInheritance = preventNamespaceInheritance;\n }\n isClosedByChild(name) {\n return this.isVoid || name.toLowerCase() in this.closedByChildren;\n }\n getContentType(prefix) {\n if (typeof this.contentType === 'object') {\n const overrideType = prefix === undefined ? undefined : this.contentType[prefix];\n return overrideType ?? this.contentType.default;\n }\n return this.contentType;\n }\n}\nlet _DEFAULT_TAG_DEFINITION;\n// see https://www.w3.org/TR/html51/syntax.html#optional-tags\n// This implementation does not fully conform to the HTML5 spec.\nlet TAG_DEFINITIONS;\nfunction getHtmlTagDefinition(tagName) {\n if (!TAG_DEFINITIONS) {\n _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();\n TAG_DEFINITIONS = {\n 'base': new HtmlTagDefinition({ isVoid: true }),\n 'meta': new HtmlTagDefinition({ isVoid: true }),\n 'area': new HtmlTagDefinition({ isVoid: true }),\n 'embed': new HtmlTagDefinition({ isVoid: true }),\n 'link': new HtmlTagDefinition({ isVoid: true }),\n 'img': new HtmlTagDefinition({ isVoid: true }),\n 'input': new HtmlTagDefinition({ isVoid: true }),\n 'param': new HtmlTagDefinition({ isVoid: true }),\n 'hr': new HtmlTagDefinition({ isVoid: true }),\n 'br': new HtmlTagDefinition({ isVoid: true }),\n 'source': new HtmlTagDefinition({ isVoid: true }),\n 'track': new HtmlTagDefinition({ isVoid: true }),\n 'wbr': new HtmlTagDefinition({ isVoid: true }),\n 'p': new HtmlTagDefinition({\n closedByChildren: [\n 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset',\n 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5',\n 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol',\n 'p', 'pre', 'section', 'table', 'ul'\n ],\n closedByParent: true\n }),\n 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),\n 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),\n 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),\n 'tr': new HtmlTagDefinition({ closedByChildren: ['tr'], closedByParent: true }),\n 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'col': new HtmlTagDefinition({ isVoid: true }),\n 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),\n 'foreignObject': new HtmlTagDefinition({\n // Usually the implicit namespace here would be redundant since it will be inherited from\n // the parent `svg`, but we have to do it for `foreignObject`, because the way the parser\n // works is that the parent node of an end tag is its own start tag which means that\n // the `preventNamespaceInheritance` on `foreignObject` would have it default to the\n // implicit namespace which is `html`, unless specified otherwise.\n implicitNamespacePrefix: 'svg',\n // We want to prevent children of foreignObject from inheriting its namespace, because\n // the point of the element is to allow nodes from other namespaces to be inserted.\n preventNamespaceInheritance: true,\n }),\n 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),\n 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),\n 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),\n 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),\n 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),\n 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),\n 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),\n 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'style': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'script': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'title': new HtmlTagDefinition({\n // The browser supports two separate `title` tags which have to use\n // a different content type: `HTMLTitleElement` and `SVGTitleElement`\n contentType: { default: TagContentType.ESCAPABLE_RAW_TEXT, svg: TagContentType.PARSABLE_DATA }\n }),\n 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),\n };\n }\n // We have to make both a case-sensitive and a case-insensitive lookup, because\n // HTML tag names are case insensitive, whereas some SVG tags are case sensitive.\n return TAG_DEFINITIONS[tagName] ?? TAG_DEFINITIONS[tagName.toLowerCase()] ??\n _DEFAULT_TAG_DEFINITION;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SELECTOR_REGEXP = new RegExp('(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\\\"\\']?)([^\\\\]\\\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n'g');\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nclass CssSelector {\n constructor() {\n this.element = null;\n this.classNames = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n this.attrs = [];\n this.notSelectors = [];\n }\n static parse(selector) {\n const results = [];\n const _addResult = (res, cssSel) => {\n if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while (match = _SELECTOR_REGEXP.exec(selector)) {\n if (match[1 /* SelectorRegexp.NOT */]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[2 /* SelectorRegexp.TAG */];\n if (tag) {\n const prefix = match[3 /* SelectorRegexp.PREFIX */];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n }\n else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n }\n else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[4 /* SelectorRegexp.ATTRIBUTE */];\n if (attribute) {\n current.addAttribute(current.unescapeAttribute(attribute), match[6 /* SelectorRegexp.ATTRIBUTE_VALUE */]);\n }\n if (match[7 /* SelectorRegexp.NOT_END */]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[8 /* SelectorRegexp.SEPARATOR */]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr) {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(`Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`);\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string.\n */\n escapeAttribute(attr) {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n isElementSelector() {\n return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&\n this.notSelectors.length === 0;\n }\n hasElementSelector() {\n return !!this.element;\n }\n setElement(element = null) {\n this.element = element;\n }\n /** Gets a template string for an element that matches the selector. */\n getMatchingElementTemplate() {\n const tagName = this.element || 'div';\n const classAttr = this.classNames.length > 0 ? ` class=\"${this.classNames.join(' ')}\"` : '';\n let attrs = '';\n for (let i = 0; i < this.attrs.length; i += 2) {\n const attrName = this.attrs[i];\n const attrValue = this.attrs[i + 1] !== '' ? `=\"${this.attrs[i + 1]}\"` : '';\n attrs += ` ${attrName}${attrValue}`;\n }\n return getHtmlTagDefinition(tagName).isVoid ? `<${tagName}${classAttr}${attrs}/>` :\n `<${tagName}${classAttr}${attrs}>`;\n }\n getAttrs() {\n const result = [];\n if (this.classNames.length > 0) {\n result.push('class', this.classNames.join(' '));\n }\n return result.concat(this.attrs);\n }\n addAttribute(name, value = '') {\n this.attrs.push(name, value && value.toLowerCase() || '');\n }\n addClassName(name) {\n this.classNames.push(name.toLowerCase());\n }\n toString() {\n let res = this.element || '';\n if (this.classNames) {\n this.classNames.forEach(klass => res += `.${klass}`);\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach(notSelector => res += `:not(${notSelector})`);\n return res;\n }\n}\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nclass SelectorMatcher {\n constructor() {\n this._elementMap = new Map();\n this._elementPartialMap = new Map();\n this._classMap = new Map();\n this._classPartialMap = new Map();\n this._attrValueMap = new Map();\n this._attrValuePartialMap = new Map();\n this._listContexts = [];\n }\n static createNotMatcher(notSelectors) {\n const notMatcher = new SelectorMatcher();\n notMatcher.addSelectables(notSelectors, null);\n return notMatcher;\n }\n addSelectables(cssSelectors, callbackCtxt) {\n let listContext = null;\n if (cssSelectors.length > 1) {\n listContext = new SelectorListContext(cssSelectors);\n this._listContexts.push(listContext);\n }\n for (let i = 0; i < cssSelectors.length; i++) {\n this._addSelectable(cssSelectors[i], callbackCtxt, listContext);\n }\n }\n /**\n * Add an object that can be found later on by calling `match`.\n * @param cssSelector A css selector\n * @param callbackCtxt An opaque object that will be given to the callback of the `match` function\n */\n _addSelectable(cssSelector, callbackCtxt, listContext) {\n let matcher = this;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n if (element) {\n const isTerminal = attrs.length === 0 && classNames.length === 0;\n if (isTerminal) {\n this._addTerminal(matcher._elementMap, element, selectable);\n }\n else {\n matcher = this._addPartial(matcher._elementPartialMap, element);\n }\n }\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const isTerminal = attrs.length === 0 && i === classNames.length - 1;\n const className = classNames[i];\n if (isTerminal) {\n this._addTerminal(matcher._classMap, className, selectable);\n }\n else {\n matcher = this._addPartial(matcher._classPartialMap, className);\n }\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const isTerminal = i === attrs.length - 2;\n const name = attrs[i];\n const value = attrs[i + 1];\n if (isTerminal) {\n const terminalMap = matcher._attrValueMap;\n let terminalValuesMap = terminalMap.get(name);\n if (!terminalValuesMap) {\n terminalValuesMap = new Map();\n terminalMap.set(name, terminalValuesMap);\n }\n this._addTerminal(terminalValuesMap, value, selectable);\n }\n else {\n const partialMap = matcher._attrValuePartialMap;\n let partialValuesMap = partialMap.get(name);\n if (!partialValuesMap) {\n partialValuesMap = new Map();\n partialMap.set(name, partialValuesMap);\n }\n matcher = this._addPartial(partialValuesMap, value);\n }\n }\n }\n }\n _addTerminal(map, name, selectable) {\n let terminalList = map.get(name);\n if (!terminalList) {\n terminalList = [];\n map.set(name, terminalList);\n }\n terminalList.push(selectable);\n }\n _addPartial(map, name) {\n let matcher = map.get(name);\n if (!matcher) {\n matcher = new SelectorMatcher();\n map.set(name, matcher);\n }\n return matcher;\n }\n /**\n * Find the objects that have been added via `addSelectable`\n * whose css selector is contained in the given css selector.\n * @param cssSelector A css selector\n * @param matchedCallback This callback will be called with the object handed into `addSelectable`\n * @return boolean true if a match was found\n */\n match(cssSelector, matchedCallback) {\n let result = false;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n for (let i = 0; i < this._listContexts.length; i++) {\n this._listContexts[i].alreadyMatched = false;\n }\n result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||\n result;\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const className = classNames[i];\n result =\n this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;\n result =\n this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) ||\n result;\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const name = attrs[i];\n const value = attrs[i + 1];\n const terminalValuesMap = this._attrValueMap.get(name);\n if (value) {\n result =\n this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;\n const partialValuesMap = this._attrValuePartialMap.get(name);\n if (value) {\n result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;\n }\n }\n return result;\n }\n /** @internal */\n _matchTerminal(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n let selectables = map.get(name) || [];\n const starSelectables = map.get('*');\n if (starSelectables) {\n selectables = selectables.concat(starSelectables);\n }\n if (selectables.length === 0) {\n return false;\n }\n let selectable;\n let result = false;\n for (let i = 0; i < selectables.length; i++) {\n selectable = selectables[i];\n result = selectable.finalize(cssSelector, matchedCallback) || result;\n }\n return result;\n }\n /** @internal */\n _matchPartial(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n const nestedSelector = map.get(name);\n if (!nestedSelector) {\n return false;\n }\n // TODO(perf): get rid of recursion and measure again\n // TODO(perf): don't pass the whole selector into the recursion,\n // but only the not processed parts\n return nestedSelector.match(cssSelector, matchedCallback);\n }\n}\nclass SelectorListContext {\n constructor(selectors) {\n this.selectors = selectors;\n this.alreadyMatched = false;\n }\n}\n// Store context to pass back selector and context when a selector is matched\nclass SelectorContext {\n constructor(selector, cbContext, listContext) {\n this.selector = selector;\n this.cbContext = cbContext;\n this.listContext = listContext;\n this.notSelectors = selector.notSelectors;\n }\n finalize(cssSelector, callback) {\n let result = true;\n if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {\n const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);\n result = !notMatcher.match(cssSelector, null);\n }\n if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {\n if (this.listContext) {\n this.listContext.alreadyMatched = true;\n }\n callback(this.selector, this.cbContext);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\nconst CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\nconst NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\nconst Type$1 = Function;\nvar SecurityContext;\n(function (SecurityContext) {\n SecurityContext[SecurityContext[\"NONE\"] = 0] = \"NONE\";\n SecurityContext[SecurityContext[\"HTML\"] = 1] = \"HTML\";\n SecurityContext[SecurityContext[\"STYLE\"] = 2] = \"STYLE\";\n SecurityContext[SecurityContext[\"SCRIPT\"] = 3] = \"SCRIPT\";\n SecurityContext[SecurityContext[\"URL\"] = 4] = \"URL\";\n SecurityContext[SecurityContext[\"RESOURCE_URL\"] = 5] = \"RESOURCE_URL\";\n})(SecurityContext || (SecurityContext = {}));\nvar MissingTranslationStrategy;\n(function (MissingTranslationStrategy) {\n MissingTranslationStrategy[MissingTranslationStrategy[\"Error\"] = 0] = \"Error\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Warning\"] = 1] = \"Warning\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Ignore\"] = 2] = \"Ignore\";\n})(MissingTranslationStrategy || (MissingTranslationStrategy = {}));\nfunction parserSelectorToSimpleSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n const elementName = selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\nfunction parserSelectorToNegativeSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n if (selector.element) {\n return [\n 1 /* SelectorFlags.NOT */ | 4 /* SelectorFlags.ELEMENT */, selector.element, ...selector.attrs, ...classes\n ];\n }\n else if (selector.attrs.length) {\n return [1 /* SelectorFlags.NOT */ | 2 /* SelectorFlags.ATTRIBUTE */, ...selector.attrs, ...classes];\n }\n else {\n return selector.classNames && selector.classNames.length ?\n [1 /* SelectorFlags.NOT */ | 8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n }\n}\nfunction parserSelectorToR3Selector(selector) {\n const positive = parserSelectorToSimpleSelector(selector);\n const negative = selector.notSelectors && selector.notSelectors.length ?\n selector.notSelectors.map(notSelector => parserSelectorToNegativeSelector(notSelector)) :\n [];\n return positive.concat(...negative);\n}\nfunction parseSelectorToR3Selector(selector) {\n return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];\n}\n\nvar core = /*#__PURE__*/Object.freeze({\n __proto__: null,\n emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue,\n get ViewEncapsulation () { return ViewEncapsulation; },\n get ChangeDetectionStrategy () { return ChangeDetectionStrategy; },\n CUSTOM_ELEMENTS_SCHEMA: CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA,\n Type: Type$1,\n get SecurityContext () { return SecurityContext; },\n get MissingTranslationStrategy () { return MissingTranslationStrategy; },\n parseSelectorToR3Selector: parseSelectorToR3Selector\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction splitAtColon(input, defaultValues) {\n return _splitAt(input, ':', defaultValues);\n}\nfunction splitAtPeriod(input, defaultValues) {\n return _splitAt(input, '.', defaultValues);\n}\nfunction _splitAt(input, character, defaultValues) {\n const characterIndex = input.indexOf(character);\n if (characterIndex == -1)\n return defaultValues;\n return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()];\n}\nfunction noUndefined(val) {\n return val === undefined ? null : val;\n}\nfunction error(msg) {\n throw new Error(`Internal Error: ${msg}`);\n}\n// Escape characters that have a special meaning in Regular Expressions\nfunction escapeRegExp(s) {\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\nfunction utf8Encode(str) {\n let encoded = [];\n for (let index = 0; index < str.length; index++) {\n let codePoint = str.charCodeAt(index);\n // decode surrogate\n // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > (index + 1)) {\n const low = str.charCodeAt(index + 1);\n if (low >= 0xdc00 && low <= 0xdfff) {\n index++;\n codePoint = ((codePoint - 0xd800) << 10) + low - 0xdc00 + 0x10000;\n }\n }\n if (codePoint <= 0x7f) {\n encoded.push(codePoint);\n }\n else if (codePoint <= 0x7ff) {\n encoded.push(((codePoint >> 6) & 0x1F) | 0xc0, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0xffff) {\n encoded.push((codePoint >> 12) | 0xe0, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0x1fffff) {\n encoded.push(((codePoint >> 18) & 0x07) | 0xf0, ((codePoint >> 12) & 0x3f) | 0x80, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n }\n return encoded;\n}\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n if (!token.toString) {\n return 'object';\n }\n // WARNING: do not try to `JSON.stringify(token)` here\n // see https://github.com/angular/angular/issues/23440\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\nclass Version {\n constructor(full) {\n this.full = full;\n const splits = full.split('.');\n this.major = splits[0];\n this.minor = splits[1];\n this.patch = splits.slice(2).join('.');\n }\n}\n// Check `global` first, because in Node tests both `global` and `window` may be defined and our\n// `_global` variable should point to the NodeJS `global` in that case. Note: Typeof/Instanceof\n// checks are considered side-effects in Terser. We explicitly mark this as side-effect free:\n// https://github.com/terser/terser/issues/250.\nconst _global = ( /* @__PURE__ */(() => (typeof global !== 'undefined' && global) || (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self))());\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Partitions a given array into 2 arrays, based on a boolean value returned by the condition\n * function.\n *\n * @param arr Input array that should be partitioned\n * @param conditionFn Condition function that is called for each item in a given array and returns a\n * boolean value.\n */\nfunction partitionArray(arr, conditionFn) {\n const truthy = [];\n const falsy = [];\n for (const item of arr) {\n (conditionFn(item) ? truthy : falsy).push(item);\n }\n return [truthy, falsy];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a big integer using a buffer of its individual digits, with the least significant\n * digit stored at the beginning of the array (little endian).\n *\n * For performance reasons, each instance is mutable. The addition operation can be done in-place\n * to reduce memory pressure of allocation for the digits array.\n */\nclass BigInteger {\n /**\n * Creates a big integer using its individual digits in little endian storage.\n */\n constructor(digits) {\n this.digits = digits;\n }\n static zero() {\n return new BigInteger([0]);\n }\n static one() {\n return new BigInteger([1]);\n }\n /**\n * Creates a clone of this instance.\n */\n clone() {\n return new BigInteger(this.digits.slice());\n }\n /**\n * Returns a new big integer with the sum of `this` and `other` as its value. This does not mutate\n * `this` but instead returns a new instance, unlike `addToSelf`.\n */\n add(other) {\n const result = this.clone();\n result.addToSelf(other);\n return result;\n }\n /**\n * Adds `other` to the instance itself, thereby mutating its value.\n */\n addToSelf(other) {\n const maxNrOfDigits = Math.max(this.digits.length, other.digits.length);\n let carry = 0;\n for (let i = 0; i < maxNrOfDigits; i++) {\n let digitSum = carry;\n if (i < this.digits.length) {\n digitSum += this.digits[i];\n }\n if (i < other.digits.length) {\n digitSum += other.digits[i];\n }\n if (digitSum >= 10) {\n this.digits[i] = digitSum - 10;\n carry = 1;\n }\n else {\n this.digits[i] = digitSum;\n carry = 0;\n }\n }\n // Apply a remaining carry if needed.\n if (carry > 0) {\n this.digits[maxNrOfDigits] = 1;\n }\n }\n /**\n * Builds the decimal string representation of the big integer. As this is stored in\n * little endian, the digits are concatenated in reverse order.\n */\n toString() {\n let res = '';\n for (let i = this.digits.length - 1; i >= 0; i--) {\n res += this.digits[i];\n }\n return res;\n }\n}\n/**\n * Represents a big integer which is optimized for multiplication operations, as its power-of-twos\n * are memoized. See `multiplyBy()` for details on the multiplication algorithm.\n */\nclass BigIntForMultiplication {\n constructor(value) {\n this.powerOfTwos = [value];\n }\n /**\n * Returns the big integer itself.\n */\n getValue() {\n return this.powerOfTwos[0];\n }\n /**\n * Computes the value for `num * b`, where `num` is a JS number and `b` is a big integer. The\n * value for `b` is represented by a storage model that is optimized for this computation.\n *\n * This operation is implemented in N(log2(num)) by continuous halving of the number, where the\n * least-significant bit (LSB) is tested in each iteration. If the bit is set, the bit's index is\n * used as exponent into the power-of-two multiplication of `b`.\n *\n * As an example, consider the multiplication num=42, b=1337. In binary 42 is 0b00101010 and the\n * algorithm unrolls into the following iterations:\n *\n * Iteration | num | LSB | b * 2^iter | Add? | product\n * -----------|------------|------|------------|------|--------\n * 0 | 0b00101010 | 0 | 1337 | No | 0\n * 1 | 0b00010101 | 1 | 2674 | Yes | 2674\n * 2 | 0b00001010 | 0 | 5348 | No | 2674\n * 3 | 0b00000101 | 1 | 10696 | Yes | 13370\n * 4 | 0b00000010 | 0 | 21392 | No | 13370\n * 5 | 0b00000001 | 1 | 42784 | Yes | 56154\n * 6 | 0b00000000 | 0 | 85568 | No | 56154\n *\n * The computed product of 56154 is indeed the correct result.\n *\n * The `BigIntForMultiplication` representation for a big integer provides memoized access to the\n * power-of-two values to reduce the workload in computing those values.\n */\n multiplyBy(num) {\n const product = BigInteger.zero();\n this.multiplyByAndAddTo(num, product);\n return product;\n }\n /**\n * See `multiplyBy()` for details. This function allows for the computed product to be added\n * directly to the provided result big integer.\n */\n multiplyByAndAddTo(num, result) {\n for (let exponent = 0; num !== 0; num = num >>> 1, exponent++) {\n if (num & 1) {\n const value = this.getMultipliedByPowerOfTwo(exponent);\n result.addToSelf(value);\n }\n }\n }\n /**\n * Computes and memoizes the big integer value for `this.number * 2^exponent`.\n */\n getMultipliedByPowerOfTwo(exponent) {\n // Compute the powers up until the requested exponent, where each value is computed from its\n // predecessor. This is simple as `this.number * 2^(exponent - 1)` only has to be doubled (i.e.\n // added to itself) to reach `this.number * 2^exponent`.\n for (let i = this.powerOfTwos.length; i <= exponent; i++) {\n const previousPower = this.powerOfTwos[i - 1];\n this.powerOfTwos[i] = previousPower.add(previousPower);\n }\n return this.powerOfTwos[exponent];\n }\n}\n/**\n * Represents an exponentiation operation for the provided base, of which exponents are computed and\n * memoized. The results are represented by a `BigIntForMultiplication` which is tailored for\n * multiplication operations by memoizing the power-of-twos. This effectively results in a matrix\n * representation that is lazily computed upon request.\n */\nclass BigIntExponentiation {\n constructor(base) {\n this.base = base;\n this.exponents = [new BigIntForMultiplication(BigInteger.one())];\n }\n /**\n * Compute the value for `this.base^exponent`, resulting in a big integer that is optimized for\n * further multiplication operations.\n */\n toThePowerOf(exponent) {\n // Compute the results up until the requested exponent, where every value is computed from its\n // predecessor. This is because `this.base^(exponent - 1)` only has to be multiplied by `base`\n // to reach `this.base^exponent`.\n for (let i = this.exponents.length; i <= exponent; i++) {\n const value = this.exponents[i - 1].multiplyBy(this.base);\n this.exponents[i] = new BigIntForMultiplication(value);\n }\n return this.exponents[exponent];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Return the message id or compute it using the XLIFF1 digest.\n */\nfunction digest$1(message) {\n return message.id || computeDigest(message);\n}\n/**\n * Compute the message id using the XLIFF1 digest.\n */\nfunction computeDigest(message) {\n return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`);\n}\n/**\n * Return the message id or compute it using the XLIFF2/XMB/$localize digest.\n */\nfunction decimalDigest(message) {\n return message.id || computeDecimalDigest(message);\n}\n/**\n * Compute the message id using the XLIFF2/XMB/$localize digest.\n */\nfunction computeDecimalDigest(message) {\n const visitor = new _SerializerIgnoreIcuExpVisitor();\n const parts = message.nodes.map(a => a.visit(visitor, null));\n return computeMsgId(parts.join(''), message.meaning);\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * The visitor is also used in the i18n parser tests\n *\n * @internal\n */\nclass _SerializerVisitor {\n visitText(text, context) {\n return text.value;\n }\n visitContainer(container, context) {\n return `[${container.children.map(child => child.visit(this)).join(', ')}]`;\n }\n visitIcu(icu, context) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`;\n }\n visitTagPlaceholder(ph, context) {\n return ph.isVoid ?\n `` :\n `${ph.children.map(child => child.visit(this)).join(', ')}`;\n }\n visitPlaceholder(ph, context) {\n return ph.value ? `${ph.value}` : ``;\n }\n visitIcuPlaceholder(ph, context) {\n return `${ph.value.visit(this)}`;\n }\n}\nconst serializerVisitor$1 = new _SerializerVisitor();\nfunction serializeNodes(nodes) {\n return nodes.map(a => a.visit(serializerVisitor$1, null));\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * Ignore the ICU expressions so that message IDs stays identical if only the expression changes.\n *\n * @internal\n */\nclass _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {\n visitIcu(icu, context) {\n let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n // Do not take the expression into account\n return `{${icu.type}, ${strCases.join(', ')}}`;\n }\n}\n/**\n * Compute the SHA1 of the given string\n *\n * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n *\n * WARNING: this function has not been designed not tested with security in mind.\n * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n */\nfunction sha1(str) {\n const utf8 = utf8Encode(str);\n const words32 = bytesToWords32(utf8, Endian.Big);\n const len = utf8.length * 8;\n const w = newArray(80);\n let a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476, e = 0xc3d2e1f0;\n words32[len >> 5] |= 0x80 << (24 - len % 32);\n words32[((len + 64 >> 9) << 4) + 15] = len;\n for (let i = 0; i < words32.length; i += 16) {\n const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;\n for (let j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n }\n else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n const fkVal = fk(j, b, c, d);\n const f = fkVal[0];\n const k = fkVal[1];\n const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n e = d;\n d = c;\n c = rol32(b, 30);\n b = a;\n a = temp;\n }\n a = add32(a, h0);\n b = add32(b, h1);\n c = add32(c, h2);\n d = add32(d, h3);\n e = add32(e, h4);\n }\n return bytesToHexString(words32ToByteString([a, b, c, d, e]));\n}\nfunction fk(index, b, c, d) {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n return [b ^ c ^ d, 0xca62c1d6];\n}\n/**\n * Compute the fingerprint of the given string\n *\n * The output is 64 bit number encoded as a decimal string\n *\n * based on:\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java\n */\nfunction fingerprint(str) {\n const utf8 = utf8Encode(str);\n let hi = hash32(utf8, 0);\n let lo = hash32(utf8, 102072);\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n return [hi, lo];\n}\nfunction computeMsgId(msg, meaning = '') {\n let msgFingerprint = fingerprint(msg);\n if (meaning) {\n const meaningFingerprint = fingerprint(meaning);\n msgFingerprint = add64(rol64(msgFingerprint, 1), meaningFingerprint);\n }\n const hi = msgFingerprint[0];\n const lo = msgFingerprint[1];\n return wordsToDecimalString(hi & 0x7fffffff, lo);\n}\nfunction hash32(bytes, c) {\n let a = 0x9e3779b9, b = 0x9e3779b9;\n let i;\n const len = bytes.length;\n for (i = 0; i + 12 <= len; i += 12) {\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n c = add32(c, wordAt(bytes, i + 8, Endian.Little));\n const res = mix(a, b, c);\n a = res[0], b = res[1], c = res[2];\n }\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n // the first byte of c is reserved for the length\n c = add32(c, len);\n c = add32(c, wordAt(bytes, i + 8, Endian.Little) << 8);\n return mix(a, b, c)[2];\n}\n// clang-format off\nfunction mix(a, b, c) {\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 13;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 8;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 13;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 12;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 16;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 5;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 3;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 10;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 15;\n return [a, b, c];\n}\n// clang-format on\n// Utils\nvar Endian;\n(function (Endian) {\n Endian[Endian[\"Little\"] = 0] = \"Little\";\n Endian[Endian[\"Big\"] = 1] = \"Big\";\n})(Endian || (Endian = {}));\nfunction add32(a, b) {\n return add32to64(a, b)[1];\n}\nfunction add32to64(a, b) {\n const low = (a & 0xffff) + (b & 0xffff);\n const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\nfunction add64(a, b) {\n const ah = a[0], al = a[1];\n const bh = b[0], bl = b[1];\n const result = add32to64(al, bl);\n const carry = result[0];\n const l = result[1];\n const h = add32(add32(ah, bh), carry);\n return [h, l];\n}\nfunction sub32(a, b) {\n const low = (a & 0xffff) - (b & 0xffff);\n const high = (a >> 16) - (b >> 16) + (low >> 16);\n return (high << 16) | (low & 0xffff);\n}\n// Rotate a 32b number left `count` position\nfunction rol32(a, count) {\n return (a << count) | (a >>> (32 - count));\n}\n// Rotate a 64b number left `count` position\nfunction rol64(num, count) {\n const hi = num[0], lo = num[1];\n const h = (hi << count) | (lo >>> (32 - count));\n const l = (lo << count) | (hi >>> (32 - count));\n return [h, l];\n}\nfunction bytesToWords32(bytes, endian) {\n const size = (bytes.length + 3) >>> 2;\n const words32 = [];\n for (let i = 0; i < size; i++) {\n words32[i] = wordAt(bytes, i * 4, endian);\n }\n return words32;\n}\nfunction byteAt(bytes, index) {\n return index >= bytes.length ? 0 : bytes[index];\n}\nfunction wordAt(bytes, index, endian) {\n let word = 0;\n if (endian === Endian.Big) {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (24 - 8 * i);\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << 8 * i;\n }\n }\n return word;\n}\nfunction words32ToByteString(words32) {\n return words32.reduce((bytes, word) => bytes.concat(word32ToByteString(word)), []);\n}\nfunction word32ToByteString(word) {\n let bytes = [];\n for (let i = 0; i < 4; i++) {\n bytes.push((word >>> 8 * (3 - i)) & 0xff);\n }\n return bytes;\n}\nfunction bytesToHexString(bytes) {\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n const b = byteAt(bytes, i);\n hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n }\n return hex.toLowerCase();\n}\n/**\n * Create a shared exponentiation pool for base-256 computations. This shared pool provides memoized\n * power-of-256 results with memoized power-of-two computations for efficient multiplication.\n *\n * For our purposes, this can be safely stored as a global without memory concerns. The reason is\n * that we encode two words, so only need the 0th (for the low word) and 4th (for the high word)\n * exponent.\n */\nconst base256 = new BigIntExponentiation(256);\n/**\n * Represents two 32-bit words as a single decimal number. This requires a big integer storage\n * model as JS numbers are not accurate enough to represent the 64-bit number.\n *\n * Based on https://www.danvk.org/hex2dec.html\n */\nfunction wordsToDecimalString(hi, lo) {\n // Encode the four bytes in lo in the lower digits of the decimal number.\n // Note: the multiplication results in lo itself but represented by a big integer using its\n // decimal digits.\n const decimal = base256.toThePowerOf(0).multiplyBy(lo);\n // Encode the four bytes in hi above the four lo bytes. lo is a maximum of (2^8)^4, which is why\n // this multiplication factor is applied.\n base256.toThePowerOf(4).multiplyByAndAddTo(hi, decimal);\n return decimal.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n//// Types\nvar TypeModifier;\n(function (TypeModifier) {\n TypeModifier[TypeModifier[\"None\"] = 0] = \"None\";\n TypeModifier[TypeModifier[\"Const\"] = 1] = \"Const\";\n})(TypeModifier || (TypeModifier = {}));\nclass Type {\n constructor(modifiers = TypeModifier.None) {\n this.modifiers = modifiers;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n}\nvar BuiltinTypeName;\n(function (BuiltinTypeName) {\n BuiltinTypeName[BuiltinTypeName[\"Dynamic\"] = 0] = \"Dynamic\";\n BuiltinTypeName[BuiltinTypeName[\"Bool\"] = 1] = \"Bool\";\n BuiltinTypeName[BuiltinTypeName[\"String\"] = 2] = \"String\";\n BuiltinTypeName[BuiltinTypeName[\"Int\"] = 3] = \"Int\";\n BuiltinTypeName[BuiltinTypeName[\"Number\"] = 4] = \"Number\";\n BuiltinTypeName[BuiltinTypeName[\"Function\"] = 5] = \"Function\";\n BuiltinTypeName[BuiltinTypeName[\"Inferred\"] = 6] = \"Inferred\";\n BuiltinTypeName[BuiltinTypeName[\"None\"] = 7] = \"None\";\n})(BuiltinTypeName || (BuiltinTypeName = {}));\nclass BuiltinType extends Type {\n constructor(name, modifiers) {\n super(modifiers);\n this.name = name;\n }\n visitType(visitor, context) {\n return visitor.visitBuiltinType(this, context);\n }\n}\nclass ExpressionType extends Type {\n constructor(value, modifiers, typeParams = null) {\n super(modifiers);\n this.value = value;\n this.typeParams = typeParams;\n }\n visitType(visitor, context) {\n return visitor.visitExpressionType(this, context);\n }\n}\nclass ArrayType extends Type {\n constructor(of, modifiers) {\n super(modifiers);\n this.of = of;\n }\n visitType(visitor, context) {\n return visitor.visitArrayType(this, context);\n }\n}\nclass MapType extends Type {\n constructor(valueType, modifiers) {\n super(modifiers);\n this.valueType = valueType || null;\n }\n visitType(visitor, context) {\n return visitor.visitMapType(this, context);\n }\n}\nconst DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);\nconst INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);\nconst BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);\nconst INT_TYPE = new BuiltinType(BuiltinTypeName.Int);\nconst NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);\nconst STRING_TYPE = new BuiltinType(BuiltinTypeName.String);\nconst FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);\nconst NONE_TYPE = new BuiltinType(BuiltinTypeName.None);\n///// Expressions\nvar UnaryOperator;\n(function (UnaryOperator) {\n UnaryOperator[UnaryOperator[\"Minus\"] = 0] = \"Minus\";\n UnaryOperator[UnaryOperator[\"Plus\"] = 1] = \"Plus\";\n})(UnaryOperator || (UnaryOperator = {}));\nvar BinaryOperator;\n(function (BinaryOperator) {\n BinaryOperator[BinaryOperator[\"Equals\"] = 0] = \"Equals\";\n BinaryOperator[BinaryOperator[\"NotEquals\"] = 1] = \"NotEquals\";\n BinaryOperator[BinaryOperator[\"Identical\"] = 2] = \"Identical\";\n BinaryOperator[BinaryOperator[\"NotIdentical\"] = 3] = \"NotIdentical\";\n BinaryOperator[BinaryOperator[\"Minus\"] = 4] = \"Minus\";\n BinaryOperator[BinaryOperator[\"Plus\"] = 5] = \"Plus\";\n BinaryOperator[BinaryOperator[\"Divide\"] = 6] = \"Divide\";\n BinaryOperator[BinaryOperator[\"Multiply\"] = 7] = \"Multiply\";\n BinaryOperator[BinaryOperator[\"Modulo\"] = 8] = \"Modulo\";\n BinaryOperator[BinaryOperator[\"And\"] = 9] = \"And\";\n BinaryOperator[BinaryOperator[\"Or\"] = 10] = \"Or\";\n BinaryOperator[BinaryOperator[\"BitwiseAnd\"] = 11] = \"BitwiseAnd\";\n BinaryOperator[BinaryOperator[\"Lower\"] = 12] = \"Lower\";\n BinaryOperator[BinaryOperator[\"LowerEquals\"] = 13] = \"LowerEquals\";\n BinaryOperator[BinaryOperator[\"Bigger\"] = 14] = \"Bigger\";\n BinaryOperator[BinaryOperator[\"BiggerEquals\"] = 15] = \"BiggerEquals\";\n BinaryOperator[BinaryOperator[\"NullishCoalesce\"] = 16] = \"NullishCoalesce\";\n})(BinaryOperator || (BinaryOperator = {}));\nfunction nullSafeIsEquivalent(base, other) {\n if (base == null || other == null) {\n return base == other;\n }\n return base.isEquivalent(other);\n}\nfunction areAllEquivalentPredicate(base, other, equivalentPredicate) {\n const len = base.length;\n if (len !== other.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (!equivalentPredicate(base[i], other[i])) {\n return false;\n }\n }\n return true;\n}\nfunction areAllEquivalent(base, other) {\n return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement));\n}\nclass Expression {\n constructor(type, sourceSpan) {\n this.type = type || null;\n this.sourceSpan = sourceSpan || null;\n }\n prop(name, sourceSpan) {\n return new ReadPropExpr(this, name, null, sourceSpan);\n }\n key(index, type, sourceSpan) {\n return new ReadKeyExpr(this, index, type, sourceSpan);\n }\n callFn(params, sourceSpan, pure) {\n return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);\n }\n instantiate(params, type, sourceSpan) {\n return new InstantiateExpr(this, params, type, sourceSpan);\n }\n conditional(trueCase, falseCase = null, sourceSpan) {\n return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);\n }\n equals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);\n }\n notEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);\n }\n identical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);\n }\n notIdentical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);\n }\n minus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);\n }\n plus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);\n }\n divide(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);\n }\n multiply(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);\n }\n modulo(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);\n }\n and(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);\n }\n bitwiseAnd(rhs, sourceSpan, parens = true) {\n return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);\n }\n or(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);\n }\n lower(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);\n }\n lowerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);\n }\n bigger(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);\n }\n biggerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);\n }\n isBlank(sourceSpan) {\n // Note: We use equals by purpose here to compare to null and undefined in JS.\n // We use the typed null to allow strictNullChecks to narrow types.\n return this.equals(TYPED_NULL_EXPR, sourceSpan);\n }\n nullishCoalesce(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan);\n }\n toStmt() {\n return new ExpressionStatement(this, null);\n }\n}\nclass ReadVarExpr extends Expression {\n constructor(name, type, sourceSpan) {\n super(type, sourceSpan);\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadVarExpr && this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadVarExpr(this, context);\n }\n set(value) {\n return new WriteVarExpr(this.name, value, null, this.sourceSpan);\n }\n}\nclass TypeofExpr extends Expression {\n constructor(expr, type, sourceSpan) {\n super(type, sourceSpan);\n this.expr = expr;\n }\n visitExpression(visitor, context) {\n return visitor.visitTypeofExpr(this, context);\n }\n isEquivalent(e) {\n return e instanceof TypeofExpr && e.expr.isEquivalent(this.expr);\n }\n isConstant() {\n return this.expr.isConstant();\n }\n}\nclass WrappedNodeExpr extends Expression {\n constructor(node, type, sourceSpan) {\n super(type, sourceSpan);\n this.node = node;\n }\n isEquivalent(e) {\n return e instanceof WrappedNodeExpr && this.node === e.node;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWrappedNodeExpr(this, context);\n }\n}\nclass WriteVarExpr extends Expression {\n constructor(name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteVarExpr(this, context);\n }\n toDeclStmt(type, modifiers) {\n return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);\n }\n toConstDecl() {\n return this.toDeclStmt(INFERRED_TYPE, StmtModifier.Final);\n }\n}\nclass WriteKeyExpr extends Expression {\n constructor(receiver, index, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteKeyExpr(this, context);\n }\n}\nclass WritePropExpr extends Expression {\n constructor(receiver, name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWritePropExpr(this, context);\n }\n}\nclass InvokeFunctionExpr extends Expression {\n constructor(fn, args, type, sourceSpan, pure = false) {\n super(type, sourceSpan);\n this.fn = fn;\n this.args = args;\n this.pure = pure;\n }\n isEquivalent(e) {\n return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&\n areAllEquivalent(this.args, e.args) && this.pure === e.pure;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInvokeFunctionExpr(this, context);\n }\n}\nclass TaggedTemplateExpr extends Expression {\n constructor(tag, template, type, sourceSpan) {\n super(type, sourceSpan);\n this.tag = tag;\n this.template = template;\n }\n isEquivalent(e) {\n return e instanceof TaggedTemplateExpr && this.tag.isEquivalent(e.tag) &&\n areAllEquivalentPredicate(this.template.elements, e.template.elements, (a, b) => a.text === b.text) &&\n areAllEquivalent(this.template.expressions, e.template.expressions);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitTaggedTemplateExpr(this, context);\n }\n}\nclass InstantiateExpr extends Expression {\n constructor(classExpr, args, type, sourceSpan) {\n super(type, sourceSpan);\n this.classExpr = classExpr;\n this.args = args;\n }\n isEquivalent(e) {\n return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&\n areAllEquivalent(this.args, e.args);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInstantiateExpr(this, context);\n }\n}\nclass LiteralExpr extends Expression {\n constructor(value, type, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof LiteralExpr && this.value === e.value;\n }\n isConstant() {\n return true;\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralExpr(this, context);\n }\n}\nclass TemplateLiteral {\n constructor(elements, expressions) {\n this.elements = elements;\n this.expressions = expressions;\n }\n}\nclass TemplateLiteralElement {\n constructor(text, sourceSpan, rawText) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n // If `rawText` is not provided, try to extract the raw string from its\n // associated `sourceSpan`. If that is also not available, \"fake\" the raw\n // string instead by escaping the following control sequences:\n // - \"\\\" would otherwise indicate that the next character is a control character.\n // - \"`\" and \"${\" are template string control sequences that would otherwise prematurely\n // indicate the end of the template literal element.\n this.rawText =\n rawText ?? sourceSpan?.toString() ?? escapeForTemplateLiteral(escapeSlashes(text));\n }\n}\nclass LiteralPiece {\n constructor(text, sourceSpan) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n }\n}\nclass PlaceholderPiece {\n /**\n * Create a new instance of a `PlaceholderPiece`.\n *\n * @param text the name of this placeholder (e.g. `PH_1`).\n * @param sourceSpan the location of this placeholder in its localized message the source code.\n * @param associatedMessage reference to another message that this placeholder is associated with.\n * The `associatedMessage` is mainly used to provide a relationship to an ICU message that has\n * been extracted out from the message containing the placeholder.\n */\n constructor(text, sourceSpan, associatedMessage) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n this.associatedMessage = associatedMessage;\n }\n}\nconst MEANING_SEPARATOR$1 = '|';\nconst ID_SEPARATOR$1 = '@@';\nconst LEGACY_ID_INDICATOR = '␟';\nclass LocalizedString extends Expression {\n constructor(metaBlock, messageParts, placeHolderNames, expressions, sourceSpan) {\n super(STRING_TYPE, sourceSpan);\n this.metaBlock = metaBlock;\n this.messageParts = messageParts;\n this.placeHolderNames = placeHolderNames;\n this.expressions = expressions;\n }\n isEquivalent(e) {\n // return e instanceof LocalizedString && this.message === e.message;\n return false;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitLocalizedString(this, context);\n }\n /**\n * Serialize the given `meta` and `messagePart` into \"cooked\" and \"raw\" strings that can be used\n * in a `$localize` tagged string. The format of the metadata is the same as that parsed by\n * `parseI18nMeta()`.\n *\n * @param meta The metadata to serialize\n * @param messagePart The first part of the tagged string\n */\n serializeI18nHead() {\n let metaBlock = this.metaBlock.description || '';\n if (this.metaBlock.meaning) {\n metaBlock = `${this.metaBlock.meaning}${MEANING_SEPARATOR$1}${metaBlock}`;\n }\n if (this.metaBlock.customId) {\n metaBlock = `${metaBlock}${ID_SEPARATOR$1}${this.metaBlock.customId}`;\n }\n if (this.metaBlock.legacyIds) {\n this.metaBlock.legacyIds.forEach(legacyId => {\n metaBlock = `${metaBlock}${LEGACY_ID_INDICATOR}${legacyId}`;\n });\n }\n return createCookedRawString(metaBlock, this.messageParts[0].text, this.getMessagePartSourceSpan(0));\n }\n getMessagePartSourceSpan(i) {\n return this.messageParts[i]?.sourceSpan ?? this.sourceSpan;\n }\n getPlaceholderSourceSpan(i) {\n return this.placeHolderNames[i]?.sourceSpan ?? this.expressions[i]?.sourceSpan ??\n this.sourceSpan;\n }\n /**\n * Serialize the given `placeholderName` and `messagePart` into \"cooked\" and \"raw\" strings that\n * can be used in a `$localize` tagged string.\n *\n * The format is `:[@@]:`.\n *\n * The `associated-id` is the message id of the (usually an ICU) message to which this placeholder\n * refers.\n *\n * @param partIndex The index of the message part to serialize.\n */\n serializeI18nTemplatePart(partIndex) {\n const placeholder = this.placeHolderNames[partIndex - 1];\n const messagePart = this.messageParts[partIndex];\n let metaBlock = placeholder.text;\n if (placeholder.associatedMessage?.legacyIds.length === 0) {\n metaBlock += `${ID_SEPARATOR$1}${computeMsgId(placeholder.associatedMessage.messageString, placeholder.associatedMessage.meaning)}`;\n }\n return createCookedRawString(metaBlock, messagePart.text, this.getMessagePartSourceSpan(partIndex));\n }\n}\nconst escapeSlashes = (str) => str.replace(/\\\\/g, '\\\\\\\\');\nconst escapeStartingColon = (str) => str.replace(/^:/, '\\\\:');\nconst escapeColons = (str) => str.replace(/:/g, '\\\\:');\nconst escapeForTemplateLiteral = (str) => str.replace(/`/g, '\\\\`').replace(/\\${/g, '$\\\\{');\n/**\n * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`.\n *\n * The `raw` text must have various character sequences escaped:\n * * \"\\\" would otherwise indicate that the next character is a control character.\n * * \"`\" and \"${\" are template string control sequences that would otherwise prematurely indicate\n * the end of a message part.\n * * \":\" inside a metablock would prematurely indicate the end of the metablock.\n * * \":\" at the start of a messagePart with no metablock would erroneously indicate the start of a\n * metablock.\n *\n * @param metaBlock Any metadata that should be prepended to the string\n * @param messagePart The message part of the string\n */\nfunction createCookedRawString(metaBlock, messagePart, range) {\n if (metaBlock === '') {\n return {\n cooked: messagePart,\n raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),\n range,\n };\n }\n else {\n return {\n cooked: `:${metaBlock}:${messagePart}`,\n raw: escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),\n range,\n };\n }\n}\nclass ExternalExpr extends Expression {\n constructor(value, type, typeParams = null, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n this.typeParams = typeParams;\n }\n isEquivalent(e) {\n return e instanceof ExternalExpr && this.value.name === e.value.name &&\n this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitExternalExpr(this, context);\n }\n}\nclass ExternalReference {\n constructor(moduleName, name, runtime) {\n this.moduleName = moduleName;\n this.name = name;\n this.runtime = runtime;\n }\n}\nclass ConditionalExpr extends Expression {\n constructor(condition, trueCase, falseCase = null, type, sourceSpan) {\n super(type || trueCase.type, sourceSpan);\n this.condition = condition;\n this.falseCase = falseCase;\n this.trueCase = trueCase;\n }\n isEquivalent(e) {\n return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&\n this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitConditionalExpr(this, context);\n }\n}\nclass NotExpr extends Expression {\n constructor(condition, sourceSpan) {\n super(BOOL_TYPE, sourceSpan);\n this.condition = condition;\n }\n isEquivalent(e) {\n return e instanceof NotExpr && this.condition.isEquivalent(e.condition);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitNotExpr(this, context);\n }\n}\nclass FnParam {\n constructor(name, type = null) {\n this.name = name;\n this.type = type;\n }\n isEquivalent(param) {\n return this.name === param.name;\n }\n}\nclass FunctionExpr extends Expression {\n constructor(params, statements, type, sourceSpan, name) {\n super(type, sourceSpan);\n this.params = params;\n this.statements = statements;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&\n areAllEquivalent(this.statements, e.statements);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitFunctionExpr(this, context);\n }\n toDeclStmt(name, modifiers) {\n return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan);\n }\n}\nclass UnaryOperatorExpr extends Expression {\n constructor(operator, expr, type, sourceSpan, parens = true) {\n super(type || NUMBER_TYPE, sourceSpan);\n this.operator = operator;\n this.expr = expr;\n this.parens = parens;\n }\n isEquivalent(e) {\n return e instanceof UnaryOperatorExpr && this.operator === e.operator &&\n this.expr.isEquivalent(e.expr);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitUnaryOperatorExpr(this, context);\n }\n}\nclass BinaryOperatorExpr extends Expression {\n constructor(operator, lhs, rhs, type, sourceSpan, parens = true) {\n super(type || lhs.type, sourceSpan);\n this.operator = operator;\n this.rhs = rhs;\n this.parens = parens;\n this.lhs = lhs;\n }\n isEquivalent(e) {\n return e instanceof BinaryOperatorExpr && this.operator === e.operator &&\n this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitBinaryOperatorExpr(this, context);\n }\n}\nclass ReadPropExpr extends Expression {\n constructor(receiver, name, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadPropExpr(this, context);\n }\n set(value) {\n return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);\n }\n}\nclass ReadKeyExpr extends Expression {\n constructor(receiver, index, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n }\n isEquivalent(e) {\n return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadKeyExpr(this, context);\n }\n set(value) {\n return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);\n }\n}\nclass LiteralArrayExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n }\n isConstant() {\n return this.entries.every(e => e.isConstant());\n }\n isEquivalent(e) {\n return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralArrayExpr(this, context);\n }\n}\nclass LiteralMapEntry {\n constructor(key, value, quoted) {\n this.key = key;\n this.value = value;\n this.quoted = quoted;\n }\n isEquivalent(e) {\n return this.key === e.key && this.value.isEquivalent(e.value);\n }\n}\nclass LiteralMapExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n this.valueType = null;\n if (type) {\n this.valueType = type.valueType;\n }\n }\n isEquivalent(e) {\n return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);\n }\n isConstant() {\n return this.entries.every(e => e.value.isConstant());\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralMapExpr(this, context);\n }\n}\nclass CommaExpr extends Expression {\n constructor(parts, sourceSpan) {\n super(parts[parts.length - 1].type, sourceSpan);\n this.parts = parts;\n }\n isEquivalent(e) {\n return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitCommaExpr(this, context);\n }\n}\nconst NULL_EXPR = new LiteralExpr(null, null, null);\nconst TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);\n//// Statements\nvar StmtModifier;\n(function (StmtModifier) {\n StmtModifier[StmtModifier[\"None\"] = 0] = \"None\";\n StmtModifier[StmtModifier[\"Final\"] = 1] = \"Final\";\n StmtModifier[StmtModifier[\"Private\"] = 2] = \"Private\";\n StmtModifier[StmtModifier[\"Exported\"] = 4] = \"Exported\";\n StmtModifier[StmtModifier[\"Static\"] = 8] = \"Static\";\n})(StmtModifier || (StmtModifier = {}));\nclass LeadingComment {\n constructor(text, multiline, trailingNewline) {\n this.text = text;\n this.multiline = multiline;\n this.trailingNewline = trailingNewline;\n }\n toString() {\n return this.multiline ? ` ${this.text} ` : this.text;\n }\n}\nclass JSDocComment extends LeadingComment {\n constructor(tags) {\n super('', /* multiline */ true, /* trailingNewline */ true);\n this.tags = tags;\n }\n toString() {\n return serializeTags(this.tags);\n }\n}\nclass Statement {\n constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) {\n this.modifiers = modifiers;\n this.sourceSpan = sourceSpan;\n this.leadingComments = leadingComments;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n addLeadingComment(leadingComment) {\n this.leadingComments = this.leadingComments ?? [];\n this.leadingComments.push(leadingComment);\n }\n}\nclass DeclareVarStmt extends Statement {\n constructor(name, value, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.value = value;\n this.type = type || (value && value.type) || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareVarStmt && this.name === stmt.name &&\n (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareVarStmt(this, context);\n }\n}\nclass DeclareFunctionStmt extends Statement {\n constructor(name, params, statements, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.params = params;\n this.statements = statements;\n this.type = type || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&\n areAllEquivalent(this.statements, stmt.statements);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareFunctionStmt(this, context);\n }\n}\nclass ExpressionStatement extends Statement {\n constructor(expr, sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.expr = expr;\n }\n isEquivalent(stmt) {\n return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);\n }\n visitStatement(visitor, context) {\n return visitor.visitExpressionStmt(this, context);\n }\n}\nclass ReturnStatement extends Statement {\n constructor(value, sourceSpan = null, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.value = value;\n }\n isEquivalent(stmt) {\n return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitReturnStmt(this, context);\n }\n}\nclass IfStmt extends Statement {\n constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.condition = condition;\n this.trueCase = trueCase;\n this.falseCase = falseCase;\n }\n isEquivalent(stmt) {\n return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&\n areAllEquivalent(this.trueCase, stmt.trueCase) &&\n areAllEquivalent(this.falseCase, stmt.falseCase);\n }\n visitStatement(visitor, context) {\n return visitor.visitIfStmt(this, context);\n }\n}\nclass RecursiveAstVisitor$1 {\n visitType(ast, context) {\n return ast;\n }\n visitExpression(ast, context) {\n if (ast.type) {\n ast.type.visitType(this, context);\n }\n return ast;\n }\n visitBuiltinType(type, context) {\n return this.visitType(type, context);\n }\n visitExpressionType(type, context) {\n type.value.visitExpression(this, context);\n if (type.typeParams !== null) {\n type.typeParams.forEach(param => this.visitType(param, context));\n }\n return this.visitType(type, context);\n }\n visitArrayType(type, context) {\n return this.visitType(type, context);\n }\n visitMapType(type, context) {\n return this.visitType(type, context);\n }\n visitWrappedNodeExpr(ast, context) {\n return ast;\n }\n visitTypeofExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitReadVarExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitWriteVarExpr(ast, context) {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWriteKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWritePropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitInvokeFunctionExpr(ast, context) {\n ast.fn.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitTaggedTemplateExpr(ast, context) {\n ast.tag.visitExpression(this, context);\n this.visitAllExpressions(ast.template.expressions, context);\n return this.visitExpression(ast, context);\n }\n visitInstantiateExpr(ast, context) {\n ast.classExpr.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitLocalizedString(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitExternalExpr(ast, context) {\n if (ast.typeParams) {\n ast.typeParams.forEach(type => type.visitType(this, context));\n }\n return this.visitExpression(ast, context);\n }\n visitConditionalExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n ast.trueCase.visitExpression(this, context);\n ast.falseCase.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitNotExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitFunctionExpr(ast, context) {\n this.visitAllStatements(ast.statements, context);\n return this.visitExpression(ast, context);\n }\n visitUnaryOperatorExpr(ast, context) {\n ast.expr.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitBinaryOperatorExpr(ast, context) {\n ast.lhs.visitExpression(this, context);\n ast.rhs.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadPropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralArrayExpr(ast, context) {\n this.visitAllExpressions(ast.entries, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralMapExpr(ast, context) {\n ast.entries.forEach((entry) => entry.value.visitExpression(this, context));\n return this.visitExpression(ast, context);\n }\n visitCommaExpr(ast, context) {\n this.visitAllExpressions(ast.parts, context);\n return this.visitExpression(ast, context);\n }\n visitAllExpressions(exprs, context) {\n exprs.forEach(expr => expr.visitExpression(this, context));\n }\n visitDeclareVarStmt(stmt, context) {\n if (stmt.value) {\n stmt.value.visitExpression(this, context);\n }\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitDeclareFunctionStmt(stmt, context) {\n this.visitAllStatements(stmt.statements, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitExpressionStmt(stmt, context) {\n stmt.expr.visitExpression(this, context);\n return stmt;\n }\n visitReturnStmt(stmt, context) {\n stmt.value.visitExpression(this, context);\n return stmt;\n }\n visitIfStmt(stmt, context) {\n stmt.condition.visitExpression(this, context);\n this.visitAllStatements(stmt.trueCase, context);\n this.visitAllStatements(stmt.falseCase, context);\n return stmt;\n }\n visitAllStatements(stmts, context) {\n stmts.forEach(stmt => stmt.visitStatement(this, context));\n }\n}\nfunction leadingComment(text, multiline = false, trailingNewline = true) {\n return new LeadingComment(text, multiline, trailingNewline);\n}\nfunction jsDocComment(tags = []) {\n return new JSDocComment(tags);\n}\nfunction variable(name, type, sourceSpan) {\n return new ReadVarExpr(name, type, sourceSpan);\n}\nfunction importExpr(id, typeParams = null, sourceSpan) {\n return new ExternalExpr(id, null, typeParams, sourceSpan);\n}\nfunction importType(id, typeParams, typeModifiers) {\n return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;\n}\nfunction expressionType(expr, typeModifiers, typeParams) {\n return new ExpressionType(expr, typeModifiers, typeParams);\n}\nfunction typeofExpr(expr) {\n return new TypeofExpr(expr);\n}\nfunction literalArr(values, type, sourceSpan) {\n return new LiteralArrayExpr(values, type, sourceSpan);\n}\nfunction literalMap(values, type = null) {\n return new LiteralMapExpr(values.map(e => new LiteralMapEntry(e.key, e.value, e.quoted)), type, null);\n}\nfunction unary(operator, expr, type, sourceSpan) {\n return new UnaryOperatorExpr(operator, expr, type, sourceSpan);\n}\nfunction not(expr, sourceSpan) {\n return new NotExpr(expr, sourceSpan);\n}\nfunction fn(params, body, type, sourceSpan, name) {\n return new FunctionExpr(params, body, type, sourceSpan, name);\n}\nfunction ifStmt(condition, thenClause, elseClause, sourceSpan, leadingComments) {\n return new IfStmt(condition, thenClause, elseClause, sourceSpan, leadingComments);\n}\nfunction taggedTemplate(tag, template, type, sourceSpan) {\n return new TaggedTemplateExpr(tag, template, type, sourceSpan);\n}\nfunction literal(value, type, sourceSpan) {\n return new LiteralExpr(value, type, sourceSpan);\n}\nfunction localizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan) {\n return new LocalizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan);\n}\nfunction isNull(exp) {\n return exp instanceof LiteralExpr && exp.value === null;\n}\n/*\n * Serializes a `Tag` into a string.\n * Returns a string like \" @foo {bar} baz\" (note the leading whitespace before `@foo`).\n */\nfunction tagToString(tag) {\n let out = '';\n if (tag.tagName) {\n out += ` @${tag.tagName}`;\n }\n if (tag.text) {\n if (tag.text.match(/\\/\\*|\\*\\//)) {\n throw new Error('JSDoc text cannot contain \"/*\" and \"*/\"');\n }\n out += ' ' + tag.text.replace(/@/g, '\\\\@');\n }\n return out;\n}\nfunction serializeTags(tags) {\n if (tags.length === 0)\n return '';\n if (tags.length === 1 && tags[0].tagName && !tags[0].text) {\n // The JSDOC comment is a single simple tag: e.g `/** @tagname */`.\n return `*${tagToString(tags[0])} `;\n }\n let out = '*\\n';\n for (const tag of tags) {\n out += ' *';\n // If the tagToString is multi-line, insert \" * \" prefixes on lines.\n out += tagToString(tag).replace(/\\n/g, '\\n * ');\n out += '\\n';\n }\n out += ' ';\n return out;\n}\n\nvar output_ast = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get TypeModifier () { return TypeModifier; },\n Type: Type,\n get BuiltinTypeName () { return BuiltinTypeName; },\n BuiltinType: BuiltinType,\n ExpressionType: ExpressionType,\n ArrayType: ArrayType,\n MapType: MapType,\n DYNAMIC_TYPE: DYNAMIC_TYPE,\n INFERRED_TYPE: INFERRED_TYPE,\n BOOL_TYPE: BOOL_TYPE,\n INT_TYPE: INT_TYPE,\n NUMBER_TYPE: NUMBER_TYPE,\n STRING_TYPE: STRING_TYPE,\n FUNCTION_TYPE: FUNCTION_TYPE,\n NONE_TYPE: NONE_TYPE,\n get UnaryOperator () { return UnaryOperator; },\n get BinaryOperator () { return BinaryOperator; },\n nullSafeIsEquivalent: nullSafeIsEquivalent,\n areAllEquivalent: areAllEquivalent,\n Expression: Expression,\n ReadVarExpr: ReadVarExpr,\n TypeofExpr: TypeofExpr,\n WrappedNodeExpr: WrappedNodeExpr,\n WriteVarExpr: WriteVarExpr,\n WriteKeyExpr: WriteKeyExpr,\n WritePropExpr: WritePropExpr,\n InvokeFunctionExpr: InvokeFunctionExpr,\n TaggedTemplateExpr: TaggedTemplateExpr,\n InstantiateExpr: InstantiateExpr,\n LiteralExpr: LiteralExpr,\n TemplateLiteral: TemplateLiteral,\n TemplateLiteralElement: TemplateLiteralElement,\n LiteralPiece: LiteralPiece,\n PlaceholderPiece: PlaceholderPiece,\n LocalizedString: LocalizedString,\n ExternalExpr: ExternalExpr,\n ExternalReference: ExternalReference,\n ConditionalExpr: ConditionalExpr,\n NotExpr: NotExpr,\n FnParam: FnParam,\n FunctionExpr: FunctionExpr,\n UnaryOperatorExpr: UnaryOperatorExpr,\n BinaryOperatorExpr: BinaryOperatorExpr,\n ReadPropExpr: ReadPropExpr,\n ReadKeyExpr: ReadKeyExpr,\n LiteralArrayExpr: LiteralArrayExpr,\n LiteralMapEntry: LiteralMapEntry,\n LiteralMapExpr: LiteralMapExpr,\n CommaExpr: CommaExpr,\n NULL_EXPR: NULL_EXPR,\n TYPED_NULL_EXPR: TYPED_NULL_EXPR,\n get StmtModifier () { return StmtModifier; },\n LeadingComment: LeadingComment,\n JSDocComment: JSDocComment,\n Statement: Statement,\n DeclareVarStmt: DeclareVarStmt,\n DeclareFunctionStmt: DeclareFunctionStmt,\n ExpressionStatement: ExpressionStatement,\n ReturnStatement: ReturnStatement,\n IfStmt: IfStmt,\n RecursiveAstVisitor: RecursiveAstVisitor$1,\n leadingComment: leadingComment,\n jsDocComment: jsDocComment,\n variable: variable,\n importExpr: importExpr,\n importType: importType,\n expressionType: expressionType,\n typeofExpr: typeofExpr,\n literalArr: literalArr,\n literalMap: literalMap,\n unary: unary,\n not: not,\n fn: fn,\n ifStmt: ifStmt,\n taggedTemplate: taggedTemplate,\n literal: literal,\n localizedString: localizedString,\n isNull: isNull\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CONSTANT_PREFIX = '_c';\n/**\n * `ConstantPool` tries to reuse literal factories when two or more literals are identical.\n * We determine whether literals are identical by creating a key out of their AST using the\n * `KeyVisitor`. This constant is used to replace dynamic expressions which can't be safely\n * converted into a key. E.g. given an expression `{foo: bar()}`, since we don't know what\n * the result of `bar` will be, we create a key that looks like `{foo: }`. Note\n * that we use a variable, rather than something like `null` in order to avoid collisions.\n */\nconst UNKNOWN_VALUE_KEY = variable('');\n/**\n * Context to use when producing a key.\n *\n * This ensures we see the constant not the reference variable when producing\n * a key.\n */\nconst KEY_CONTEXT = {};\n/**\n * Generally all primitive values are excluded from the `ConstantPool`, but there is an exclusion\n * for strings that reach a certain length threshold. This constant defines the length threshold for\n * strings.\n */\nconst POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50;\n/**\n * A node that is a place-holder that allows the node to be replaced when the actual\n * node is known.\n *\n * This allows the constant pool to change an expression from a direct reference to\n * a constant to a shared constant. It returns a fix-up node that is later allowed to\n * change the referenced expression.\n */\nclass FixupExpression extends Expression {\n constructor(resolved) {\n super(resolved.type);\n this.resolved = resolved;\n this.original = resolved;\n }\n visitExpression(visitor, context) {\n if (context === KEY_CONTEXT) {\n // When producing a key we want to traverse the constant not the\n // variable used to refer to it.\n return this.original.visitExpression(visitor, context);\n }\n else {\n return this.resolved.visitExpression(visitor, context);\n }\n }\n isEquivalent(e) {\n return e instanceof FixupExpression && this.resolved.isEquivalent(e.resolved);\n }\n isConstant() {\n return true;\n }\n fixup(expression) {\n this.resolved = expression;\n this.shared = true;\n }\n}\n/**\n * A constant pool allows a code emitter to share constant in an output context.\n *\n * The constant pool also supports sharing access to ivy definitions references.\n */\nclass ConstantPool {\n constructor(isClosureCompilerEnabled = false) {\n this.isClosureCompilerEnabled = isClosureCompilerEnabled;\n this.statements = [];\n this.literals = new Map();\n this.literalFactories = new Map();\n this.nextNameIndex = 0;\n }\n getConstLiteral(literal, forceShared) {\n if ((literal instanceof LiteralExpr && !isLongStringLiteral(literal)) ||\n literal instanceof FixupExpression) {\n // Do no put simple literals into the constant pool or try to produce a constant for a\n // reference to a constant.\n return literal;\n }\n const key = this.keyOf(literal);\n let fixup = this.literals.get(key);\n let newValue = false;\n if (!fixup) {\n fixup = new FixupExpression(literal);\n this.literals.set(key, fixup);\n newValue = true;\n }\n if ((!newValue && !fixup.shared) || (newValue && forceShared)) {\n // Replace the expression with a variable\n const name = this.freshName();\n let definition;\n let usage;\n if (this.isClosureCompilerEnabled && isLongStringLiteral(literal)) {\n // For string literals, Closure will **always** inline the string at\n // **all** usages, duplicating it each time. For large strings, this\n // unnecessarily bloats bundle size. To work around this restriction, we\n // wrap the string in a function, and call that function for each usage.\n // This tricks Closure into using inline logic for functions instead of\n // string literals. Function calls are only inlined if the body is small\n // enough to be worth it. By doing this, very large strings will be\n // shared across multiple usages, rather than duplicating the string at\n // each usage site.\n //\n // const myStr = function() { return \"very very very long string\"; };\n // const usage1 = myStr();\n // const usage2 = myStr();\n definition = variable(name).set(new FunctionExpr([], // Params.\n [\n // Statements.\n new ReturnStatement(literal),\n ]));\n usage = variable(name).callFn([]);\n }\n else {\n // Just declare and use the variable directly, without a function call\n // indirection. This saves a few bytes and avoids an unnecessary call.\n definition = variable(name).set(literal);\n usage = variable(name);\n }\n this.statements.push(definition.toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n fixup.fixup(usage);\n }\n return fixup;\n }\n getLiteralFactory(literal) {\n // Create a pure function that builds an array of a mix of constant and variable expressions\n if (literal instanceof LiteralArrayExpr) {\n const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);\n const key = this.keyOf(literalArr(argumentsForKey));\n return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries));\n }\n else {\n const expressionForKey = literalMap(literal.entries.map(e => ({\n key: e.key,\n value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,\n quoted: e.quoted\n })));\n const key = this.keyOf(expressionForKey);\n return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({\n key: literal.entries[index].key,\n value,\n quoted: literal.entries[index].quoted\n }))));\n }\n }\n _getLiteralFactory(key, values, resultMap) {\n let literalFactory = this.literalFactories.get(key);\n const literalFactoryArguments = values.filter((e => !e.isConstant()));\n if (!literalFactory) {\n const resultExpressions = values.map((e, index) => e.isConstant() ? this.getConstLiteral(e, true) : variable(`a${index}`));\n const parameters = resultExpressions.filter(isVariable).map(e => new FnParam(e.name, DYNAMIC_TYPE));\n const pureFunctionDeclaration = fn(parameters, [new ReturnStatement(resultMap(resultExpressions))], INFERRED_TYPE);\n const name = this.freshName();\n this.statements.push(variable(name)\n .set(pureFunctionDeclaration)\n .toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n literalFactory = variable(name);\n this.literalFactories.set(key, literalFactory);\n }\n return { literalFactory, literalFactoryArguments };\n }\n /**\n * Produce a unique name.\n *\n * The name might be unique among different prefixes if any of the prefixes end in\n * a digit so the prefix should be a constant string (not based on user input) and\n * must not end in a digit.\n */\n uniqueName(prefix) {\n return `${prefix}${this.nextNameIndex++}`;\n }\n freshName() {\n return this.uniqueName(CONSTANT_PREFIX);\n }\n keyOf(expression) {\n return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);\n }\n}\n/**\n * Visitor used to determine if 2 expressions are equivalent and can be shared in the\n * `ConstantPool`.\n *\n * When the id (string) generated by the visitor is equal, expressions are considered equivalent.\n */\nclass KeyVisitor {\n constructor() {\n this.visitWrappedNodeExpr = invalid$1;\n this.visitWriteVarExpr = invalid$1;\n this.visitWriteKeyExpr = invalid$1;\n this.visitWritePropExpr = invalid$1;\n this.visitInvokeFunctionExpr = invalid$1;\n this.visitTaggedTemplateExpr = invalid$1;\n this.visitInstantiateExpr = invalid$1;\n this.visitConditionalExpr = invalid$1;\n this.visitNotExpr = invalid$1;\n this.visitAssertNotNullExpr = invalid$1;\n this.visitCastExpr = invalid$1;\n this.visitFunctionExpr = invalid$1;\n this.visitUnaryOperatorExpr = invalid$1;\n this.visitBinaryOperatorExpr = invalid$1;\n this.visitReadPropExpr = invalid$1;\n this.visitReadKeyExpr = invalid$1;\n this.visitCommaExpr = invalid$1;\n this.visitLocalizedString = invalid$1;\n }\n visitLiteralExpr(ast) {\n return `${typeof ast.value === 'string' ? '\"' + ast.value + '\"' : ast.value}`;\n }\n visitLiteralArrayExpr(ast, context) {\n return `[${ast.entries.map(entry => entry.visitExpression(this, context)).join(',')}]`;\n }\n visitLiteralMapExpr(ast, context) {\n const mapKey = (entry) => {\n const quote = entry.quoted ? '\"' : '';\n return `${quote}${entry.key}${quote}`;\n };\n const mapEntry = (entry) => `${mapKey(entry)}:${entry.value.visitExpression(this, context)}`;\n return `{${ast.entries.map(mapEntry).join(',')}`;\n }\n visitExternalExpr(ast) {\n return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :\n `EX:${ast.value.runtime.name}`;\n }\n visitReadVarExpr(node) {\n return `VAR:${node.name}`;\n }\n visitTypeofExpr(node, context) {\n return `TYPEOF:${node.expr.visitExpression(this, context)}`;\n }\n}\nfunction invalid$1(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction isVariable(e) {\n return e instanceof ReadVarExpr;\n}\nfunction isLongStringLiteral(expr) {\n return expr instanceof LiteralExpr && typeof expr.value === 'string' &&\n expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CORE = '@angular/core';\nclass Identifiers {\n}\n/* Methods */\nIdentifiers.NEW_METHOD = 'factory';\nIdentifiers.TRANSFORM_METHOD = 'transform';\nIdentifiers.PATCH_DEPS = 'patchedDeps';\nIdentifiers.core = { name: null, moduleName: CORE };\n/* Instructions */\nIdentifiers.namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE };\nIdentifiers.namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE };\nIdentifiers.namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE };\nIdentifiers.element = { name: 'ɵɵelement', moduleName: CORE };\nIdentifiers.elementStart = { name: 'ɵɵelementStart', moduleName: CORE };\nIdentifiers.elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE };\nIdentifiers.advance = { name: 'ɵɵadvance', moduleName: CORE };\nIdentifiers.syntheticHostProperty = { name: 'ɵɵsyntheticHostProperty', moduleName: CORE };\nIdentifiers.syntheticHostListener = { name: 'ɵɵsyntheticHostListener', moduleName: CORE };\nIdentifiers.attribute = { name: 'ɵɵattribute', moduleName: CORE };\nIdentifiers.attributeInterpolate1 = { name: 'ɵɵattributeInterpolate1', moduleName: CORE };\nIdentifiers.attributeInterpolate2 = { name: 'ɵɵattributeInterpolate2', moduleName: CORE };\nIdentifiers.attributeInterpolate3 = { name: 'ɵɵattributeInterpolate3', moduleName: CORE };\nIdentifiers.attributeInterpolate4 = { name: 'ɵɵattributeInterpolate4', moduleName: CORE };\nIdentifiers.attributeInterpolate5 = { name: 'ɵɵattributeInterpolate5', moduleName: CORE };\nIdentifiers.attributeInterpolate6 = { name: 'ɵɵattributeInterpolate6', moduleName: CORE };\nIdentifiers.attributeInterpolate7 = { name: 'ɵɵattributeInterpolate7', moduleName: CORE };\nIdentifiers.attributeInterpolate8 = { name: 'ɵɵattributeInterpolate8', moduleName: CORE };\nIdentifiers.attributeInterpolateV = { name: 'ɵɵattributeInterpolateV', moduleName: CORE };\nIdentifiers.classProp = { name: 'ɵɵclassProp', moduleName: CORE };\nIdentifiers.elementContainerStart = { name: 'ɵɵelementContainerStart', moduleName: CORE };\nIdentifiers.elementContainerEnd = { name: 'ɵɵelementContainerEnd', moduleName: CORE };\nIdentifiers.elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };\nIdentifiers.styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };\nIdentifiers.styleMapInterpolate1 = { name: 'ɵɵstyleMapInterpolate1', moduleName: CORE };\nIdentifiers.styleMapInterpolate2 = { name: 'ɵɵstyleMapInterpolate2', moduleName: CORE };\nIdentifiers.styleMapInterpolate3 = { name: 'ɵɵstyleMapInterpolate3', moduleName: CORE };\nIdentifiers.styleMapInterpolate4 = { name: 'ɵɵstyleMapInterpolate4', moduleName: CORE };\nIdentifiers.styleMapInterpolate5 = { name: 'ɵɵstyleMapInterpolate5', moduleName: CORE };\nIdentifiers.styleMapInterpolate6 = { name: 'ɵɵstyleMapInterpolate6', moduleName: CORE };\nIdentifiers.styleMapInterpolate7 = { name: 'ɵɵstyleMapInterpolate7', moduleName: CORE };\nIdentifiers.styleMapInterpolate8 = { name: 'ɵɵstyleMapInterpolate8', moduleName: CORE };\nIdentifiers.styleMapInterpolateV = { name: 'ɵɵstyleMapInterpolateV', moduleName: CORE };\nIdentifiers.classMap = { name: 'ɵɵclassMap', moduleName: CORE };\nIdentifiers.classMapInterpolate1 = { name: 'ɵɵclassMapInterpolate1', moduleName: CORE };\nIdentifiers.classMapInterpolate2 = { name: 'ɵɵclassMapInterpolate2', moduleName: CORE };\nIdentifiers.classMapInterpolate3 = { name: 'ɵɵclassMapInterpolate3', moduleName: CORE };\nIdentifiers.classMapInterpolate4 = { name: 'ɵɵclassMapInterpolate4', moduleName: CORE };\nIdentifiers.classMapInterpolate5 = { name: 'ɵɵclassMapInterpolate5', moduleName: CORE };\nIdentifiers.classMapInterpolate6 = { name: 'ɵɵclassMapInterpolate6', moduleName: CORE };\nIdentifiers.classMapInterpolate7 = { name: 'ɵɵclassMapInterpolate7', moduleName: CORE };\nIdentifiers.classMapInterpolate8 = { name: 'ɵɵclassMapInterpolate8', moduleName: CORE };\nIdentifiers.classMapInterpolateV = { name: 'ɵɵclassMapInterpolateV', moduleName: CORE };\nIdentifiers.styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };\nIdentifiers.stylePropInterpolate1 = { name: 'ɵɵstylePropInterpolate1', moduleName: CORE };\nIdentifiers.stylePropInterpolate2 = { name: 'ɵɵstylePropInterpolate2', moduleName: CORE };\nIdentifiers.stylePropInterpolate3 = { name: 'ɵɵstylePropInterpolate3', moduleName: CORE };\nIdentifiers.stylePropInterpolate4 = { name: 'ɵɵstylePropInterpolate4', moduleName: CORE };\nIdentifiers.stylePropInterpolate5 = { name: 'ɵɵstylePropInterpolate5', moduleName: CORE };\nIdentifiers.stylePropInterpolate6 = { name: 'ɵɵstylePropInterpolate6', moduleName: CORE };\nIdentifiers.stylePropInterpolate7 = { name: 'ɵɵstylePropInterpolate7', moduleName: CORE };\nIdentifiers.stylePropInterpolate8 = { name: 'ɵɵstylePropInterpolate8', moduleName: CORE };\nIdentifiers.stylePropInterpolateV = { name: 'ɵɵstylePropInterpolateV', moduleName: CORE };\nIdentifiers.nextContext = { name: 'ɵɵnextContext', moduleName: CORE };\nIdentifiers.resetView = { name: 'ɵɵresetView', moduleName: CORE };\nIdentifiers.templateCreate = { name: 'ɵɵtemplate', moduleName: CORE };\nIdentifiers.text = { name: 'ɵɵtext', moduleName: CORE };\nIdentifiers.enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE };\nIdentifiers.disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE };\nIdentifiers.getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE };\nIdentifiers.textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE };\nIdentifiers.textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE };\nIdentifiers.textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE };\nIdentifiers.textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE };\nIdentifiers.textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE };\nIdentifiers.textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE };\nIdentifiers.textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE };\nIdentifiers.textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE };\nIdentifiers.textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE };\nIdentifiers.textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE };\nIdentifiers.restoreView = { name: 'ɵɵrestoreView', moduleName: CORE };\nIdentifiers.pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE };\nIdentifiers.pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE };\nIdentifiers.pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE };\nIdentifiers.pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE };\nIdentifiers.pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE };\nIdentifiers.pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE };\nIdentifiers.pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE };\nIdentifiers.pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE };\nIdentifiers.pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE };\nIdentifiers.pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE };\nIdentifiers.pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE };\nIdentifiers.pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE };\nIdentifiers.pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE };\nIdentifiers.pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE };\nIdentifiers.pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };\nIdentifiers.hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE };\nIdentifiers.property = { name: 'ɵɵproperty', moduleName: CORE };\nIdentifiers.propertyInterpolate = { name: 'ɵɵpropertyInterpolate', moduleName: CORE };\nIdentifiers.propertyInterpolate1 = { name: 'ɵɵpropertyInterpolate1', moduleName: CORE };\nIdentifiers.propertyInterpolate2 = { name: 'ɵɵpropertyInterpolate2', moduleName: CORE };\nIdentifiers.propertyInterpolate3 = { name: 'ɵɵpropertyInterpolate3', moduleName: CORE };\nIdentifiers.propertyInterpolate4 = { name: 'ɵɵpropertyInterpolate4', moduleName: CORE };\nIdentifiers.propertyInterpolate5 = { name: 'ɵɵpropertyInterpolate5', moduleName: CORE };\nIdentifiers.propertyInterpolate6 = { name: 'ɵɵpropertyInterpolate6', moduleName: CORE };\nIdentifiers.propertyInterpolate7 = { name: 'ɵɵpropertyInterpolate7', moduleName: CORE };\nIdentifiers.propertyInterpolate8 = { name: 'ɵɵpropertyInterpolate8', moduleName: CORE };\nIdentifiers.propertyInterpolateV = { name: 'ɵɵpropertyInterpolateV', moduleName: CORE };\nIdentifiers.i18n = { name: 'ɵɵi18n', moduleName: CORE };\nIdentifiers.i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };\nIdentifiers.i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };\nIdentifiers.i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE };\nIdentifiers.i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE };\nIdentifiers.i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE };\nIdentifiers.i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE };\nIdentifiers.pipe = { name: 'ɵɵpipe', moduleName: CORE };\nIdentifiers.projection = { name: 'ɵɵprojection', moduleName: CORE };\nIdentifiers.projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE };\nIdentifiers.reference = { name: 'ɵɵreference', moduleName: CORE };\nIdentifiers.inject = { name: 'ɵɵinject', moduleName: CORE };\nIdentifiers.injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE };\nIdentifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };\nIdentifiers.invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE };\nIdentifiers.invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE };\nIdentifiers.templateRefExtractor = { name: 'ɵɵtemplateRefExtractor', moduleName: CORE };\nIdentifiers.forwardRef = { name: 'forwardRef', moduleName: CORE };\nIdentifiers.resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };\nIdentifiers.ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };\nIdentifiers.declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };\nIdentifiers.InjectableDeclaration = { name: 'ɵɵInjectableDeclaration', moduleName: CORE };\nIdentifiers.resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE };\nIdentifiers.resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE };\nIdentifiers.resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE };\nIdentifiers.defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE };\nIdentifiers.declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE };\nIdentifiers.setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE };\nIdentifiers.ChangeDetectionStrategy = {\n name: 'ChangeDetectionStrategy',\n moduleName: CORE,\n};\nIdentifiers.ViewEncapsulation = {\n name: 'ViewEncapsulation',\n moduleName: CORE,\n};\nIdentifiers.ComponentDeclaration = {\n name: 'ɵɵComponentDeclaration',\n moduleName: CORE,\n};\nIdentifiers.FactoryDeclaration = {\n name: 'ɵɵFactoryDeclaration',\n moduleName: CORE,\n};\nIdentifiers.declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE };\nIdentifiers.FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE };\nIdentifiers.defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE };\nIdentifiers.declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE };\nIdentifiers.DirectiveDeclaration = {\n name: 'ɵɵDirectiveDeclaration',\n moduleName: CORE,\n};\nIdentifiers.InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };\nIdentifiers.InjectorDeclaration = { name: 'ɵɵInjectorDeclaration', moduleName: CORE };\nIdentifiers.defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE };\nIdentifiers.declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE };\nIdentifiers.NgModuleDeclaration = {\n name: 'ɵɵNgModuleDeclaration',\n moduleName: CORE,\n};\nIdentifiers.ModuleWithProviders = {\n name: 'ModuleWithProviders',\n moduleName: CORE,\n};\nIdentifiers.defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE };\nIdentifiers.declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE };\nIdentifiers.setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE };\nIdentifiers.registerNgModuleType = { name: 'ɵɵregisterNgModuleType', moduleName: CORE };\nIdentifiers.PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE };\nIdentifiers.definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE };\nIdentifiers.declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE };\nIdentifiers.declareClassMetadata = { name: 'ɵɵngDeclareClassMetadata', moduleName: CORE };\nIdentifiers.setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };\nIdentifiers.queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE };\nIdentifiers.viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE };\nIdentifiers.loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE };\nIdentifiers.contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE };\nIdentifiers.NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE };\nIdentifiers.InheritDefinitionFeature = { name: 'ɵɵInheritDefinitionFeature', moduleName: CORE };\nIdentifiers.CopyDefinitionFeature = { name: 'ɵɵCopyDefinitionFeature', moduleName: CORE };\nIdentifiers.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE };\nIdentifiers.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE };\nIdentifiers.listener = { name: 'ɵɵlistener', moduleName: CORE };\nIdentifiers.getInheritedFactory = {\n name: 'ɵɵgetInheritedFactory',\n moduleName: CORE,\n};\n// sanitization-related functions\nIdentifiers.sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE };\nIdentifiers.sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE };\nIdentifiers.sanitizeResourceUrl = { name: 'ɵɵsanitizeResourceUrl', moduleName: CORE };\nIdentifiers.sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE };\nIdentifiers.sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE };\nIdentifiers.sanitizeUrlOrResourceUrl = { name: 'ɵɵsanitizeUrlOrResourceUrl', moduleName: CORE };\nIdentifiers.trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };\nIdentifiers.trustConstantResourceUrl = { name: 'ɵɵtrustConstantResourceUrl', moduleName: CORE };\nIdentifiers.validateIframeAttribute = { name: 'ɵɵvalidateIframeAttribute', moduleName: CORE };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\nconst VERSION$1 = 3;\nconst JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';\nclass SourceMapGenerator {\n constructor(file = null) {\n this.file = file;\n this.sourcesContent = new Map();\n this.lines = [];\n this.lastCol0 = 0;\n this.hasMappings = false;\n }\n // The content is `null` when the content is expected to be loaded using the URL\n addSource(url, content = null) {\n if (!this.sourcesContent.has(url)) {\n this.sourcesContent.set(url, content);\n }\n return this;\n }\n addLine() {\n this.lines.push([]);\n this.lastCol0 = 0;\n return this;\n }\n addMapping(col0, sourceUrl, sourceLine0, sourceCol0) {\n if (!this.currentLine) {\n throw new Error(`A line must be added before mappings can be added`);\n }\n if (sourceUrl != null && !this.sourcesContent.has(sourceUrl)) {\n throw new Error(`Unknown source file \"${sourceUrl}\"`);\n }\n if (col0 == null) {\n throw new Error(`The column in the generated code must be provided`);\n }\n if (col0 < this.lastCol0) {\n throw new Error(`Mapping should be added in output order`);\n }\n if (sourceUrl && (sourceLine0 == null || sourceCol0 == null)) {\n throw new Error(`The source location must be provided when a source url is provided`);\n }\n this.hasMappings = true;\n this.lastCol0 = col0;\n this.currentLine.push({ col0, sourceUrl, sourceLine0, sourceCol0 });\n return this;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get currentLine() {\n return this.lines.slice(-1)[0];\n }\n toJSON() {\n if (!this.hasMappings) {\n return null;\n }\n const sourcesIndex = new Map();\n const sources = [];\n const sourcesContent = [];\n Array.from(this.sourcesContent.keys()).forEach((url, i) => {\n sourcesIndex.set(url, i);\n sources.push(url);\n sourcesContent.push(this.sourcesContent.get(url) || null);\n });\n let mappings = '';\n let lastCol0 = 0;\n let lastSourceIndex = 0;\n let lastSourceLine0 = 0;\n let lastSourceCol0 = 0;\n this.lines.forEach(segments => {\n lastCol0 = 0;\n mappings += segments\n .map(segment => {\n // zero-based starting column of the line in the generated code\n let segAsStr = toBase64VLQ(segment.col0 - lastCol0);\n lastCol0 = segment.col0;\n if (segment.sourceUrl != null) {\n // zero-based index into the “sources” list\n segAsStr +=\n toBase64VLQ(sourcesIndex.get(segment.sourceUrl) - lastSourceIndex);\n lastSourceIndex = sourcesIndex.get(segment.sourceUrl);\n // the zero-based starting line in the original source\n segAsStr += toBase64VLQ(segment.sourceLine0 - lastSourceLine0);\n lastSourceLine0 = segment.sourceLine0;\n // the zero-based starting column in the original source\n segAsStr += toBase64VLQ(segment.sourceCol0 - lastSourceCol0);\n lastSourceCol0 = segment.sourceCol0;\n }\n return segAsStr;\n })\n .join(',');\n mappings += ';';\n });\n mappings = mappings.slice(0, -1);\n return {\n 'file': this.file || '',\n 'version': VERSION$1,\n 'sourceRoot': '',\n 'sources': sources,\n 'sourcesContent': sourcesContent,\n 'mappings': mappings,\n };\n }\n toJsComment() {\n return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) :\n '';\n }\n}\nfunction toBase64String(value) {\n let b64 = '';\n const encoded = utf8Encode(value);\n for (let i = 0; i < encoded.length;) {\n const i1 = encoded[i++];\n const i2 = i < encoded.length ? encoded[i++] : null;\n const i3 = i < encoded.length ? encoded[i++] : null;\n b64 += toBase64Digit(i1 >> 2);\n b64 += toBase64Digit(((i1 & 3) << 4) | (i2 === null ? 0 : i2 >> 4));\n b64 += i2 === null ? '=' : toBase64Digit(((i2 & 15) << 2) | (i3 === null ? 0 : i3 >> 6));\n b64 += i2 === null || i3 === null ? '=' : toBase64Digit(i3 & 63);\n }\n return b64;\n}\nfunction toBase64VLQ(value) {\n value = value < 0 ? ((-value) << 1) + 1 : value << 1;\n let out = '';\n do {\n let digit = value & 31;\n value = value >> 5;\n if (value > 0) {\n digit = digit | 32;\n }\n out += toBase64Digit(digit);\n } while (value > 0);\n return out;\n}\nconst B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfunction toBase64Digit(value) {\n if (value < 0 || value >= 64) {\n throw new Error(`Can only encode value in the range [0, 63]`);\n }\n return B64_DIGITS[value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\\\|\\n|\\r|\\$/g;\nconst _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\nconst _INDENT_WITH = ' ';\nclass _EmittedLine {\n constructor(indent) {\n this.indent = indent;\n this.partsLength = 0;\n this.parts = [];\n this.srcSpans = [];\n }\n}\nclass EmitterVisitorContext {\n constructor(_indent) {\n this._indent = _indent;\n this._lines = [new _EmittedLine(_indent)];\n }\n static createRoot() {\n return new EmitterVisitorContext(0);\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get _currentLine() {\n return this._lines[this._lines.length - 1];\n }\n println(from, lastPart = '') {\n this.print(from || null, lastPart, true);\n }\n lineIsEmpty() {\n return this._currentLine.parts.length === 0;\n }\n lineLength() {\n return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength;\n }\n print(from, part, newLine = false) {\n if (part.length > 0) {\n this._currentLine.parts.push(part);\n this._currentLine.partsLength += part.length;\n this._currentLine.srcSpans.push(from && from.sourceSpan || null);\n }\n if (newLine) {\n this._lines.push(new _EmittedLine(this._indent));\n }\n }\n removeEmptyLastLine() {\n if (this.lineIsEmpty()) {\n this._lines.pop();\n }\n }\n incIndent() {\n this._indent++;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n decIndent() {\n this._indent--;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n toSource() {\n return this.sourceLines\n .map(l => l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : '')\n .join('\\n');\n }\n toSourceMapGenerator(genFilePath, startsAtLine = 0) {\n const map = new SourceMapGenerator(genFilePath);\n let firstOffsetMapped = false;\n const mapFirstOffsetIfNeeded = () => {\n if (!firstOffsetMapped) {\n // Add a single space so that tools won't try to load the file from disk.\n // Note: We are using virtual urls like `ng:///`, so we have to\n // provide a content here.\n map.addSource(genFilePath, ' ').addMapping(0, genFilePath, 0, 0);\n firstOffsetMapped = true;\n }\n };\n for (let i = 0; i < startsAtLine; i++) {\n map.addLine();\n mapFirstOffsetIfNeeded();\n }\n this.sourceLines.forEach((line, lineIdx) => {\n map.addLine();\n const spans = line.srcSpans;\n const parts = line.parts;\n let col0 = line.indent * _INDENT_WITH.length;\n let spanIdx = 0;\n // skip leading parts without source spans\n while (spanIdx < spans.length && !spans[spanIdx]) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n if (spanIdx < spans.length && lineIdx === 0 && col0 === 0) {\n firstOffsetMapped = true;\n }\n else {\n mapFirstOffsetIfNeeded();\n }\n while (spanIdx < spans.length) {\n const span = spans[spanIdx];\n const source = span.start.file;\n const sourceLine = span.start.line;\n const sourceCol = span.start.col;\n map.addSource(source.url, source.content)\n .addMapping(col0, source.url, sourceLine, sourceCol);\n col0 += parts[spanIdx].length;\n spanIdx++;\n // assign parts without span or the same span to the previous segment\n while (spanIdx < spans.length && (span === spans[spanIdx] || !spans[spanIdx])) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n }\n });\n return map;\n }\n spanOf(line, column) {\n const emittedLine = this._lines[line];\n if (emittedLine) {\n let columnsLeft = column - _createIndent(emittedLine.indent).length;\n for (let partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) {\n const part = emittedLine.parts[partIndex];\n if (part.length > columnsLeft) {\n return emittedLine.srcSpans[partIndex];\n }\n columnsLeft -= part.length;\n }\n }\n return null;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get sourceLines() {\n if (this._lines.length && this._lines[this._lines.length - 1].parts.length === 0) {\n return this._lines.slice(0, -1);\n }\n return this._lines;\n }\n}\nclass AbstractEmitterVisitor {\n constructor(_escapeDollarInStrings) {\n this._escapeDollarInStrings = _escapeDollarInStrings;\n }\n printLeadingComments(stmt, ctx) {\n if (stmt.leadingComments === undefined) {\n return;\n }\n for (const comment of stmt.leadingComments) {\n if (comment instanceof JSDocComment) {\n ctx.print(stmt, `/*${comment.toString()}*/`, comment.trailingNewline);\n }\n else {\n if (comment.multiline) {\n ctx.print(stmt, `/* ${comment.text} */`, comment.trailingNewline);\n }\n else {\n comment.text.split('\\n').forEach((line) => {\n ctx.println(stmt, `// ${line}`);\n });\n }\n }\n }\n }\n visitExpressionStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n stmt.expr.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitReturnStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `return `);\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitIfStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `if (`);\n stmt.condition.visitExpression(this, ctx);\n ctx.print(stmt, `) {`);\n const hasElseCase = stmt.falseCase != null && stmt.falseCase.length > 0;\n if (stmt.trueCase.length <= 1 && !hasElseCase) {\n ctx.print(stmt, ` `);\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.removeEmptyLastLine();\n ctx.print(stmt, ` `);\n }\n else {\n ctx.println();\n ctx.incIndent();\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.decIndent();\n if (hasElseCase) {\n ctx.println(stmt, `} else {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.falseCase, ctx);\n ctx.decIndent();\n }\n }\n ctx.println(stmt, `}`);\n return null;\n }\n visitWriteVarExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n ctx.print(expr, `${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWriteKeyExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `[`);\n expr.index.visitExpression(this, ctx);\n ctx.print(expr, `] = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWritePropExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `.${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitInvokeFunctionExpr(expr, ctx) {\n expr.fn.visitExpression(this, ctx);\n ctx.print(expr, `(`);\n this.visitAllExpressions(expr.args, ctx, ',');\n ctx.print(expr, `)`);\n return null;\n }\n visitTaggedTemplateExpr(expr, ctx) {\n expr.tag.visitExpression(this, ctx);\n ctx.print(expr, '`' + expr.template.elements[0].rawText);\n for (let i = 1; i < expr.template.elements.length; i++) {\n ctx.print(expr, '${');\n expr.template.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(expr, `}${expr.template.elements[i].rawText}`);\n }\n ctx.print(expr, '`');\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Abstract emitter cannot visit WrappedNodeExpr.');\n }\n visitTypeofExpr(expr, ctx) {\n ctx.print(expr, 'typeof ');\n expr.expr.visitExpression(this, ctx);\n }\n visitReadVarExpr(ast, ctx) {\n ctx.print(ast, ast.name);\n return null;\n }\n visitInstantiateExpr(ast, ctx) {\n ctx.print(ast, `new `);\n ast.classExpr.visitExpression(this, ctx);\n ctx.print(ast, `(`);\n this.visitAllExpressions(ast.args, ctx, ',');\n ctx.print(ast, `)`);\n return null;\n }\n visitLiteralExpr(ast, ctx) {\n const value = ast.value;\n if (typeof value === 'string') {\n ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings));\n }\n else {\n ctx.print(ast, `${value}`);\n }\n return null;\n }\n visitLocalizedString(ast, ctx) {\n const head = ast.serializeI18nHead();\n ctx.print(ast, '$localize `' + head.raw);\n for (let i = 1; i < ast.messageParts.length; i++) {\n ctx.print(ast, '${');\n ast.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(ast, `}${ast.serializeI18nTemplatePart(i).raw}`);\n }\n ctx.print(ast, '`');\n return null;\n }\n visitConditionalExpr(ast, ctx) {\n ctx.print(ast, `(`);\n ast.condition.visitExpression(this, ctx);\n ctx.print(ast, '? ');\n ast.trueCase.visitExpression(this, ctx);\n ctx.print(ast, ': ');\n ast.falseCase.visitExpression(this, ctx);\n ctx.print(ast, `)`);\n return null;\n }\n visitNotExpr(ast, ctx) {\n ctx.print(ast, '!');\n ast.condition.visitExpression(this, ctx);\n return null;\n }\n visitUnaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case UnaryOperator.Plus:\n opStr = '+';\n break;\n case UnaryOperator.Minus:\n opStr = '-';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ctx.print(ast, opStr);\n ast.expr.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitBinaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case BinaryOperator.Equals:\n opStr = '==';\n break;\n case BinaryOperator.Identical:\n opStr = '===';\n break;\n case BinaryOperator.NotEquals:\n opStr = '!=';\n break;\n case BinaryOperator.NotIdentical:\n opStr = '!==';\n break;\n case BinaryOperator.And:\n opStr = '&&';\n break;\n case BinaryOperator.BitwiseAnd:\n opStr = '&';\n break;\n case BinaryOperator.Or:\n opStr = '||';\n break;\n case BinaryOperator.Plus:\n opStr = '+';\n break;\n case BinaryOperator.Minus:\n opStr = '-';\n break;\n case BinaryOperator.Divide:\n opStr = '/';\n break;\n case BinaryOperator.Multiply:\n opStr = '*';\n break;\n case BinaryOperator.Modulo:\n opStr = '%';\n break;\n case BinaryOperator.Lower:\n opStr = '<';\n break;\n case BinaryOperator.LowerEquals:\n opStr = '<=';\n break;\n case BinaryOperator.Bigger:\n opStr = '>';\n break;\n case BinaryOperator.BiggerEquals:\n opStr = '>=';\n break;\n case BinaryOperator.NullishCoalesce:\n opStr = '??';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ast.lhs.visitExpression(this, ctx);\n ctx.print(ast, ` ${opStr} `);\n ast.rhs.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitReadPropExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `.`);\n ctx.print(ast, ast.name);\n return null;\n }\n visitReadKeyExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `[`);\n ast.index.visitExpression(this, ctx);\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralArrayExpr(ast, ctx) {\n ctx.print(ast, `[`);\n this.visitAllExpressions(ast.entries, ctx, ',');\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralMapExpr(ast, ctx) {\n ctx.print(ast, `{`);\n this.visitAllObjects(entry => {\n ctx.print(ast, `${escapeIdentifier(entry.key, this._escapeDollarInStrings, entry.quoted)}:`);\n entry.value.visitExpression(this, ctx);\n }, ast.entries, ctx, ',');\n ctx.print(ast, `}`);\n return null;\n }\n visitCommaExpr(ast, ctx) {\n ctx.print(ast, '(');\n this.visitAllExpressions(ast.parts, ctx, ',');\n ctx.print(ast, ')');\n return null;\n }\n visitAllExpressions(expressions, ctx, separator) {\n this.visitAllObjects(expr => expr.visitExpression(this, ctx), expressions, ctx, separator);\n }\n visitAllObjects(handler, expressions, ctx, separator) {\n let incrementedIndent = false;\n for (let i = 0; i < expressions.length; i++) {\n if (i > 0) {\n if (ctx.lineLength() > 80) {\n ctx.print(null, separator, true);\n if (!incrementedIndent) {\n // continuation are marked with double indent.\n ctx.incIndent();\n ctx.incIndent();\n incrementedIndent = true;\n }\n }\n else {\n ctx.print(null, separator, false);\n }\n }\n handler(expressions[i]);\n }\n if (incrementedIndent) {\n // continuation are marked with double indent.\n ctx.decIndent();\n ctx.decIndent();\n }\n }\n visitAllStatements(statements, ctx) {\n statements.forEach((stmt) => stmt.visitStatement(this, ctx));\n }\n}\nfunction escapeIdentifier(input, escapeDollar, alwaysQuote = true) {\n if (input == null) {\n return null;\n }\n const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match) => {\n if (match[0] == '$') {\n return escapeDollar ? '\\\\$' : '$';\n }\n else if (match[0] == '\\n') {\n return '\\\\n';\n }\n else if (match[0] == '\\r') {\n return '\\\\r';\n }\n else {\n return `\\\\${match[0]}`;\n }\n });\n const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body);\n return requiresQuotes ? `'${body}'` : body;\n}\nfunction _createIndent(count) {\n let res = '';\n for (let i = 0; i < count; i++) {\n res += _INDENT_WITH;\n }\n return res;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction typeWithParameters(type, numParams) {\n if (numParams === 0) {\n return expressionType(type);\n }\n const params = [];\n for (let i = 0; i < numParams; i++) {\n params.push(DYNAMIC_TYPE);\n }\n return expressionType(type, undefined, params);\n}\nconst ANIMATE_SYMBOL_PREFIX = '@';\nfunction prepareSyntheticPropertyName(name) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}`;\n}\nfunction prepareSyntheticListenerName(name, phase) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;\n}\nfunction getSafePropertyAccessString(accessor, name) {\n const escapedName = escapeIdentifier(name, false, false);\n return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;\n}\nfunction prepareSyntheticListenerFunctionName(name, phase) {\n return `animation_${name}_${phase}`;\n}\nfunction jitOnlyGuardedExpression(expr) {\n return guardedExpression('ngJitMode', expr);\n}\nfunction devOnlyGuardedExpression(expr) {\n return guardedExpression('ngDevMode', expr);\n}\nfunction guardedExpression(guard, expr) {\n const guardExpr = new ExternalExpr({ name: guard, moduleName: null });\n const guardNotDefined = new BinaryOperatorExpr(BinaryOperator.Identical, new TypeofExpr(guardExpr), literal('undefined'));\n const guardUndefinedOrTrue = new BinaryOperatorExpr(BinaryOperator.Or, guardNotDefined, guardExpr, /* type */ undefined, \n /* sourceSpan */ undefined, true);\n return new BinaryOperatorExpr(BinaryOperator.And, guardUndefinedOrTrue, expr);\n}\nfunction wrapReference(value) {\n const wrapped = new WrappedNodeExpr(value);\n return { value: wrapped, type: wrapped };\n}\nfunction refsToArray(refs, shouldForwardDeclare) {\n const values = literalArr(refs.map(ref => ref.value));\n return shouldForwardDeclare ? fn([], [new ReturnStatement(values)]) : values;\n}\nfunction createMayBeForwardRefExpression(expression, forwardRef) {\n return { expression, forwardRef };\n}\n/**\n * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a\n * `forwardRef()` call.\n *\n * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression\n * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated\n * in the code.\n *\n * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and\n * `packages/compiler/src/jit_compiler_facade.ts` for more information.\n */\nfunction convertFromMaybeForwardRefExpression({ expression, forwardRef }) {\n switch (forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 1 /* ForwardRefHandling.Wrapped */:\n return expression;\n case 2 /* ForwardRefHandling.Unwrapped */:\n return generateForwardRef(expression);\n }\n}\n/**\n * Generate an expression that has the given `expr` wrapped in the following form:\n *\n * ```\n * forwardRef(() => expr)\n * ```\n */\nfunction generateForwardRef(expr) {\n return importExpr(Identifiers.forwardRef).callFn([fn([], [new ReturnStatement(expr)])]);\n}\n\nvar R3FactoryDelegateType;\n(function (R3FactoryDelegateType) {\n R3FactoryDelegateType[R3FactoryDelegateType[\"Class\"] = 0] = \"Class\";\n R3FactoryDelegateType[R3FactoryDelegateType[\"Function\"] = 1] = \"Function\";\n})(R3FactoryDelegateType || (R3FactoryDelegateType = {}));\nvar FactoryTarget$1;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget$1 || (FactoryTarget$1 = {}));\n/**\n * Construct a factory function expression for the given `R3FactoryMetadata`.\n */\nfunction compileFactoryFunction(meta) {\n const t = variable('t');\n let baseFactoryVar = null;\n // The type to instantiate via constructor invocation. If there is no delegated factory, meaning\n // this type is always created by constructor invocation, then this is the type-to-create\n // parameter provided by the user (t) if specified, or the current type if not. If there is a\n // delegated factory (which is used to create the current type) then this is only the type-to-\n // create parameter (t).\n const typeForCtor = !isDelegatedFactoryMetadata(meta) ?\n new BinaryOperatorExpr(BinaryOperator.Or, t, meta.internalType) :\n t;\n let ctorExpr = null;\n if (meta.deps !== null) {\n // There is a constructor (either explicitly or implicitly defined).\n if (meta.deps !== 'invalid') {\n ctorExpr = new InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.target));\n }\n }\n else {\n // There is no constructor, use the base class' factory to construct typeForCtor.\n baseFactoryVar = variable(`ɵ${meta.name}_BaseFactory`);\n ctorExpr = baseFactoryVar.callFn([typeForCtor]);\n }\n const body = [];\n let retExpr = null;\n function makeConditionalFactory(nonCtorExpr) {\n const r = variable('r');\n body.push(r.set(NULL_EXPR).toDeclStmt());\n const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() :\n importExpr(Identifiers.invalidFactory).callFn([]).toStmt();\n body.push(ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()]));\n return r;\n }\n if (isDelegatedFactoryMetadata(meta)) {\n // This type is created with a delegated factory. If a type parameter is not specified, call\n // the factory instead.\n const delegateArgs = injectDependencies(meta.delegateDeps, meta.target);\n // Either call `new delegate(...)` or `delegate(...)` depending on meta.delegateType.\n const factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ?\n InstantiateExpr :\n InvokeFunctionExpr)(meta.delegate, delegateArgs);\n retExpr = makeConditionalFactory(factoryExpr);\n }\n else if (isExpressionFactoryMetadata(meta)) {\n // TODO(alxhub): decide whether to lower the value here or in the caller\n retExpr = makeConditionalFactory(meta.expression);\n }\n else {\n retExpr = ctorExpr;\n }\n if (retExpr === null) {\n // The expression cannot be formed so render an `ɵɵinvalidFactory()` call.\n body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());\n }\n else if (baseFactoryVar !== null) {\n // This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it.\n const getInheritedFactoryCall = importExpr(Identifiers.getInheritedFactory).callFn([meta.internalType]);\n // Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))`\n const baseFactory = new BinaryOperatorExpr(BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall));\n body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])));\n }\n else {\n // This is straightforward factory, just return it.\n body.push(new ReturnStatement(retExpr));\n }\n let factoryFn = fn([new FnParam('t', DYNAMIC_TYPE)], body, INFERRED_TYPE, undefined, `${meta.name}_Factory`);\n if (baseFactoryVar !== null) {\n // There is a base factory variable so wrap its declaration along with the factory function into\n // an IIFE.\n factoryFn = fn([], [\n new DeclareVarStmt(baseFactoryVar.name), new ReturnStatement(factoryFn)\n ]).callFn([], /* sourceSpan */ undefined, /* pure */ true);\n }\n return {\n expression: factoryFn,\n statements: [],\n type: createFactoryType(meta),\n };\n}\nfunction createFactoryType(meta) {\n const ctorDepsType = meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : NONE_TYPE;\n return expressionType(importExpr(Identifiers.FactoryDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType]));\n}\nfunction injectDependencies(deps, target) {\n return deps.map((dep, index) => compileInjectDependency(dep, target, index));\n}\nfunction compileInjectDependency(dep, target, index) {\n // Interpret the dependency according to its resolved type.\n if (dep.token === null) {\n return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);\n }\n else if (dep.attributeNameType === null) {\n // Build up the injection flags according to the metadata.\n const flags = 0 /* InjectFlags.Default */ | (dep.self ? 2 /* InjectFlags.Self */ : 0) |\n (dep.skipSelf ? 4 /* InjectFlags.SkipSelf */ : 0) | (dep.host ? 1 /* InjectFlags.Host */ : 0) |\n (dep.optional ? 8 /* InjectFlags.Optional */ : 0) |\n (target === FactoryTarget$1.Pipe ? 16 /* InjectFlags.ForPipe */ : 0);\n // If this dependency is optional or otherwise has non-default flags, then additional\n // parameters describing how to inject the dependency must be passed to the inject function\n // that's being used.\n let flagsParam = (flags !== 0 /* InjectFlags.Default */ || dep.optional) ? literal(flags) : null;\n // Build up the arguments to the injectFn call.\n const injectArgs = [dep.token];\n if (flagsParam) {\n injectArgs.push(flagsParam);\n }\n const injectFn = getInjectFn(target);\n return importExpr(injectFn).callFn(injectArgs);\n }\n else {\n // The `dep.attributeTypeName` value is defined, which indicates that this is an `@Attribute()`\n // type dependency. For the generated JS we still want to use the `dep.token` value in case the\n // name given for the attribute is not a string literal. For example given `@Attribute(foo())`,\n // we want to generate `ɵɵinjectAttribute(foo())`.\n //\n // The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate\n // typings.\n return importExpr(Identifiers.injectAttribute).callFn([dep.token]);\n }\n}\nfunction createCtorDepsType(deps) {\n let hasTypes = false;\n const attributeTypes = deps.map(dep => {\n const type = createCtorDepType(dep);\n if (type !== null) {\n hasTypes = true;\n return type;\n }\n else {\n return literal(null);\n }\n });\n if (hasTypes) {\n return expressionType(literalArr(attributeTypes));\n }\n else {\n return NONE_TYPE;\n }\n}\nfunction createCtorDepType(dep) {\n const entries = [];\n if (dep.attributeNameType !== null) {\n entries.push({ key: 'attribute', value: dep.attributeNameType, quoted: false });\n }\n if (dep.optional) {\n entries.push({ key: 'optional', value: literal(true), quoted: false });\n }\n if (dep.host) {\n entries.push({ key: 'host', value: literal(true), quoted: false });\n }\n if (dep.self) {\n entries.push({ key: 'self', value: literal(true), quoted: false });\n }\n if (dep.skipSelf) {\n entries.push({ key: 'skipSelf', value: literal(true), quoted: false });\n }\n return entries.length > 0 ? literalMap(entries) : null;\n}\nfunction isDelegatedFactoryMetadata(meta) {\n return meta.delegateType !== undefined;\n}\nfunction isExpressionFactoryMetadata(meta) {\n return meta.expression !== undefined;\n}\nfunction getInjectFn(target) {\n switch (target) {\n case FactoryTarget$1.Component:\n case FactoryTarget$1.Directive:\n case FactoryTarget$1.Pipe:\n return Identifiers.directiveInject;\n case FactoryTarget$1.NgModule:\n case FactoryTarget$1.Injectable:\n default:\n return Identifiers.inject;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently\n * require the implementation of a visitor for Comments as they are only collected at\n * the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`\n * is true.\n */\nclass Comment$1 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(_visitor) {\n throw new Error('visit() not implemented for Comment');\n }\n}\nclass Text$3 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass BoundText {\n constructor(value, sourceSpan, i18n) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitBoundText(this);\n }\n}\n/**\n * Represents a text attribute in the template.\n *\n * `valueSpan` may not be present in cases where there is no value `
`.\n * `keySpan` may also not be present for synthetic attributes from ICU expansions.\n */\nclass TextAttribute {\n constructor(name, value, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTextAttribute(this);\n }\n}\nclass BoundAttribute {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n static fromBoundElementProperty(prop, i18n) {\n if (prop.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound attributes but was not for ${prop.name}: ${prop.sourceSpan}`);\n }\n return new BoundAttribute(prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n);\n }\n visit(visitor) {\n return visitor.visitBoundAttribute(this);\n }\n}\nclass BoundEvent {\n constructor(name, type, handler, target, phase, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.type = type;\n this.handler = handler;\n this.target = target;\n this.phase = phase;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n static fromParsedEvent(event) {\n const target = event.type === 0 /* ParsedEventType.Regular */ ? event.targetOrPhase : null;\n const phase = event.type === 1 /* ParsedEventType.Animation */ ? event.targetOrPhase : null;\n if (event.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${event.name}: ${event.sourceSpan}`);\n }\n return new BoundEvent(event.name, event.type, event.handler, target, phase, event.sourceSpan, event.handlerSpan, event.keySpan);\n }\n visit(visitor) {\n return visitor.visitBoundEvent(this);\n }\n}\nclass Element$1 {\n constructor(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.name = name;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.children = children;\n this.references = references;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitElement(this);\n }\n}\nclass Template {\n constructor(\n // tagName is the name of the container element, if applicable.\n // `null` is a special case for when there is a structural directive on an `ng-template` so\n // the renderer can differentiate between the synthetic template and the one written in the\n // file.\n tagName, attributes, inputs, outputs, templateAttrs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.tagName = tagName;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.templateAttrs = templateAttrs;\n this.children = children;\n this.references = references;\n this.variables = variables;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTemplate(this);\n }\n}\nclass Content {\n constructor(selector, attributes, sourceSpan, i18n) {\n this.selector = selector;\n this.attributes = attributes;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n this.name = 'ng-content';\n }\n visit(visitor) {\n return visitor.visitContent(this);\n }\n}\nclass Variable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitVariable(this);\n }\n}\nclass Reference {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitReference(this);\n }\n}\nclass Icu$1 {\n constructor(vars, placeholders, sourceSpan, i18n) {\n this.vars = vars;\n this.placeholders = placeholders;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitIcu(this);\n }\n}\nclass NullVisitor {\n visitElement(element) { }\n visitTemplate(template) { }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass RecursiveVisitor$1 {\n visitElement(element) {\n visitAll$1(this, element.attributes);\n visitAll$1(this, element.inputs);\n visitAll$1(this, element.outputs);\n visitAll$1(this, element.children);\n visitAll$1(this, element.references);\n }\n visitTemplate(template) {\n visitAll$1(this, template.attributes);\n visitAll$1(this, template.inputs);\n visitAll$1(this, template.outputs);\n visitAll$1(this, template.children);\n visitAll$1(this, template.references);\n visitAll$1(this, template.variables);\n }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass TransformVisitor {\n visitElement(element) {\n const newAttributes = transformAll(this, element.attributes);\n const newInputs = transformAll(this, element.inputs);\n const newOutputs = transformAll(this, element.outputs);\n const newChildren = transformAll(this, element.children);\n const newReferences = transformAll(this, element.references);\n if (newAttributes != element.attributes || newInputs != element.inputs ||\n newOutputs != element.outputs || newChildren != element.children ||\n newReferences != element.references) {\n return new Element$1(element.name, newAttributes, newInputs, newOutputs, newChildren, newReferences, element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n }\n return element;\n }\n visitTemplate(template) {\n const newAttributes = transformAll(this, template.attributes);\n const newInputs = transformAll(this, template.inputs);\n const newOutputs = transformAll(this, template.outputs);\n const newTemplateAttrs = transformAll(this, template.templateAttrs);\n const newChildren = transformAll(this, template.children);\n const newReferences = transformAll(this, template.references);\n const newVariables = transformAll(this, template.variables);\n if (newAttributes != template.attributes || newInputs != template.inputs ||\n newOutputs != template.outputs || newTemplateAttrs != template.templateAttrs ||\n newChildren != template.children || newReferences != template.references ||\n newVariables != template.variables) {\n return new Template(template.tagName, newAttributes, newInputs, newOutputs, newTemplateAttrs, newChildren, newReferences, newVariables, template.sourceSpan, template.startSourceSpan, template.endSourceSpan);\n }\n return template;\n }\n visitContent(content) {\n return content;\n }\n visitVariable(variable) {\n return variable;\n }\n visitReference(reference) {\n return reference;\n }\n visitTextAttribute(attribute) {\n return attribute;\n }\n visitBoundAttribute(attribute) {\n return attribute;\n }\n visitBoundEvent(attribute) {\n return attribute;\n }\n visitText(text) {\n return text;\n }\n visitBoundText(text) {\n return text;\n }\n visitIcu(icu) {\n return icu;\n }\n}\nfunction visitAll$1(visitor, nodes) {\n const result = [];\n if (visitor.visit) {\n for (const node of nodes) {\n const newNode = visitor.visit(node) || node.visit(visitor);\n }\n }\n else {\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n }\n }\n return result;\n}\nfunction transformAll(visitor, nodes) {\n const result = [];\n let changed = false;\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n changed = changed || newNode != node;\n }\n return changed ? result : nodes;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Message {\n /**\n * @param nodes message AST\n * @param placeholders maps placeholder names to static content and their source spans\n * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages)\n * @param meaning\n * @param description\n * @param customId\n */\n constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {\n this.nodes = nodes;\n this.placeholders = placeholders;\n this.placeholderToMessage = placeholderToMessage;\n this.meaning = meaning;\n this.description = description;\n this.customId = customId;\n this.id = this.customId;\n /** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */\n this.legacyIds = [];\n this.messageString = serializeMessage(this.nodes);\n if (nodes.length) {\n this.sources = [{\n filePath: nodes[0].sourceSpan.start.file.url,\n startLine: nodes[0].sourceSpan.start.line + 1,\n startCol: nodes[0].sourceSpan.start.col + 1,\n endLine: nodes[nodes.length - 1].sourceSpan.end.line + 1,\n endCol: nodes[0].sourceSpan.start.col + 1\n }];\n }\n else {\n this.sources = [];\n }\n }\n}\nclass Text$2 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitText(this, context);\n }\n}\n// TODO(vicb): do we really need this node (vs an array) ?\nclass Container {\n constructor(children, sourceSpan) {\n this.children = children;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitContainer(this, context);\n }\n}\nclass Icu {\n constructor(expression, type, cases, sourceSpan) {\n this.expression = expression;\n this.type = type;\n this.cases = cases;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcu(this, context);\n }\n}\nclass TagPlaceholder {\n constructor(tag, attrs, startName, closeName, children, isVoid, \n // TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan)\n sourceSpan, startSourceSpan, endSourceSpan) {\n this.tag = tag;\n this.attrs = attrs;\n this.startName = startName;\n this.closeName = closeName;\n this.children = children;\n this.isVoid = isVoid;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitTagPlaceholder(this, context);\n }\n}\nclass Placeholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitPlaceholder(this, context);\n }\n}\nclass IcuPlaceholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcuPlaceholder(this, context);\n }\n}\n// Clone the AST\nclass CloneVisitor {\n visitText(text, context) {\n return new Text$2(text.value, text.sourceSpan);\n }\n visitContainer(container, context) {\n const children = container.children.map(n => n.visit(this, context));\n return new Container(children, container.sourceSpan);\n }\n visitIcu(icu, context) {\n const cases = {};\n Object.keys(icu.cases).forEach(key => cases[key] = icu.cases[key].visit(this, context));\n const msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan);\n msg.expressionPlaceholder = icu.expressionPlaceholder;\n return msg;\n }\n visitTagPlaceholder(ph, context) {\n const children = ph.children.map(n => n.visit(this, context));\n return new TagPlaceholder(ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan, ph.startSourceSpan, ph.endSourceSpan);\n }\n visitPlaceholder(ph, context) {\n return new Placeholder(ph.value, ph.name, ph.sourceSpan);\n }\n visitIcuPlaceholder(ph, context) {\n return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan);\n }\n}\n// Visit all the nodes recursively\nclass RecurseVisitor {\n visitText(text, context) { }\n visitContainer(container, context) {\n container.children.forEach(child => child.visit(this));\n }\n visitIcu(icu, context) {\n Object.keys(icu.cases).forEach(k => {\n icu.cases[k].visit(this);\n });\n }\n visitTagPlaceholder(ph, context) {\n ph.children.forEach(child => child.visit(this));\n }\n visitPlaceholder(ph, context) { }\n visitIcuPlaceholder(ph, context) { }\n}\n/**\n * Serialize the message to the Localize backtick string format that would appear in compiled code.\n */\nfunction serializeMessage(messageNodes) {\n const visitor = new LocalizeMessageStringVisitor();\n const str = messageNodes.map(n => n.visit(visitor)).join('');\n return str;\n}\nclass LocalizeMessageStringVisitor {\n visitText(text) {\n return text.value;\n }\n visitContainer(container) {\n return container.children.map(child => child.visit(this)).join('');\n }\n visitIcu(icu) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(' ')}}`;\n }\n visitTagPlaceholder(ph) {\n const children = ph.children.map(child => child.visit(this)).join('');\n return `{$${ph.startName}}${children}{$${ph.closeName}}`;\n }\n visitPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n visitIcuPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Serializer {\n // Creates a name mapper, see `PlaceholderMapper`\n // Returning `null` means that no name mapping is used.\n createNameMapper(message) {\n return null;\n }\n}\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nclass SimplePlaceholderMapper extends RecurseVisitor {\n // create a mapping from the message\n constructor(message, mapName) {\n super();\n this.mapName = mapName;\n this.internalToPublic = {};\n this.publicToNextId = {};\n this.publicToInternal = {};\n message.nodes.forEach(node => node.visit(this));\n }\n toPublicName(internalName) {\n return this.internalToPublic.hasOwnProperty(internalName) ?\n this.internalToPublic[internalName] :\n null;\n }\n toInternalName(publicName) {\n return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] :\n null;\n }\n visitText(text, context) {\n return null;\n }\n visitTagPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.startName);\n super.visitTagPlaceholder(ph, context);\n this.visitPlaceholderName(ph.closeName);\n }\n visitPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n visitIcuPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n // XMB placeholders could only contains A-Z, 0-9 and _\n visitPlaceholderName(internalName) {\n if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) {\n return;\n }\n let publicName = this.mapName(internalName);\n if (this.publicToInternal.hasOwnProperty(publicName)) {\n // Create a new XMB when it has already been used\n const nextId = this.publicToNextId[publicName];\n this.publicToNextId[publicName] = nextId + 1;\n publicName = `${publicName}_${nextId}`;\n }\n else {\n this.publicToNextId[publicName] = 1;\n }\n this.internalToPublic[internalName] = publicName;\n this.publicToInternal[publicName] = internalName;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass _Visitor$2 {\n visitTag(tag) {\n const strAttrs = this._serializeAttributes(tag.attrs);\n if (tag.children.length == 0) {\n return `<${tag.name}${strAttrs}/>`;\n }\n const strChildren = tag.children.map(node => node.visit(this));\n return `<${tag.name}${strAttrs}>${strChildren.join('')}`;\n }\n visitText(text) {\n return text.value;\n }\n visitDeclaration(decl) {\n return ``;\n }\n _serializeAttributes(attrs) {\n const strAttrs = Object.keys(attrs).map((name) => `${name}=\"${attrs[name]}\"`).join(' ');\n return strAttrs.length > 0 ? ' ' + strAttrs : '';\n }\n visitDoctype(doctype) {\n return ``;\n }\n}\nconst _visitor = new _Visitor$2();\nfunction serialize(nodes) {\n return nodes.map((node) => node.visit(_visitor)).join('');\n}\nclass Declaration {\n constructor(unescapedAttrs) {\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitDeclaration(this);\n }\n}\nclass Doctype {\n constructor(rootTag, dtd) {\n this.rootTag = rootTag;\n this.dtd = dtd;\n }\n visit(visitor) {\n return visitor.visitDoctype(this);\n }\n}\nclass Tag {\n constructor(name, unescapedAttrs = {}, children = []) {\n this.name = name;\n this.children = children;\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitTag(this);\n }\n}\nclass Text$1 {\n constructor(unescapedValue) {\n this.value = escapeXml(unescapedValue);\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass CR extends Text$1 {\n constructor(ws = 0) {\n super(`\\n${new Array(ws + 1).join(' ')}`);\n }\n}\nconst _ESCAPED_CHARS = [\n [/&/g, '&'],\n [/\"/g, '"'],\n [/'/g, '''],\n [//g, '>'],\n];\n// Escape `_ESCAPED_CHARS` characters in the given text with encoded entities\nfunction escapeXml(text) {\n return _ESCAPED_CHARS.reduce((text, entry) => text.replace(entry[0], entry[1]), text);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _MESSAGES_TAG = 'messagebundle';\nconst _MESSAGE_TAG = 'msg';\nconst _PLACEHOLDER_TAG$3 = 'ph';\nconst _EXAMPLE_TAG = 'ex';\nconst _SOURCE_TAG$2 = 'source';\nconst _DOCTYPE = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\nclass Xmb extends Serializer {\n write(messages, locale) {\n const exampleVisitor = new ExampleVisitor();\n const visitor = new _Visitor$1();\n let rootNode = new Tag(_MESSAGES_TAG);\n messages.forEach(message => {\n const attrs = { id: message.id };\n if (message.description) {\n attrs['desc'] = message.description;\n }\n if (message.meaning) {\n attrs['meaning'] = message.meaning;\n }\n let sourceTags = [];\n message.sources.forEach((source) => {\n sourceTags.push(new Tag(_SOURCE_TAG$2, {}, [new Text$1(`${source.filePath}:${source.startLine}${source.endLine !== source.startLine ? ',' + source.endLine : ''}`)]));\n });\n rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)]));\n });\n rootNode.children.push(new CR());\n return serialize([\n new Declaration({ version: '1.0', encoding: 'UTF-8' }),\n new CR(),\n new Doctype(_MESSAGES_TAG, _DOCTYPE),\n new CR(),\n exampleVisitor.addDefaultExamples(rootNode),\n new CR(),\n ]);\n }\n load(content, url) {\n throw new Error('Unsupported');\n }\n digest(message) {\n return digest(message);\n }\n createNameMapper(message) {\n return new SimplePlaceholderMapper(message, toPublicName);\n }\n}\nclass _Visitor$1 {\n visitText(text, context) {\n return [new Text$1(text.value)];\n }\n visitContainer(container, context) {\n const nodes = [];\n container.children.forEach((node) => nodes.push(...node.visit(this)));\n return nodes;\n }\n visitIcu(icu, context) {\n const nodes = [new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];\n Object.keys(icu.cases).forEach((c) => {\n nodes.push(new Text$1(`${c} {`), ...icu.cases[c].visit(this), new Text$1(`} `));\n });\n nodes.push(new Text$1(`}`));\n return nodes;\n }\n visitTagPlaceholder(ph, context) {\n const startTagAsText = new Text$1(`<${ph.tag}>`);\n const startEx = new Tag(_EXAMPLE_TAG, {}, [startTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const startTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.startName }, [startEx, startTagAsText]);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [startTagPh];\n }\n const closeTagAsText = new Text$1(``);\n const closeEx = new Tag(_EXAMPLE_TAG, {}, [closeTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const closeTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.closeName }, [closeEx, closeTagAsText]);\n return [startTagPh, ...this.serialize(ph.children), closeTagPh];\n }\n visitPlaceholder(ph, context) {\n const interpolationAsText = new Text$1(`{{${ph.value}}}`);\n // Example tag needs to be not-empty for TC.\n const exTag = new Tag(_EXAMPLE_TAG, {}, [interpolationAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, interpolationAsText])\n ];\n }\n visitIcuPlaceholder(ph, context) {\n const icuExpression = ph.value.expression;\n const icuType = ph.value.type;\n const icuCases = Object.keys(ph.value.cases).map((value) => value + ' {...}').join(' ');\n const icuAsText = new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`);\n const exTag = new Tag(_EXAMPLE_TAG, {}, [icuAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, icuAsText])\n ];\n }\n serialize(nodes) {\n return [].concat(...nodes.map(node => node.visit(this)));\n }\n}\nfunction digest(message) {\n return decimalDigest(message);\n}\n// TC requires at least one non-empty example on placeholders\nclass ExampleVisitor {\n addDefaultExamples(node) {\n node.visit(this);\n return node;\n }\n visitTag(tag) {\n if (tag.name === _PLACEHOLDER_TAG$3) {\n if (!tag.children || tag.children.length == 0) {\n const exText = new Text$1(tag.attrs['name'] || '...');\n tag.children = [new Tag(_EXAMPLE_TAG, {}, [exText])];\n }\n }\n else if (tag.children) {\n tag.children.forEach(node => node.visit(this));\n }\n }\n visitText(text) { }\n visitDeclaration(decl) { }\n visitDoctype(doctype) { }\n}\n// XMB/XTB placeholders can only contain A-Z, 0-9 and _\nfunction toPublicName(internalName) {\n return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* Closure variables holding messages must be named `MSG_[A-Z0-9]+` */\nconst CLOSURE_TRANSLATION_VAR_PREFIX = 'MSG_';\n/**\n * Prefix for non-`goog.getMsg` i18n-related vars.\n * Note: the prefix uses lowercase characters intentionally due to a Closure behavior that\n * considers variables like `I18N_0` as constants and throws an error when their value changes.\n */\nconst TRANSLATION_VAR_PREFIX = 'i18n_';\n/** Name of the i18n attributes **/\nconst I18N_ATTR = 'i18n';\nconst I18N_ATTR_PREFIX = 'i18n-';\n/** Prefix of var expressions used in ICUs */\nconst I18N_ICU_VAR_PREFIX = 'VAR_';\n/** Prefix of ICU expressions for post processing */\nconst I18N_ICU_MAPPING_PREFIX = 'I18N_EXP_';\n/** Placeholder wrapper for i18n expressions **/\nconst I18N_PLACEHOLDER_SYMBOL = '�';\nfunction isI18nAttribute(name) {\n return name === I18N_ATTR || name.startsWith(I18N_ATTR_PREFIX);\n}\nfunction isI18nRootNode(meta) {\n return meta instanceof Message;\n}\nfunction isSingleI18nIcu(meta) {\n return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof Icu;\n}\nfunction hasI18nMeta(node) {\n return !!node.i18n;\n}\nfunction hasI18nAttrs(element) {\n return element.attrs.some((attr) => isI18nAttribute(attr.name));\n}\nfunction icuFromI18nMessage(message) {\n return message.nodes[0];\n}\nfunction wrapI18nPlaceholder(content, contextId = 0) {\n const blockId = contextId > 0 ? `:${contextId}` : '';\n return `${I18N_PLACEHOLDER_SYMBOL}${content}${blockId}${I18N_PLACEHOLDER_SYMBOL}`;\n}\nfunction assembleI18nBoundString(strings, bindingStartIndex = 0, contextId = 0) {\n if (!strings.length)\n return '';\n let acc = '';\n const lastIdx = strings.length - 1;\n for (let i = 0; i < lastIdx; i++) {\n acc += `${strings[i]}${wrapI18nPlaceholder(bindingStartIndex + i, contextId)}`;\n }\n acc += strings[lastIdx];\n return acc;\n}\nfunction getSeqNumberGenerator(startsAt = 0) {\n let current = startsAt;\n return () => current++;\n}\nfunction placeholdersToParams(placeholders) {\n const params = {};\n placeholders.forEach((values, key) => {\n params[key] = literal(values.length > 1 ? `[${values.join('|')}]` : values[0]);\n });\n return params;\n}\nfunction updatePlaceholderMap(map, name, ...values) {\n const current = map.get(name) || [];\n current.push(...values);\n map.set(name, current);\n}\nfunction assembleBoundTextPlaceholders(meta, bindingStartIndex = 0, contextId = 0) {\n const startIdx = bindingStartIndex;\n const placeholders = new Map();\n const node = meta instanceof Message ? meta.nodes.find(node => node instanceof Container) : meta;\n if (node) {\n node\n .children\n .filter((child) => child instanceof Placeholder)\n .forEach((child, idx) => {\n const content = wrapI18nPlaceholder(startIdx + idx, contextId);\n updatePlaceholderMap(placeholders, child.name, content);\n });\n }\n return placeholders;\n}\n/**\n * Format the placeholder names in a map of placeholders to expressions.\n *\n * The placeholder names are converted from \"internal\" format (e.g. `START_TAG_DIV_1`) to \"external\"\n * format (e.g. `startTagDiv_1`).\n *\n * @param params A map of placeholder names to expressions.\n * @param useCamelCase whether to camelCase the placeholder name when formatting.\n * @returns A new map of formatted placeholder names to expressions.\n */\nfunction formatI18nPlaceholderNamesInMap(params = {}, useCamelCase) {\n const _params = {};\n if (params && Object.keys(params).length) {\n Object.keys(params).forEach(key => _params[formatI18nPlaceholderName(key, useCamelCase)] = params[key]);\n }\n return _params;\n}\n/**\n * Converts internal placeholder names to public-facing format\n * (for example to use in goog.getMsg call).\n * Example: `START_TAG_DIV_1` is converted to `startTagDiv_1`.\n *\n * @param name The placeholder name that should be formatted\n * @returns Formatted placeholder name\n */\nfunction formatI18nPlaceholderName(name, useCamelCase = true) {\n const publicName = toPublicName(name);\n if (!useCamelCase) {\n return publicName;\n }\n const chunks = publicName.split('_');\n if (chunks.length === 1) {\n // if no \"_\" found - just lowercase the value\n return name.toLowerCase();\n }\n let postfix;\n // eject last element if it's a number\n if (/^\\d+$/.test(chunks[chunks.length - 1])) {\n postfix = chunks.pop();\n }\n let raw = chunks.shift().toLowerCase();\n if (chunks.length) {\n raw += chunks.map(c => c.charAt(0).toUpperCase() + c.slice(1).toLowerCase()).join('');\n }\n return postfix ? `${raw}_${postfix}` : raw;\n}\n/**\n * Generates a prefix for translation const name.\n *\n * @param extra Additional local prefix that should be injected into translation var name\n * @returns Complete translation const prefix\n */\nfunction getTranslationConstPrefix(extra) {\n return `${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase();\n}\n/**\n * Generate AST to declare a variable. E.g. `var I18N_1;`.\n * @param variable the name of the variable to declare.\n */\nfunction declareI18nVariable(variable) {\n return new DeclareVarStmt(variable.name, undefined, INFERRED_TYPE, undefined, variable.sourceSpan);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether an object key contains potentially unsafe chars, thus the key should be wrapped in\n * quotes. Note: we do not wrap all keys into quotes, as it may have impact on minification and may\n * bot work in some cases when object keys are mangled by minifier.\n *\n * TODO(FW-1136): this is a temporary solution, we need to come up with a better way of working with\n * inputs that contain potentially unsafe chars.\n */\nconst UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;\n/** Name of the temporary to use during data binding */\nconst TEMPORARY_NAME = '_t';\n/** Name of the context parameter passed into a template function */\nconst CONTEXT_NAME = 'ctx';\n/** Name of the RenderFlag passed into a template function */\nconst RENDER_FLAGS = 'rf';\n/** The prefix reference variables */\nconst REFERENCE_PREFIX = '_r';\n/** The name of the implicit context reference */\nconst IMPLICIT_REFERENCE = '$implicit';\n/** Non bindable attribute name **/\nconst NON_BINDABLE_ATTR = 'ngNonBindable';\n/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */\nconst RESTORED_VIEW_CONTEXT_NAME = 'restoredCtx';\n/**\n * Maximum length of a single instruction chain. Because our output AST uses recursion, we're\n * limited in how many expressions we can nest before we reach the call stack limit. This\n * length is set very conservatively in order to reduce the chance of problems.\n */\nconst MAX_CHAIN_LENGTH = 500;\n/** Instructions that support chaining. */\nconst CHAINABLE_INSTRUCTIONS = new Set([\n Identifiers.element,\n Identifiers.elementStart,\n Identifiers.elementEnd,\n Identifiers.elementContainer,\n Identifiers.elementContainerStart,\n Identifiers.elementContainerEnd,\n Identifiers.i18nExp,\n Identifiers.listener,\n Identifiers.classProp,\n Identifiers.syntheticHostListener,\n Identifiers.hostProperty,\n Identifiers.syntheticHostProperty,\n Identifiers.property,\n Identifiers.propertyInterpolate1,\n Identifiers.propertyInterpolate2,\n Identifiers.propertyInterpolate3,\n Identifiers.propertyInterpolate4,\n Identifiers.propertyInterpolate5,\n Identifiers.propertyInterpolate6,\n Identifiers.propertyInterpolate7,\n Identifiers.propertyInterpolate8,\n Identifiers.propertyInterpolateV,\n Identifiers.attribute,\n Identifiers.attributeInterpolate1,\n Identifiers.attributeInterpolate2,\n Identifiers.attributeInterpolate3,\n Identifiers.attributeInterpolate4,\n Identifiers.attributeInterpolate5,\n Identifiers.attributeInterpolate6,\n Identifiers.attributeInterpolate7,\n Identifiers.attributeInterpolate8,\n Identifiers.attributeInterpolateV,\n Identifiers.styleProp,\n Identifiers.stylePropInterpolate1,\n Identifiers.stylePropInterpolate2,\n Identifiers.stylePropInterpolate3,\n Identifiers.stylePropInterpolate4,\n Identifiers.stylePropInterpolate5,\n Identifiers.stylePropInterpolate6,\n Identifiers.stylePropInterpolate7,\n Identifiers.stylePropInterpolate8,\n Identifiers.stylePropInterpolateV,\n Identifiers.textInterpolate,\n Identifiers.textInterpolate1,\n Identifiers.textInterpolate2,\n Identifiers.textInterpolate3,\n Identifiers.textInterpolate4,\n Identifiers.textInterpolate5,\n Identifiers.textInterpolate6,\n Identifiers.textInterpolate7,\n Identifiers.textInterpolate8,\n Identifiers.textInterpolateV,\n]);\n/** Generates a call to a single instruction. */\nfunction invokeInstruction(span, reference, params) {\n return importExpr(reference, null, span).callFn(params, span);\n}\n/**\n * Creates an allocator for a temporary variable.\n *\n * A variable declaration is added to the statements the first time the allocator is invoked.\n */\nfunction temporaryAllocator(statements, name) {\n let temp = null;\n return () => {\n if (!temp) {\n statements.push(new DeclareVarStmt(TEMPORARY_NAME, undefined, DYNAMIC_TYPE));\n temp = variable(name);\n }\n return temp;\n };\n}\nfunction invalid(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction asLiteral(value) {\n if (Array.isArray(value)) {\n return literalArr(value.map(asLiteral));\n }\n return literal(value, INFERRED_TYPE);\n}\nfunction conditionallyCreateMapObjectLiteral(keys, keepDeclared) {\n if (Object.getOwnPropertyNames(keys).length > 0) {\n return mapToExpression(keys, keepDeclared);\n }\n return null;\n}\nfunction mapToExpression(map, keepDeclared) {\n return literalMap(Object.getOwnPropertyNames(map).map(key => {\n // canonical syntax: `dirProp: publicProp`\n const value = map[key];\n let declaredName;\n let publicName;\n let minifiedName;\n let needsDeclaredName;\n if (Array.isArray(value)) {\n [publicName, declaredName] = value;\n minifiedName = key;\n needsDeclaredName = publicName !== declaredName;\n }\n else {\n minifiedName = declaredName = key;\n publicName = value;\n needsDeclaredName = false;\n }\n return {\n key: minifiedName,\n // put quotes around keys that contain potentially unsafe characters\n quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),\n value: (keepDeclared && needsDeclaredName) ?\n literalArr([asLiteral(publicName), asLiteral(declaredName)]) :\n asLiteral(publicName)\n };\n }));\n}\n/**\n * Remove trailing null nodes as they are implied.\n */\nfunction trimTrailingNulls(parameters) {\n while (isNull(parameters[parameters.length - 1])) {\n parameters.pop();\n }\n return parameters;\n}\nfunction getQueryPredicate(query, constantPool) {\n if (Array.isArray(query.predicate)) {\n let predicate = [];\n query.predicate.forEach((selector) => {\n // Each item in predicates array may contain strings with comma-separated refs\n // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them\n // as separate array entities\n const selectors = selector.split(',').map(token => literal(token.trim()));\n predicate.push(...selectors);\n });\n return constantPool.getConstLiteral(literalArr(predicate), true);\n }\n else {\n // The original predicate may have been wrapped in a `forwardRef()` call.\n switch (query.predicate.forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 2 /* ForwardRefHandling.Unwrapped */:\n return query.predicate.expression;\n case 1 /* ForwardRefHandling.Wrapped */:\n return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression]);\n }\n }\n}\n/**\n * A representation for an object literal used during codegen of definition objects. The generic\n * type `T` allows to reference a documented type of the generated structure, such that the\n * property names that are set can be resolved to their documented declaration.\n */\nclass DefinitionMap {\n constructor() {\n this.values = [];\n }\n set(key, value) {\n if (value) {\n this.values.push({ key: key, value, quoted: false });\n }\n }\n toLiteralMap() {\n return literalMap(this.values);\n }\n}\n/**\n * Extract a map of properties to values for a given element or template node, which can be used\n * by the directive matching machinery.\n *\n * @param elOrTpl the element or template in question\n * @return an object set up for directive matching. For attributes on the element/template, this\n * object maps a property name to its (static) value. For any bindings, this map simply maps the\n * property name to an empty string.\n */\nfunction getAttrsForDirectiveMatching(elOrTpl) {\n const attributesMap = {};\n if (elOrTpl instanceof Template && elOrTpl.tagName !== 'ng-template') {\n elOrTpl.templateAttrs.forEach(a => attributesMap[a.name] = '');\n }\n else {\n elOrTpl.attributes.forEach(a => {\n if (!isI18nAttribute(a.name)) {\n attributesMap[a.name] = a.value;\n }\n });\n elOrTpl.inputs.forEach(i => {\n attributesMap[i.name] = '';\n });\n elOrTpl.outputs.forEach(o => {\n attributesMap[o.name] = '';\n });\n }\n return attributesMap;\n}\n/**\n * Gets the number of arguments expected to be passed to a generated instruction in the case of\n * interpolation instructions.\n * @param interpolation An interpolation ast\n */\nfunction getInterpolationArgsLength(interpolation) {\n const { expressions, strings } = interpolation;\n if (expressions.length === 1 && strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // If the interpolation has one interpolated value, but the prefix and suffix are both empty\n // strings, we only pass one argument, to a special instruction like `propertyInterpolate` or\n // `textInterpolate`.\n return 1;\n }\n else {\n return expressions.length + strings.length;\n }\n}\n/**\n * Generates the final instruction call statements based on the passed in configuration.\n * Will try to chain instructions as much as possible, if chaining is supported.\n */\nfunction getInstructionStatements(instructions) {\n const statements = [];\n let pendingExpression = null;\n let pendingExpressionType = null;\n let chainLength = 0;\n for (const current of instructions) {\n const resolvedParams = (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn) ??\n [];\n const params = Array.isArray(resolvedParams) ? resolvedParams : [resolvedParams];\n // If the current instruction is the same as the previous one\n // and it can be chained, add another call to the chain.\n if (chainLength < MAX_CHAIN_LENGTH && pendingExpressionType === current.reference &&\n CHAINABLE_INSTRUCTIONS.has(pendingExpressionType)) {\n // We'll always have a pending expression when there's a pending expression type.\n pendingExpression = pendingExpression.callFn(params, pendingExpression.sourceSpan);\n chainLength++;\n }\n else {\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n pendingExpression = invokeInstruction(current.span, current.reference, params);\n pendingExpressionType = current.reference;\n chainLength = 0;\n }\n }\n // Since the current instruction adds the previous one to the statements,\n // we may be left with the final one at the end that is still pending.\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n return statements;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjectable(meta, resolveForwardRefs) {\n let result = null;\n const factoryMeta = {\n name: meta.name,\n type: meta.type,\n internalType: meta.internalType,\n typeArgumentCount: meta.typeArgumentCount,\n deps: [],\n target: FactoryTarget$1.Injectable,\n };\n if (meta.useClass !== undefined) {\n // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is\n // used to instantiate the class with dependencies injected, or deps are not specified and\n // the factory of the class is used to instantiate it.\n //\n // A special case exists for useClass: Type where Type is the injectable type itself and no\n // deps are specified, in which case 'useClass' is effectively ignored.\n const useClassOnSelf = meta.useClass.expression.isEquivalent(meta.internalType);\n let deps = undefined;\n if (meta.deps !== undefined) {\n deps = meta.deps;\n }\n if (deps !== undefined) {\n // factory: () => new meta.useClass(...deps)\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useClass.expression,\n delegateDeps: deps,\n delegateType: R3FactoryDelegateType.Class,\n });\n }\n else if (useClassOnSelf) {\n result = compileFactoryFunction(factoryMeta);\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.useClass.expression, resolveForwardRefs)\n };\n }\n }\n else if (meta.useFactory !== undefined) {\n if (meta.deps !== undefined) {\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useFactory,\n delegateDeps: meta.deps || [],\n delegateType: R3FactoryDelegateType.Function,\n });\n }\n else {\n result = {\n statements: [],\n expression: fn([], [new ReturnStatement(meta.useFactory.callFn([]))])\n };\n }\n }\n else if (meta.useValue !== undefined) {\n // Note: it's safe to use `meta.useValue` instead of the `USE_VALUE in meta` check used for\n // client code because meta.useValue is an Expression which will be defined even if the actual\n // value is undefined.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: meta.useValue.expression,\n });\n }\n else if (meta.useExisting !== undefined) {\n // useExisting is an `inject` call on the existing token.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]),\n });\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.internalType, resolveForwardRefs)\n };\n }\n const token = meta.internalType;\n const injectableProps = new DefinitionMap();\n injectableProps.set('token', token);\n injectableProps.set('factory', result.expression);\n // Only generate providedIn property if it has a non-null value\n if (meta.providedIn.expression.value !== null) {\n injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn));\n }\n const expression = importExpr(Identifiers.ɵɵdefineInjectable)\n .callFn([injectableProps.toLiteralMap()], undefined, true);\n return {\n expression,\n type: createInjectableType(meta),\n statements: result.statements,\n };\n}\nfunction createInjectableType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectableDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount)]));\n}\nfunction delegateToFactory(type, internalType, unwrapForwardRefs) {\n if (type.node === internalType.node) {\n // The types are the same, so we can simply delegate directly to the type's factory.\n // ```\n // factory: type.ɵfac\n // ```\n return internalType.prop('ɵfac');\n }\n if (!unwrapForwardRefs) {\n // The type is not wrapped in a `forwardRef()`, so we create a simple factory function that\n // accepts a sub-type as an argument.\n // ```\n // factory: function(t) { return internalType.ɵfac(t); }\n // ```\n return createFactoryFunction(internalType);\n }\n // The internalType is actually wrapped in a `forwardRef()` so we need to resolve that before\n // calling its factory.\n // ```\n // factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); }\n // ```\n const unwrappedType = importExpr(Identifiers.resolveForwardRef).callFn([internalType]);\n return createFactoryFunction(unwrappedType);\n}\nfunction createFactoryFunction(type) {\n return fn([new FnParam('t', DYNAMIC_TYPE)], [new ReturnStatement(type.prop('ɵfac').callFn([variable('t')]))]);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst UNUSABLE_INTERPOLATION_REGEXPS = [\n /^\\s*$/,\n /[<>]/,\n /^[{}]$/,\n /&(#|[a-z])/i,\n /^\\/\\//, // comment\n];\nfunction assertInterpolationSymbols(identifier, value) {\n if (value != null && !(Array.isArray(value) && value.length == 2)) {\n throw new Error(`Expected '${identifier}' to be an array, [start, end].`);\n }\n else if (value != null) {\n const start = value[0];\n const end = value[1];\n // Check for unusable interpolation symbols\n UNUSABLE_INTERPOLATION_REGEXPS.forEach(regexp => {\n if (regexp.test(start) || regexp.test(end)) {\n throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`);\n }\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass InterpolationConfig {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n static fromArray(markers) {\n if (!markers) {\n return DEFAULT_INTERPOLATION_CONFIG;\n }\n assertInterpolationSymbols('interpolation', markers);\n return new InterpolationConfig(markers[0], markers[1]);\n }\n}\nconst DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst $EOF = 0;\nconst $BSPACE = 8;\nconst $TAB = 9;\nconst $LF = 10;\nconst $VTAB = 11;\nconst $FF = 12;\nconst $CR = 13;\nconst $SPACE = 32;\nconst $BANG = 33;\nconst $DQ = 34;\nconst $HASH = 35;\nconst $$ = 36;\nconst $PERCENT = 37;\nconst $AMPERSAND = 38;\nconst $SQ = 39;\nconst $LPAREN = 40;\nconst $RPAREN = 41;\nconst $STAR = 42;\nconst $PLUS = 43;\nconst $COMMA = 44;\nconst $MINUS = 45;\nconst $PERIOD = 46;\nconst $SLASH = 47;\nconst $COLON = 58;\nconst $SEMICOLON = 59;\nconst $LT = 60;\nconst $EQ = 61;\nconst $GT = 62;\nconst $QUESTION = 63;\nconst $0 = 48;\nconst $7 = 55;\nconst $9 = 57;\nconst $A = 65;\nconst $E = 69;\nconst $F = 70;\nconst $X = 88;\nconst $Z = 90;\nconst $LBRACKET = 91;\nconst $BACKSLASH = 92;\nconst $RBRACKET = 93;\nconst $CARET = 94;\nconst $_ = 95;\nconst $a = 97;\nconst $b = 98;\nconst $e = 101;\nconst $f = 102;\nconst $n = 110;\nconst $r = 114;\nconst $t = 116;\nconst $u = 117;\nconst $v = 118;\nconst $x = 120;\nconst $z = 122;\nconst $LBRACE = 123;\nconst $BAR = 124;\nconst $RBRACE = 125;\nconst $NBSP = 160;\nconst $PIPE = 124;\nconst $TILDA = 126;\nconst $AT = 64;\nconst $BT = 96;\nfunction isWhitespace(code) {\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\n}\nfunction isDigit(code) {\n return $0 <= code && code <= $9;\n}\nfunction isAsciiLetter(code) {\n return code >= $a && code <= $z || code >= $A && code <= $Z;\n}\nfunction isAsciiHexDigit(code) {\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\n}\nfunction isNewLine(code) {\n return code === $LF || code === $CR;\n}\nfunction isOctalDigit(code) {\n return $0 <= code && code <= $7;\n}\nfunction isQuote(code) {\n return code === $SQ || code === $DQ || code === $BT;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParseLocation {\n constructor(file, offset, line, col) {\n this.file = file;\n this.offset = offset;\n this.line = line;\n this.col = col;\n }\n toString() {\n return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;\n }\n moveBy(delta) {\n const source = this.file.content;\n const len = source.length;\n let offset = this.offset;\n let line = this.line;\n let col = this.col;\n while (offset > 0 && delta < 0) {\n offset--;\n delta++;\n const ch = source.charCodeAt(offset);\n if (ch == $LF) {\n line--;\n const priorLine = source.substring(0, offset - 1).lastIndexOf(String.fromCharCode($LF));\n col = priorLine > 0 ? offset - priorLine : offset;\n }\n else {\n col--;\n }\n }\n while (offset < len && delta > 0) {\n const ch = source.charCodeAt(offset);\n offset++;\n delta--;\n if (ch == $LF) {\n line++;\n col = 0;\n }\n else {\n col++;\n }\n }\n return new ParseLocation(this.file, offset, line, col);\n }\n // Return the source around the location\n // Up to `maxChars` or `maxLines` on each side of the location\n getContext(maxChars, maxLines) {\n const content = this.file.content;\n let startOffset = this.offset;\n if (startOffset != null) {\n if (startOffset > content.length - 1) {\n startOffset = content.length - 1;\n }\n let endOffset = startOffset;\n let ctxChars = 0;\n let ctxLines = 0;\n while (ctxChars < maxChars && startOffset > 0) {\n startOffset--;\n ctxChars++;\n if (content[startOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n ctxChars = 0;\n ctxLines = 0;\n while (ctxChars < maxChars && endOffset < content.length - 1) {\n endOffset++;\n ctxChars++;\n if (content[endOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n return {\n before: content.substring(startOffset, this.offset),\n after: content.substring(this.offset, endOffset + 1),\n };\n }\n return null;\n }\n}\nclass ParseSourceFile {\n constructor(content, url) {\n this.content = content;\n this.url = url;\n }\n}\nclass ParseSourceSpan {\n /**\n * Create an object that holds information about spans of tokens/nodes captured during\n * lexing/parsing of text.\n *\n * @param start\n * The location of the start of the span (having skipped leading trivia).\n * Skipping leading trivia makes source-spans more \"user friendly\", since things like HTML\n * elements will appear to begin at the start of the opening tag, rather than at the start of any\n * leading trivia, which could include newlines.\n *\n * @param end\n * The location of the end of the span.\n *\n * @param fullStart\n * The start of the token without skipping the leading trivia.\n * This is used by tooling that splits tokens further, such as extracting Angular interpolations\n * from text tokens. Such tooling creates new source-spans relative to the original token's\n * source-span. If leading trivia characters have been skipped then the new source-spans may be\n * incorrectly offset.\n *\n * @param details\n * Additional information (such as identifier names) that should be associated with the span.\n */\n constructor(start, end, fullStart = start, details = null) {\n this.start = start;\n this.end = end;\n this.fullStart = fullStart;\n this.details = details;\n }\n toString() {\n return this.start.file.content.substring(this.start.offset, this.end.offset);\n }\n}\nvar ParseErrorLevel;\n(function (ParseErrorLevel) {\n ParseErrorLevel[ParseErrorLevel[\"WARNING\"] = 0] = \"WARNING\";\n ParseErrorLevel[ParseErrorLevel[\"ERROR\"] = 1] = \"ERROR\";\n})(ParseErrorLevel || (ParseErrorLevel = {}));\nclass ParseError {\n constructor(span, msg, level = ParseErrorLevel.ERROR) {\n this.span = span;\n this.msg = msg;\n this.level = level;\n }\n contextualMessage() {\n const ctx = this.span.start.getContext(100, 3);\n return ctx ? `${this.msg} (\"${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}\")` :\n this.msg;\n }\n toString() {\n const details = this.span.details ? `, ${this.span.details}` : '';\n return `${this.contextualMessage()}: ${this.span.start}${details}`;\n }\n}\n/**\n * Generates Source Span object for a given R3 Type for JIT mode.\n *\n * @param kind Component or Directive.\n * @param typeName name of the Component or Directive.\n * @param sourceUrl reference to Component or Directive source.\n * @returns instance of ParseSourceSpan that represent a given Component or Directive.\n */\nfunction r3JitTypeSourceSpan(kind, typeName, sourceUrl) {\n const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`;\n const sourceFile = new ParseSourceFile('', sourceFileName);\n return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1));\n}\nlet _anonymousTypeIndex = 0;\nfunction identifierName(compileIdentifier) {\n if (!compileIdentifier || !compileIdentifier.reference) {\n return null;\n }\n const ref = compileIdentifier.reference;\n if (ref['__anonymousType']) {\n return ref['__anonymousType'];\n }\n if (ref['__forward_ref__']) {\n // We do not want to try to stringify a `forwardRef()` function because that would cause the\n // inner function to be evaluated too early, defeating the whole point of the `forwardRef`.\n return '__forward_ref__';\n }\n let identifier = stringify(ref);\n if (identifier.indexOf('(') >= 0) {\n // case: anonymous functions!\n identifier = `anonymous_${_anonymousTypeIndex++}`;\n ref['__anonymousType'] = identifier;\n }\n else {\n identifier = sanitizeIdentifier(identifier);\n }\n return identifier;\n}\nfunction sanitizeIdentifier(name) {\n return name.replace(/\\W/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * In TypeScript, tagged template functions expect a \"template object\", which is an array of\n * \"cooked\" strings plus a `raw` property that contains an array of \"raw\" strings. This is\n * typically constructed with a function called `__makeTemplateObject(cooked, raw)`, but it may not\n * be available in all environments.\n *\n * This is a JavaScript polyfill that uses __makeTemplateObject when it's available, but otherwise\n * creates an inline helper with the same functionality.\n *\n * In the inline function, if `Object.defineProperty` is available we use that to attach the `raw`\n * array.\n */\nconst makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e})';\nclass AbstractJsEmitterVisitor extends AbstractEmitterVisitor {\n constructor() {\n super(false);\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Cannot emit a WrappedNodeExpr in Javascript.');\n }\n visitDeclareVarStmt(stmt, ctx) {\n ctx.print(stmt, `var ${stmt.name}`);\n if (stmt.value) {\n ctx.print(stmt, ' = ');\n stmt.value.visitExpression(this, ctx);\n }\n ctx.println(stmt, `;`);\n return null;\n }\n visitTaggedTemplateExpr(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // tag`...`\n // ```\n // which is effectively like:\n // ```\n // tag(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n const elements = ast.template.elements;\n ast.tag.visitExpression(this, ctx);\n ctx.print(ast, `(${makeTemplateObjectPolyfill}(`);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.text, false)).join(', ')}], `);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.rawText, false)).join(', ')}])`);\n ast.template.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n visitFunctionExpr(ast, ctx) {\n ctx.print(ast, `function${ast.name ? ' ' + ast.name : ''}(`);\n this._visitParams(ast.params, ctx);\n ctx.println(ast, `) {`);\n ctx.incIndent();\n this.visitAllStatements(ast.statements, ctx);\n ctx.decIndent();\n ctx.print(ast, `}`);\n return null;\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n ctx.print(stmt, `function ${stmt.name}(`);\n this._visitParams(stmt.params, ctx);\n ctx.println(stmt, `) {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.statements, ctx);\n ctx.decIndent();\n ctx.println(stmt, `}`);\n return null;\n }\n visitLocalizedString(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // $localize `...`\n // ```\n // which is effectively like:\n // ```\n // $localize(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n ctx.print(ast, `$localize(${makeTemplateObjectPolyfill}(`);\n const parts = [ast.serializeI18nHead()];\n for (let i = 1; i < ast.messageParts.length; i++) {\n parts.push(ast.serializeI18nTemplatePart(i));\n }\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.cooked, false)).join(', ')}], `);\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.raw, false)).join(', ')}])`);\n ast.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n _visitParams(params, ctx) {\n this.visitAllObjects(param => ctx.print(null, param.name), params, ctx, ',');\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy =\n _global.trustedTypes.createPolicy('angular#unsafe-jit', {\n createScript: (s) => s,\n });\n }\n catch {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n return getPolicy()?.createScript(script) || script;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from the JIT compiler, as use in other code can lead to XSS\n * vulnerabilities.\n */\nfunction newTrustedFunctionForJIT(...args) {\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A helper class to manage the evaluation of JIT generated code.\n */\nclass JitEvaluator {\n /**\n *\n * @param sourceUrl The URL of the generated code.\n * @param statements An array of Angular statement AST nodes to be evaluated.\n * @param refResolver Resolves `o.ExternalReference`s into values.\n * @param createSourceMaps If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns A map of all the variables in the generated code.\n */\n evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {\n const converter = new JitEmitterVisitor(refResolver);\n const ctx = EmitterVisitorContext.createRoot();\n // Ensure generated code is in strict mode\n if (statements.length > 0 && !isUseStrictStatement(statements[0])) {\n statements = [\n literal('use strict').toStmt(),\n ...statements,\n ];\n }\n converter.visitAllStatements(statements, ctx);\n converter.createReturnStmt(ctx);\n return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps);\n }\n /**\n * Evaluate a piece of JIT generated code.\n * @param sourceUrl The URL of this generated code.\n * @param ctx A context object that contains an AST of the code to be evaluated.\n * @param vars A map containing the names and values of variables that the evaluated code might\n * reference.\n * @param createSourceMap If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns The result of evaluating the code.\n */\n evaluateCode(sourceUrl, ctx, vars, createSourceMap) {\n let fnBody = `\"use strict\";${ctx.toSource()}\\n//# sourceURL=${sourceUrl}`;\n const fnArgNames = [];\n const fnArgValues = [];\n for (const argName in vars) {\n fnArgValues.push(vars[argName]);\n fnArgNames.push(argName);\n }\n if (createSourceMap) {\n // using `new Function(...)` generates a header, 1 line of no arguments, 2 lines otherwise\n // E.g. ```\n // function anonymous(a,b,c\n // /**/) { ... }```\n // We don't want to hard code this fact, so we auto detect it via an empty function first.\n const emptyFn = newTrustedFunctionForJIT(...fnArgNames.concat('return null;')).toString();\n const headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\\n').length - 1;\n fnBody += `\\n${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;\n }\n const fn = newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));\n return this.executeFunction(fn, fnArgValues);\n }\n /**\n * Execute a JIT generated function by calling it.\n *\n * This method can be overridden in tests to capture the functions that are generated\n * by this `JitEvaluator` class.\n *\n * @param fn A function to execute.\n * @param args The arguments to pass to the function being executed.\n * @returns The return value of the executed function.\n */\n executeFunction(fn, args) {\n return fn(...args);\n }\n}\n/**\n * An Angular AST visitor that converts AST nodes into executable JavaScript code.\n */\nclass JitEmitterVisitor extends AbstractJsEmitterVisitor {\n constructor(refResolver) {\n super();\n this.refResolver = refResolver;\n this._evalArgNames = [];\n this._evalArgValues = [];\n this._evalExportedVars = [];\n }\n createReturnStmt(ctx) {\n const stmt = new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map(resultVar => new LiteralMapEntry(resultVar, variable(resultVar), false))));\n stmt.visitStatement(this, ctx);\n }\n getArgs() {\n const result = {};\n for (let i = 0; i < this._evalArgNames.length; i++) {\n result[this._evalArgNames[i]] = this._evalArgValues[i];\n }\n return result;\n }\n visitExternalExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, this.refResolver.resolveExternalReference(ast.value), ctx);\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, ast.node, ctx);\n return null;\n }\n visitDeclareVarStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareVarStmt(stmt, ctx);\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareFunctionStmt(stmt, ctx);\n }\n _emitReferenceToExternal(ast, value, ctx) {\n let id = this._evalArgValues.indexOf(value);\n if (id === -1) {\n id = this._evalArgValues.length;\n this._evalArgValues.push(value);\n const name = identifierName({ reference: value }) || 'val';\n this._evalArgNames.push(`jit_${name}_${id}`);\n }\n ctx.print(ast, this._evalArgNames[id]);\n }\n}\nfunction isUseStrictStatement(statement) {\n return statement.isEquivalent(literal('use strict').toStmt());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjector(meta) {\n const definitionMap = new DefinitionMap();\n if (meta.providers !== null) {\n definitionMap.set('providers', meta.providers);\n }\n if (meta.imports.length > 0) {\n definitionMap.set('imports', literalArr(meta.imports));\n }\n const expression = importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createInjectorType(meta);\n return { expression, type, statements: [] };\n}\nfunction createInjectorType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Implementation of `CompileReflector` which resolves references to @angular/core\n * symbols at runtime, according to a consumer-provided mapping.\n *\n * Only supports `resolveExternalReference`, all other methods throw.\n */\nclass R3JitReflector {\n constructor(context) {\n this.context = context;\n }\n resolveExternalReference(ref) {\n // This reflector only handles @angular/core imports.\n if (ref.moduleName !== '@angular/core') {\n throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`);\n }\n if (!this.context.hasOwnProperty(ref.name)) {\n throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`);\n }\n return this.context[ref.name];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted\n * as a part of the NgModule definition.\n */\nvar R3SelectorScopeMode;\n(function (R3SelectorScopeMode) {\n /**\n * Emit the declarations inline into the module definition.\n *\n * This option is useful in certain contexts where it's known that JIT support is required. The\n * tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if\n * they are unused, but the NgModule is used.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Inline\"] = 0] = \"Inline\";\n /**\n * Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is\n * guarded with the `ngJitMode` flag.\n *\n * This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to\n * false, which allows unused directives and pipes to be tree-shaken.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"SideEffect\"] = 1] = \"SideEffect\";\n /**\n * Don't generate selector scopes at all.\n *\n * This is useful for contexts where JIT support is known to be unnecessary.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Omit\"] = 2] = \"Omit\";\n})(R3SelectorScopeMode || (R3SelectorScopeMode = {}));\n/**\n * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.\n */\nfunction compileNgModule(meta) {\n const { adjacentType, internalType, bootstrap, declarations, imports, exports, schemas, containsForwardDecls, selectorScopeMode, id } = meta;\n const statements = [];\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', internalType);\n if (bootstrap.length > 0) {\n definitionMap.set('bootstrap', refsToArray(bootstrap, containsForwardDecls));\n }\n if (selectorScopeMode === R3SelectorScopeMode.Inline) {\n // If requested to emit scope information inline, pass the `declarations`, `imports` and\n // `exports` to the `ɵɵdefineNgModule()` call directly.\n if (declarations.length > 0) {\n definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n definitionMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n definitionMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n }\n else if (selectorScopeMode === R3SelectorScopeMode.SideEffect) {\n // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it\n // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's\n // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the\n // `ngJitMode` flag.\n const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta);\n if (setNgModuleScopeCall !== null) {\n statements.push(setNgModuleScopeCall);\n }\n }\n else {\n // Selector scope emit was not requested, so skip it.\n }\n if (schemas !== null && schemas.length > 0) {\n definitionMap.set('schemas', literalArr(schemas.map(ref => ref.value)));\n }\n if (id !== null) {\n definitionMap.set('id', id);\n // Generate a side-effectful call to register this NgModule by its id, as per the semantics of\n // NgModule ids.\n statements.push(importExpr(Identifiers.registerNgModuleType).callFn([adjacentType, id]).toStmt());\n }\n const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createNgModuleType(meta);\n return { expression, type, statements };\n}\n/**\n * This function is used in JIT mode to generate the call to `ɵɵdefineNgModule()` from a call to\n * `ɵɵngDeclareNgModule()`.\n */\nfunction compileNgModuleDeclarationExpression(meta) {\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', new WrappedNodeExpr(meta.type));\n if (meta.bootstrap !== undefined) {\n definitionMap.set('bootstrap', new WrappedNodeExpr(meta.bootstrap));\n }\n if (meta.declarations !== undefined) {\n definitionMap.set('declarations', new WrappedNodeExpr(meta.declarations));\n }\n if (meta.imports !== undefined) {\n definitionMap.set('imports', new WrappedNodeExpr(meta.imports));\n }\n if (meta.exports !== undefined) {\n definitionMap.set('exports', new WrappedNodeExpr(meta.exports));\n }\n if (meta.schemas !== undefined) {\n definitionMap.set('schemas', new WrappedNodeExpr(meta.schemas));\n }\n if (meta.id !== undefined) {\n definitionMap.set('id', new WrappedNodeExpr(meta.id));\n }\n return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);\n}\nfunction createNgModuleType({ type: moduleType, declarations, exports, imports, includeImportTypes, publicDeclarationTypes }) {\n return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [\n new ExpressionType(moduleType.type),\n publicDeclarationTypes === null ? tupleTypeOf(declarations) :\n tupleOfTypes(publicDeclarationTypes),\n includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE,\n tupleTypeOf(exports),\n ]));\n}\n/**\n * Generates a function call to `ɵɵsetNgModuleScope` with all necessary information so that the\n * transitive module scope can be computed during runtime in JIT mode. This call is marked pure\n * such that the references to declarations, imports and exports may be elided causing these\n * symbols to become tree-shakeable.\n */\nfunction generateSetNgModuleScopeCall(meta) {\n const { adjacentType: moduleType, declarations, imports, exports, containsForwardDecls } = meta;\n const scopeMap = new DefinitionMap();\n if (declarations.length > 0) {\n scopeMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n scopeMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n scopeMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n if (Object.keys(scopeMap.values).length === 0) {\n return null;\n }\n // setNgModuleScope(...)\n const fnCall = new InvokeFunctionExpr(\n /* fn */ importExpr(Identifiers.setNgModuleScope), \n /* args */ [moduleType, scopeMap.toLiteralMap()]);\n // (ngJitMode guard) && setNgModuleScope(...)\n const guardedCall = jitOnlyGuardedExpression(fnCall);\n // function() { (ngJitMode guard) && setNgModuleScope(...); }\n const iife = new FunctionExpr(\n /* params */ [], \n /* statements */ [guardedCall.toStmt()]);\n // (function() { (ngJitMode guard) && setNgModuleScope(...); })()\n const iifeCall = new InvokeFunctionExpr(\n /* fn */ iife, \n /* args */ []);\n return iifeCall.toStmt();\n}\nfunction tupleTypeOf(exp) {\n const types = exp.map(ref => typeofExpr(ref.type));\n return exp.length > 0 ? expressionType(literalArr(types)) : NONE_TYPE;\n}\nfunction tupleOfTypes(types) {\n const typeofTypes = types.map(type => typeofExpr(type));\n return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compilePipeFromMetadata(metadata) {\n const definitionMapValues = [];\n // e.g. `name: 'myPipe'`\n definitionMapValues.push({ key: 'name', value: literal(metadata.pipeName), quoted: false });\n // e.g. `type: MyPipe`\n definitionMapValues.push({ key: 'type', value: metadata.type.value, quoted: false });\n // e.g. `pure: true`\n definitionMapValues.push({ key: 'pure', value: literal(metadata.pure), quoted: false });\n if (metadata.isStandalone) {\n definitionMapValues.push({ key: 'standalone', value: literal(true), quoted: false });\n }\n const expression = importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)], undefined, true);\n const type = createPipeType(metadata);\n return { expression, type, statements: [] };\n}\nfunction createPipeType(metadata) {\n return new ExpressionType(importExpr(Identifiers.PipeDeclaration, [\n typeWithParameters(metadata.type.type, metadata.typeArgumentCount),\n new ExpressionType(new LiteralExpr(metadata.pipeName)),\n new ExpressionType(new LiteralExpr(metadata.isStandalone)),\n ]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParserError {\n constructor(message, input, errLocation, ctxLocation) {\n this.input = input;\n this.errLocation = errLocation;\n this.ctxLocation = ctxLocation;\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\n }\n}\nclass ParseSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n toAbsolute(absoluteOffset) {\n return new AbsoluteSourceSpan(absoluteOffset + this.start, absoluteOffset + this.end);\n }\n}\nclass AST {\n constructor(span, \n /**\n * Absolute location of the expression AST in a source code file.\n */\n sourceSpan) {\n this.span = span;\n this.sourceSpan = sourceSpan;\n }\n toString() {\n return 'AST';\n }\n}\nclass ASTWithName extends AST {\n constructor(span, sourceSpan, nameSpan) {\n super(span, sourceSpan);\n this.nameSpan = nameSpan;\n }\n}\nclass EmptyExpr extends AST {\n visit(visitor, context = null) {\n // do nothing\n }\n}\nclass ImplicitReceiver extends AST {\n visit(visitor, context = null) {\n return visitor.visitImplicitReceiver(this, context);\n }\n}\n/**\n * Receiver when something is accessed through `this` (e.g. `this.foo`). Note that this class\n * inherits from `ImplicitReceiver`, because accessing something through `this` is treated the\n * same as accessing it implicitly inside of an Angular template (e.g. `[attr.title]=\"this.title\"`\n * is the same as `[attr.title]=\"title\"`.). Inheriting allows for the `this` accesses to be treated\n * the same as implicit ones, except for a couple of exceptions like `$event` and `$any`.\n * TODO: we should find a way for this class not to extend from `ImplicitReceiver` in the future.\n */\nclass ThisReceiver extends ImplicitReceiver {\n visit(visitor, context = null) {\n return visitor.visitThisReceiver?.(this, context);\n }\n}\n/**\n * Multiple expressions separated by a semicolon.\n */\nclass Chain extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitChain(this, context);\n }\n}\nclass Conditional extends AST {\n constructor(span, sourceSpan, condition, trueExp, falseExp) {\n super(span, sourceSpan);\n this.condition = condition;\n this.trueExp = trueExp;\n this.falseExp = falseExp;\n }\n visit(visitor, context = null) {\n return visitor.visitConditional(this, context);\n }\n}\nclass PropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyRead(this, context);\n }\n}\nclass PropertyWrite extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name, value) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyWrite(this, context);\n }\n}\nclass SafePropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitSafePropertyRead(this, context);\n }\n}\nclass KeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedRead(this, context);\n }\n}\nclass SafeKeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeKeyedRead(this, context);\n }\n}\nclass KeyedWrite extends AST {\n constructor(span, sourceSpan, receiver, key, value) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedWrite(this, context);\n }\n}\nclass BindingPipe extends ASTWithName {\n constructor(span, sourceSpan, exp, name, args, nameSpan) {\n super(span, sourceSpan, nameSpan);\n this.exp = exp;\n this.name = name;\n this.args = args;\n }\n visit(visitor, context = null) {\n return visitor.visitPipe(this, context);\n }\n}\nclass LiteralPrimitive extends AST {\n constructor(span, sourceSpan, value) {\n super(span, sourceSpan);\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralPrimitive(this, context);\n }\n}\nclass LiteralArray extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralArray(this, context);\n }\n}\nclass LiteralMap extends AST {\n constructor(span, sourceSpan, keys, values) {\n super(span, sourceSpan);\n this.keys = keys;\n this.values = values;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralMap(this, context);\n }\n}\nclass Interpolation extends AST {\n constructor(span, sourceSpan, strings, expressions) {\n super(span, sourceSpan);\n this.strings = strings;\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitInterpolation(this, context);\n }\n}\nclass Binary extends AST {\n constructor(span, sourceSpan, operation, left, right) {\n super(span, sourceSpan);\n this.operation = operation;\n this.left = left;\n this.right = right;\n }\n visit(visitor, context = null) {\n return visitor.visitBinary(this, context);\n }\n}\n/**\n * For backwards compatibility reasons, `Unary` inherits from `Binary` and mimics the binary AST\n * node that was originally used. This inheritance relation can be deleted in some future major,\n * after consumers have been given a chance to fully support Unary.\n */\nclass Unary extends Binary {\n /**\n * During the deprecation period this constructor is private, to avoid consumers from creating\n * a `Unary` with the fallback properties for `Binary`.\n */\n constructor(span, sourceSpan, operator, expr, binaryOp, binaryLeft, binaryRight) {\n super(span, sourceSpan, binaryOp, binaryLeft, binaryRight);\n this.operator = operator;\n this.expr = expr;\n // Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not\n // depend on these fields when operating on `Unary`.\n this.left = null;\n this.right = null;\n this.operation = null;\n }\n /**\n * Creates a unary minus expression \"-x\", represented as `Binary` using \"0 - x\".\n */\n static createMinus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '-', expr, '-', new LiteralPrimitive(span, sourceSpan, 0), expr);\n }\n /**\n * Creates a unary plus expression \"+x\", represented as `Binary` using \"x - 0\".\n */\n static createPlus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '+', expr, '-', expr, new LiteralPrimitive(span, sourceSpan, 0));\n }\n visit(visitor, context = null) {\n if (visitor.visitUnary !== undefined) {\n return visitor.visitUnary(this, context);\n }\n return visitor.visitBinary(this, context);\n }\n}\nclass PrefixNot extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitPrefixNot(this, context);\n }\n}\nclass NonNullAssert extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitNonNullAssert(this, context);\n }\n}\nclass Call extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitCall(this, context);\n }\n}\nclass SafeCall extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeCall(this, context);\n }\n}\n/**\n * Records the absolute position of a text span in a source file, where `start` and `end` are the\n * starting and ending byte offsets, respectively, of the text span in a source file.\n */\nclass AbsoluteSourceSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n}\nclass ASTWithSource extends AST {\n constructor(ast, source, location, absoluteOffset, errors) {\n super(new ParseSpan(0, source === null ? 0 : source.length), new AbsoluteSourceSpan(absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length));\n this.ast = ast;\n this.source = source;\n this.location = location;\n this.errors = errors;\n }\n visit(visitor, context = null) {\n if (visitor.visitASTWithSource) {\n return visitor.visitASTWithSource(this, context);\n }\n return this.ast.visit(visitor, context);\n }\n toString() {\n return `${this.source} in ${this.location}`;\n }\n}\nclass VariableBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key name of the LHS along with its span.\n * @param value optional value for the RHS along with its span.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass ExpressionBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its\n * span. Note that the length of the span may not be the same as\n * `key.source.length`. For example,\n * 1. key.source = ngFor, key.span is for \"ngFor\"\n * 2. key.source = ngForOf, key.span is for \"of\"\n * 3. key.source = ngForTrackBy, key.span is for \"trackBy\"\n * @param value optional expression for the RHS.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass RecursiveAstVisitor {\n visit(ast, context) {\n // The default implementation just visits every node.\n // Classes that extend RecursiveAstVisitor should override this function\n // to selectively visit the specified node.\n ast.visit(this, context);\n }\n visitUnary(ast, context) {\n this.visit(ast.expr, context);\n }\n visitBinary(ast, context) {\n this.visit(ast.left, context);\n this.visit(ast.right, context);\n }\n visitChain(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitConditional(ast, context) {\n this.visit(ast.condition, context);\n this.visit(ast.trueExp, context);\n this.visit(ast.falseExp, context);\n }\n visitPipe(ast, context) {\n this.visit(ast.exp, context);\n this.visitAll(ast.args, context);\n }\n visitImplicitReceiver(ast, context) { }\n visitThisReceiver(ast, context) { }\n visitInterpolation(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitKeyedWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n this.visit(ast.value, context);\n }\n visitLiteralArray(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitLiteralMap(ast, context) {\n this.visitAll(ast.values, context);\n }\n visitLiteralPrimitive(ast, context) { }\n visitPrefixNot(ast, context) {\n this.visit(ast.expression, context);\n }\n visitNonNullAssert(ast, context) {\n this.visit(ast.expression, context);\n }\n visitPropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitPropertyWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.value, context);\n }\n visitSafePropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitSafeKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n visitSafeCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n // This is not part of the AstVisitor interface, just a helper method\n visitAll(asts, context) {\n for (const ast of asts) {\n this.visit(ast, context);\n }\n }\n}\nclass AstTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions));\n }\n visitLiteralPrimitive(ast, context) {\n return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value);\n }\n visitPropertyRead(ast, context) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitPropertyWrite(ast, context) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name, ast.value.visit(this));\n }\n visitSafePropertyRead(ast, context) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitLiteralArray(ast, context) {\n return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitLiteralMap(ast, context) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values));\n }\n visitUnary(ast, context) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n visitBinary(ast, context) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this));\n }\n visitPrefixNot(ast, context) {\n return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitNonNullAssert(ast, context) {\n return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitConditional(ast, context) {\n return new Conditional(ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\n }\n visitPipe(ast, context) {\n return new BindingPipe(ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.nameSpan);\n }\n visitKeyedRead(ast, context) {\n return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n visitKeyedWrite(ast, context) {\n return new KeyedWrite(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this), ast.value.visit(this));\n }\n visitCall(ast, context) {\n return new Call(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitSafeCall(ast, context) {\n return new SafeCall(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitAll(asts) {\n const res = [];\n for (let i = 0; i < asts.length; ++i) {\n res[i] = asts[i].visit(this);\n }\n return res;\n }\n visitChain(ast, context) {\n return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitSafeKeyedRead(ast, context) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n}\n// A transformer that only creates new nodes if the transformer makes a change or\n// a change is made a child node.\nclass AstMemoryEfficientTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions)\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, expressions);\n return ast;\n }\n visitLiteralPrimitive(ast, context) {\n return ast;\n }\n visitPropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitPropertyWrite(ast, context) {\n const receiver = ast.receiver.visit(this);\n const value = ast.value.visit(this);\n if (receiver !== ast.receiver || value !== ast.value) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value);\n }\n return ast;\n }\n visitSafePropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitLiteralArray(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new LiteralArray(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitLiteralMap(ast, context) {\n const values = this.visitAll(ast.values);\n if (values !== ast.values) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values);\n }\n return ast;\n }\n visitUnary(ast, context) {\n const expr = ast.expr.visit(this);\n if (expr !== ast.expr) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, expr);\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, expr);\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n return ast;\n }\n visitBinary(ast, context) {\n const left = ast.left.visit(this);\n const right = ast.right.visit(this);\n if (left !== ast.left || right !== ast.right) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right);\n }\n return ast;\n }\n visitPrefixNot(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new PrefixNot(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitNonNullAssert(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new NonNullAssert(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitConditional(ast, context) {\n const condition = ast.condition.visit(this);\n const trueExp = ast.trueExp.visit(this);\n const falseExp = ast.falseExp.visit(this);\n if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) {\n return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp);\n }\n return ast;\n }\n visitPipe(ast, context) {\n const exp = ast.exp.visit(this);\n const args = this.visitAll(ast.args);\n if (exp !== ast.exp || args !== ast.args) {\n return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan);\n }\n return ast;\n }\n visitKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new KeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n visitKeyedWrite(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n const value = ast.value.visit(this);\n if (obj !== ast.receiver || key !== ast.key || value !== ast.value) {\n return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value);\n }\n return ast;\n }\n visitAll(asts) {\n const res = [];\n let modified = false;\n for (let i = 0; i < asts.length; ++i) {\n const original = asts[i];\n const value = original.visit(this);\n res[i] = value;\n modified = modified || value !== original;\n }\n return modified ? res : asts;\n }\n visitChain(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new Chain(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n}\n// Bindings\nclass ParsedProperty {\n constructor(name, expression, type, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.expression = expression;\n this.type = type;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.isLiteral = this.type === ParsedPropertyType.LITERAL_ATTR;\n this.isAnimation = this.type === ParsedPropertyType.ANIMATION;\n }\n}\nvar ParsedPropertyType;\n(function (ParsedPropertyType) {\n ParsedPropertyType[ParsedPropertyType[\"DEFAULT\"] = 0] = \"DEFAULT\";\n ParsedPropertyType[ParsedPropertyType[\"LITERAL_ATTR\"] = 1] = \"LITERAL_ATTR\";\n ParsedPropertyType[ParsedPropertyType[\"ANIMATION\"] = 2] = \"ANIMATION\";\n})(ParsedPropertyType || (ParsedPropertyType = {}));\nclass ParsedEvent {\n // Regular events have a target\n // Animation events have a phase\n constructor(name, targetOrPhase, type, handler, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.targetOrPhase = targetOrPhase;\n this.type = type;\n this.handler = handler;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n}\n/**\n * ParsedVariable represents a variable declaration in a microsyntax expression.\n */\nclass ParsedVariable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\nclass BoundElementProperty {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass EventHandlerVars {\n}\nEventHandlerVars.event = variable('$event');\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression is\n * used in an action binding (e.g. an event handler).\n */\nfunction convertActionBinding(localResolver, implicitReceiver, action, bindingId, baseSourceSpan, implicitReceiverAccesses, globals) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver(globals);\n }\n const actionWithoutBuiltins = convertPropertyBindingBuiltins({\n createLiteralArrayConverter: (argCount) => {\n // Note: no caching for literal arrays in actions.\n return (args) => literalArr(args);\n },\n createLiteralMapConverter: (keys) => {\n // Note: no caching for literal maps in actions.\n return (values) => {\n const entries = keys.map((k, i) => ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n }));\n return literalMap(entries);\n };\n },\n createPipeConverter: (name) => {\n throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`);\n }\n }, action);\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false, baseSourceSpan, implicitReceiverAccesses);\n const actionStmts = [];\n flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);\n prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const lastIndex = actionStmts.length - 1;\n if (lastIndex >= 0) {\n const lastStatement = actionStmts[lastIndex];\n // Ensure that the value of the last expression statement is returned\n if (lastStatement instanceof ExpressionStatement) {\n actionStmts[lastIndex] = new ReturnStatement(lastStatement.expr);\n }\n }\n return actionStmts;\n}\nfunction convertPropertyBindingBuiltins(converterFactory, ast) {\n return convertBuiltins(converterFactory, ast);\n}\nclass ConvertPropertyBindingResult {\n constructor(stmts, currValExpr) {\n this.stmts = stmts;\n this.currValExpr = currValExpr;\n }\n}\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression\n * is used in property binding. The expression has to be preprocessed via\n * `convertPropertyBindingBuiltins`.\n */\nfunction convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false);\n const outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n return new ConvertPropertyBindingResult(stmts, outputExpr);\n}\n/**\n * Given some expression, such as a binding or interpolation expression, and a context expression to\n * look values up on, visit each facet of the given expression resolving values from the context\n * expression such that a list of arguments can be derived from the found values that can be used as\n * arguments to an external update instruction.\n *\n * @param localResolver The resolver to use to look up expressions by name appropriately\n * @param contextVariableExpression The expression representing the context variable used to create\n * the final argument expressions\n * @param expressionWithArgumentsToExtract The expression to visit to figure out what values need to\n * be resolved and what arguments list to build.\n * @param bindingId A name prefix used to create temporary variable names if they're needed for the\n * arguments generated\n * @returns An array of expressions that can be passed as arguments to instruction expressions like\n * `o.importExpr(R3.propertyInterpolate).callFn(result)`\n */\nfunction convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) {\n const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */ true);\n const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n const args = outputExpr.args;\n return { stmts, args };\n}\nfunction getStatementsFromVisitor(visitor, bindingId) {\n const stmts = [];\n for (let i = 0; i < visitor.temporaryCount; i++) {\n stmts.push(temporaryDeclaration(bindingId, i));\n }\n return stmts;\n}\nfunction convertBuiltins(converterFactory, ast) {\n const visitor = new _BuiltinAstConverter(converterFactory);\n return ast.visit(visitor);\n}\nfunction temporaryName(bindingId, temporaryNumber) {\n return `tmp_${bindingId}_${temporaryNumber}`;\n}\nfunction temporaryDeclaration(bindingId, temporaryNumber) {\n return new DeclareVarStmt(temporaryName(bindingId, temporaryNumber));\n}\nfunction prependTemporaryDecls(temporaryCount, bindingId, statements) {\n for (let i = temporaryCount - 1; i >= 0; i--) {\n statements.unshift(temporaryDeclaration(bindingId, i));\n }\n}\nvar _Mode;\n(function (_Mode) {\n _Mode[_Mode[\"Statement\"] = 0] = \"Statement\";\n _Mode[_Mode[\"Expression\"] = 1] = \"Expression\";\n})(_Mode || (_Mode = {}));\nfunction ensureStatementMode(mode, ast) {\n if (mode !== _Mode.Statement) {\n throw new Error(`Expected a statement, but saw ${ast}`);\n }\n}\nfunction ensureExpressionMode(mode, ast) {\n if (mode !== _Mode.Expression) {\n throw new Error(`Expected an expression, but saw ${ast}`);\n }\n}\nfunction convertToStatementIfNeeded(mode, expr) {\n if (mode === _Mode.Statement) {\n return expr.toStmt();\n }\n else {\n return expr;\n }\n}\nclass _BuiltinAstConverter extends AstTransformer {\n constructor(_converterFactory) {\n super();\n this._converterFactory = _converterFactory;\n }\n visitPipe(ast, context) {\n const args = [ast.exp, ...ast.args].map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createPipeConverter(ast.name, args.length));\n }\n visitLiteralArray(ast, context) {\n const args = ast.expressions.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralArrayConverter(ast.expressions.length));\n }\n visitLiteralMap(ast, context) {\n const args = ast.values.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralMapConverter(ast.keys));\n }\n}\nclass _AstToIrVisitor {\n constructor(_localResolver, _implicitReceiver, bindingId, supportsInterpolation, baseSourceSpan, implicitReceiverAccesses) {\n this._localResolver = _localResolver;\n this._implicitReceiver = _implicitReceiver;\n this.bindingId = bindingId;\n this.supportsInterpolation = supportsInterpolation;\n this.baseSourceSpan = baseSourceSpan;\n this.implicitReceiverAccesses = implicitReceiverAccesses;\n this._nodeMap = new Map();\n this._resultMap = new Map();\n this._currentTemporary = 0;\n this.temporaryCount = 0;\n this.usesImplicitReceiver = false;\n }\n visitUnary(ast, mode) {\n let op;\n switch (ast.operator) {\n case '+':\n op = UnaryOperator.Plus;\n break;\n case '-':\n op = UnaryOperator.Minus;\n break;\n default:\n throw new Error(`Unsupported operator ${ast.operator}`);\n }\n return convertToStatementIfNeeded(mode, new UnaryOperatorExpr(op, this._visit(ast.expr, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitBinary(ast, mode) {\n let op;\n switch (ast.operation) {\n case '+':\n op = BinaryOperator.Plus;\n break;\n case '-':\n op = BinaryOperator.Minus;\n break;\n case '*':\n op = BinaryOperator.Multiply;\n break;\n case '/':\n op = BinaryOperator.Divide;\n break;\n case '%':\n op = BinaryOperator.Modulo;\n break;\n case '&&':\n op = BinaryOperator.And;\n break;\n case '||':\n op = BinaryOperator.Or;\n break;\n case '==':\n op = BinaryOperator.Equals;\n break;\n case '!=':\n op = BinaryOperator.NotEquals;\n break;\n case '===':\n op = BinaryOperator.Identical;\n break;\n case '!==':\n op = BinaryOperator.NotIdentical;\n break;\n case '<':\n op = BinaryOperator.Lower;\n break;\n case '>':\n op = BinaryOperator.Bigger;\n break;\n case '<=':\n op = BinaryOperator.LowerEquals;\n break;\n case '>=':\n op = BinaryOperator.BiggerEquals;\n break;\n case '??':\n return this.convertNullishCoalesce(ast, mode);\n default:\n throw new Error(`Unsupported operation ${ast.operation}`);\n }\n return convertToStatementIfNeeded(mode, new BinaryOperatorExpr(op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitChain(ast, mode) {\n ensureStatementMode(mode, ast);\n return this.visitAll(ast.expressions, mode);\n }\n visitConditional(ast, mode) {\n const value = this._visit(ast.condition, _Mode.Expression);\n return convertToStatementIfNeeded(mode, value.conditional(this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression), this.convertSourceSpan(ast.span)));\n }\n visitPipe(ast, mode) {\n throw new Error(`Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`);\n }\n visitImplicitReceiver(ast, mode) {\n ensureExpressionMode(mode, ast);\n this.usesImplicitReceiver = true;\n return this._implicitReceiver;\n }\n visitThisReceiver(ast, mode) {\n return this.visitImplicitReceiver(ast, mode);\n }\n visitInterpolation(ast, mode) {\n if (!this.supportsInterpolation) {\n throw new Error('Unexpected interpolation');\n }\n ensureExpressionMode(mode, ast);\n let args = [];\n for (let i = 0; i < ast.strings.length - 1; i++) {\n args.push(literal(ast.strings[i]));\n args.push(this._visit(ast.expressions[i], _Mode.Expression));\n }\n args.push(literal(ast.strings[ast.strings.length - 1]));\n // If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the\n // args returned to just the value, because we're going to pass it to a special instruction.\n const strings = ast.strings;\n if (strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // Single argument interpolate instructions.\n args = [args[1]];\n }\n else if (ast.expressions.length >= 9) {\n // 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept\n // an array of arguments\n args = [literalArr(args)];\n }\n return new InterpolationExpression(args);\n }\n visitKeyedRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n return convertToStatementIfNeeded(mode, this._visit(ast.receiver, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression)));\n }\n }\n visitKeyedWrite(ast, mode) {\n const obj = this._visit(ast.receiver, _Mode.Expression);\n const key = this._visit(ast.key, _Mode.Expression);\n const value = this._visit(ast.value, _Mode.Expression);\n if (obj === this._implicitReceiver) {\n this._localResolver.maybeRestoreView();\n }\n return convertToStatementIfNeeded(mode, obj.key(key).set(value));\n }\n visitLiteralArray(ast, mode) {\n throw new Error(`Illegal State: literal arrays should have been converted into functions`);\n }\n visitLiteralMap(ast, mode) {\n throw new Error(`Illegal State: literal maps should have been converted into functions`);\n }\n visitLiteralPrimitive(ast, mode) {\n // For literal values of null, undefined, true, or false allow type interference\n // to infer the type.\n const type = ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ?\n INFERRED_TYPE :\n undefined;\n return convertToStatementIfNeeded(mode, literal(ast.value, type, this.convertSourceSpan(ast.span)));\n }\n _getLocal(name, receiver) {\n if (this._localResolver.globals?.has(name) && receiver instanceof ThisReceiver) {\n return null;\n }\n return this._localResolver.getLocal(name);\n }\n visitPrefixNot(ast, mode) {\n return convertToStatementIfNeeded(mode, not(this._visit(ast.expression, _Mode.Expression)));\n }\n visitNonNullAssert(ast, mode) {\n return convertToStatementIfNeeded(mode, this._visit(ast.expression, _Mode.Expression));\n }\n visitPropertyRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n let result = null;\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n result = this._getLocal(ast.name, ast.receiver);\n if (result) {\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n }\n if (result == null) {\n result = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, result);\n }\n }\n visitPropertyWrite(ast, mode) {\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n let varExpr = null;\n if (receiver === this._implicitReceiver) {\n const localExpr = this._getLocal(ast.name, ast.receiver);\n if (localExpr) {\n if (localExpr instanceof ReadPropExpr) {\n // If the local variable is a property read expression, it's a reference\n // to a 'context.property' value and will be used as the target of the\n // write expression.\n varExpr = localExpr;\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n else {\n // Otherwise it's an error.\n const receiver = ast.name;\n const value = (ast.value instanceof PropertyRead) ? ast.value.name : undefined;\n throw new Error(`Cannot assign value \"${value}\" to template variable \"${receiver}\". Template variables are read-only.`);\n }\n }\n }\n // If no local expression could be produced, use the original receiver's\n // property as the target.\n if (varExpr === null) {\n varExpr = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, varExpr.set(this._visit(ast.value, _Mode.Expression)));\n }\n visitSafePropertyRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitSafeKeyedRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitAll(asts, mode) {\n return asts.map(ast => this._visit(ast, mode));\n }\n visitCall(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n const convertedArgs = this.visitAll(ast.args, _Mode.Expression);\n if (ast instanceof BuiltinFunctionCall) {\n return convertToStatementIfNeeded(mode, ast.converter(convertedArgs));\n }\n const receiver = ast.receiver;\n if (receiver instanceof PropertyRead &&\n receiver.receiver instanceof ImplicitReceiver &&\n !(receiver.receiver instanceof ThisReceiver) && receiver.name === '$any') {\n if (convertedArgs.length !== 1) {\n throw new Error(`Invalid call to $any, expected 1 argument but received ${convertedArgs.length || 'none'}`);\n }\n return convertToStatementIfNeeded(mode, convertedArgs[0]);\n }\n const call = this._visit(receiver, _Mode.Expression)\n .callFn(convertedArgs, this.convertSourceSpan(ast.span));\n return convertToStatementIfNeeded(mode, call);\n }\n visitSafeCall(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n _visit(ast, mode) {\n const result = this._resultMap.get(ast);\n if (result)\n return result;\n return (this._nodeMap.get(ast) || ast).visit(this, mode);\n }\n convertSafeAccess(ast, leftMostSafe, mode) {\n // If the expression contains a safe access node on the left it needs to be converted to\n // an expression that guards the access to the member by checking the receiver for blank. As\n // execution proceeds from left to right, the left most part of the expression must be guarded\n // first but, because member access is left associative, the right side of the expression is at\n // the top of the AST. The desired result requires lifting a copy of the left part of the\n // expression up to test it for blank before generating the unguarded version.\n // Consider, for example the following expression: a?.b.c?.d.e\n // This results in the ast:\n // .\n // / \\\n // ?. e\n // / \\\n // . d\n // / \\\n // ?. c\n // / \\\n // a b\n // The following tree should be generated:\n //\n // /---- ? ----\\\n // / | \\\n // a /--- ? ---\\ null\n // / | \\\n // . . null\n // / \\ / \\\n // . c . e\n // / \\ / \\\n // a b . d\n // / \\\n // . c\n // / \\\n // a b\n //\n // Notice that the first guard condition is the left hand of the left most safe access node\n // which comes in as leftMostSafe to this routine.\n let guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression);\n let temporary = undefined;\n if (this.needsTemporaryInSafeAccess(leftMostSafe.receiver)) {\n // If the expression has method calls or pipes then we need to save the result into a\n // temporary variable to avoid calling stateful or impure code more than once.\n temporary = this.allocateTemporary();\n // Preserve the result in the temporary variable\n guardedExpression = temporary.set(guardedExpression);\n // Ensure all further references to the guarded expression refer to the temporary instead.\n this._resultMap.set(leftMostSafe.receiver, temporary);\n }\n const condition = guardedExpression.isBlank();\n // Convert the ast to an unguarded access to the receiver's member. The map will substitute\n // leftMostNode with its unguarded version in the call to `this.visit()`.\n if (leftMostSafe instanceof SafeCall) {\n this._nodeMap.set(leftMostSafe, new Call(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.args, leftMostSafe.argumentSpan));\n }\n else if (leftMostSafe instanceof SafeKeyedRead) {\n this._nodeMap.set(leftMostSafe, new KeyedRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.key));\n }\n else {\n this._nodeMap.set(leftMostSafe, new PropertyRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.nameSpan, leftMostSafe.receiver, leftMostSafe.name));\n }\n // Recursively convert the node now without the guarded member access.\n const access = this._visit(ast, _Mode.Expression);\n // Remove the mapping. This is not strictly required as the converter only traverses each node\n // once but is safer if the conversion is changed to traverse the nodes more than once.\n this._nodeMap.delete(leftMostSafe);\n // If we allocated a temporary, release it.\n if (temporary) {\n this.releaseTemporary(temporary);\n }\n // Produce the conditional\n return convertToStatementIfNeeded(mode, condition.conditional(NULL_EXPR, access));\n }\n convertNullishCoalesce(ast, mode) {\n const left = this._visit(ast.left, _Mode.Expression);\n const right = this._visit(ast.right, _Mode.Expression);\n const temporary = this.allocateTemporary();\n this.releaseTemporary(temporary);\n // Generate the following expression. It is identical to how TS\n // transpiles binary expressions with a nullish coalescing operator.\n // let temp;\n // (temp = a) !== null && temp !== undefined ? temp : b;\n return convertToStatementIfNeeded(mode, temporary.set(left)\n .notIdentical(NULL_EXPR)\n .and(temporary.notIdentical(literal(undefined)))\n .conditional(temporary, right));\n }\n // Given an expression of the form a?.b.c?.d.e then the left most safe node is\n // the (a?.b). The . and ?. are left associative thus can be rewritten as:\n // ((((a?.c).b).c)?.d).e. This returns the most deeply nested safe read or\n // safe method call as this needs to be transformed initially to:\n // a == null ? null : a.c.b.c?.d.e\n // then to:\n // a == null ? null : a.b.c == null ? null : a.b.c.d.e\n leftMostSafeNode(ast) {\n const visit = (visitor, ast) => {\n return (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n return ast.visit({\n visitUnary(ast) {\n return null;\n },\n visitBinary(ast) {\n return null;\n },\n visitChain(ast) {\n return null;\n },\n visitConditional(ast) {\n return null;\n },\n visitCall(ast) {\n return visit(this, ast.receiver);\n },\n visitSafeCall(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitImplicitReceiver(ast) {\n return null;\n },\n visitThisReceiver(ast) {\n return null;\n },\n visitInterpolation(ast) {\n return null;\n },\n visitKeyedRead(ast) {\n return visit(this, ast.receiver);\n },\n visitKeyedWrite(ast) {\n return null;\n },\n visitLiteralArray(ast) {\n return null;\n },\n visitLiteralMap(ast) {\n return null;\n },\n visitLiteralPrimitive(ast) {\n return null;\n },\n visitPipe(ast) {\n return null;\n },\n visitPrefixNot(ast) {\n return null;\n },\n visitNonNullAssert(ast) {\n return null;\n },\n visitPropertyRead(ast) {\n return visit(this, ast.receiver);\n },\n visitPropertyWrite(ast) {\n return null;\n },\n visitSafePropertyRead(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitSafeKeyedRead(ast) {\n return visit(this, ast.receiver) || ast;\n }\n });\n }\n // Returns true of the AST includes a method or a pipe indicating that, if the\n // expression is used as the target of a safe property or method access then\n // the expression should be stored into a temporary variable.\n needsTemporaryInSafeAccess(ast) {\n const visit = (visitor, ast) => {\n return ast && (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n const visitSome = (visitor, ast) => {\n return ast.some(ast => visit(visitor, ast));\n };\n return ast.visit({\n visitUnary(ast) {\n return visit(this, ast.expr);\n },\n visitBinary(ast) {\n return visit(this, ast.left) || visit(this, ast.right);\n },\n visitChain(ast) {\n return false;\n },\n visitConditional(ast) {\n return visit(this, ast.condition) || visit(this, ast.trueExp) || visit(this, ast.falseExp);\n },\n visitCall(ast) {\n return true;\n },\n visitSafeCall(ast) {\n return true;\n },\n visitImplicitReceiver(ast) {\n return false;\n },\n visitThisReceiver(ast) {\n return false;\n },\n visitInterpolation(ast) {\n return visitSome(this, ast.expressions);\n },\n visitKeyedRead(ast) {\n return false;\n },\n visitKeyedWrite(ast) {\n return false;\n },\n visitLiteralArray(ast) {\n return true;\n },\n visitLiteralMap(ast) {\n return true;\n },\n visitLiteralPrimitive(ast) {\n return false;\n },\n visitPipe(ast) {\n return true;\n },\n visitPrefixNot(ast) {\n return visit(this, ast.expression);\n },\n visitNonNullAssert(ast) {\n return visit(this, ast.expression);\n },\n visitPropertyRead(ast) {\n return false;\n },\n visitPropertyWrite(ast) {\n return false;\n },\n visitSafePropertyRead(ast) {\n return false;\n },\n visitSafeKeyedRead(ast) {\n return false;\n }\n });\n }\n allocateTemporary() {\n const tempNumber = this._currentTemporary++;\n this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount);\n return new ReadVarExpr(temporaryName(this.bindingId, tempNumber));\n }\n releaseTemporary(temporary) {\n this._currentTemporary--;\n if (temporary.name != temporaryName(this.bindingId, this._currentTemporary)) {\n throw new Error(`Temporary ${temporary.name} released out of order`);\n }\n }\n /**\n * Creates an absolute `ParseSourceSpan` from the relative `ParseSpan`.\n *\n * `ParseSpan` objects are relative to the start of the expression.\n * This method converts these to full `ParseSourceSpan` objects that\n * show where the span is within the overall source file.\n *\n * @param span the relative span to convert.\n * @returns a `ParseSourceSpan` for the given span or null if no\n * `baseSourceSpan` was provided to this class.\n */\n convertSourceSpan(span) {\n if (this.baseSourceSpan) {\n const start = this.baseSourceSpan.start.moveBy(span.start);\n const end = this.baseSourceSpan.start.moveBy(span.end);\n const fullStart = this.baseSourceSpan.fullStart.moveBy(span.start);\n return new ParseSourceSpan(start, end, fullStart);\n }\n else {\n return null;\n }\n }\n /** Adds the name of an AST to the list of implicit receiver accesses. */\n addImplicitReceiverAccess(name) {\n if (this.implicitReceiverAccesses) {\n this.implicitReceiverAccesses.add(name);\n }\n }\n}\nfunction flattenStatements(arg, output) {\n if (Array.isArray(arg)) {\n arg.forEach((entry) => flattenStatements(entry, output));\n }\n else {\n output.push(arg);\n }\n}\nfunction unsupported() {\n throw new Error('Unsupported operation');\n}\nclass InterpolationExpression extends Expression {\n constructor(args) {\n super(null, null);\n this.args = args;\n this.isConstant = unsupported;\n this.isEquivalent = unsupported;\n this.visitExpression = unsupported;\n }\n}\nclass DefaultLocalResolver {\n constructor(globals) {\n this.globals = globals;\n }\n notifyImplicitReceiverUse() { }\n maybeRestoreView() { }\n getLocal(name) {\n if (name === EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n return null;\n }\n}\nclass BuiltinFunctionCall extends Call {\n constructor(span, sourceSpan, args, converter) {\n super(span, sourceSpan, new EmptyExpr(span, sourceSpan), args, null);\n this.converter = converter;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!\n// Reach out to mprobst for details.\n//\n// =================================================================================================\n/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */\nlet _SECURITY_SCHEMA;\nfunction SECURITY_SCHEMA() {\n if (!_SECURITY_SCHEMA) {\n _SECURITY_SCHEMA = {};\n // Case is insignificant below, all element and attribute names are lower-cased for lookup.\n registerContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n ]);\n registerContext(SecurityContext.STYLE, ['*|style']);\n // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\n registerContext(SecurityContext.URL, [\n '*|formAction',\n 'area|href',\n 'area|ping',\n 'audio|src',\n 'a|href',\n 'a|ping',\n 'blockquote|cite',\n 'body|background',\n 'del|cite',\n 'form|action',\n 'img|src',\n 'input|src',\n 'ins|cite',\n 'q|cite',\n 'source|src',\n 'track|src',\n 'video|poster',\n 'video|src',\n ]);\n registerContext(SecurityContext.RESOURCE_URL, [\n 'applet|code',\n 'applet|codebase',\n 'base|href',\n 'embed|src',\n 'frame|src',\n 'head|profile',\n 'html|manifest',\n 'iframe|src',\n 'link|href',\n 'media|src',\n 'object|codebase',\n 'object|data',\n 'script|src',\n ]);\n }\n return _SECURITY_SCHEMA;\n}\nfunction registerContext(ctx, specs) {\n for (const spec of specs)\n _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n}\n/**\n * The set of security-sensitive attributes of an `