{"version":3,"file":"vendor.js","mappings":"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;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP,yBAAyB,uFAAuF;AAChH;AACA;AACA,2GAA2G;AAC3G;AACA,wCAAwC,QAAQ;AAChD;AACA,kEAAkE;AAClE;AACA,gDAAgD,yFAAyF;AACzI,gEAAgE,2CAA2C;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA,8CAA8C,yEAAyE;AACvH;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,uCAAuC,kBAAkB;AACpI;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,iEAAe;AACf;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,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChUF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMvrB,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2+B,gBAAN,CAAuB;AAGvB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,GAAnB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAShoB,OAAT,CAAiBjuC,IAAjB,EAAuBgU,WAAvB,EAAoC;EAChC,OAAO;IAAE7G,IAAI,EAAE;IAAE;IAAV;IAA+CnN,IAA/C;IAAqDgU,WAArD;IAAkErH,OAAO,EAAE;EAA3E,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyqB,OAAT,CAAiB8+B,OAAjB,EAA0Bh7D,MAAM,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEiS,IAAI,EAAE;IAAE;IAAV;IAA+CjS,MAA/C;IAAuDg7D;EAAvD,CAAP;AACH;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,SAAS9Y,KAAT,CAAe+Y,KAAf,EAAsBxpD,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAA6CgpD,KAA7C;IAAoDxpD;EAApD,CAAP;AACH;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,SAASypD,QAAT,CAAkBD,KAAlB,EAAyBxpD,OAAO,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAAgDgpD,KAAhD;IAAuDxpD;EAAvD,CAAP;AACH;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;AACA;AACA;;;AACA,SAASxM,KAAT,CAAek2D,MAAf,EAAuB;EACnB,OAAO;IAAElpD,IAAI,EAAE;IAAE;IAAV;IAA6CjS,MAAM,EAAEm7D,MAArD;IAA6DzwD,MAAM,EAAE;EAArE,CAAP;AACH;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,SAAS8S,KAAT,CAAe1Y,IAAf,EAAqB9E,MAArB,EAA6ByR,OAA7B,EAAsC;EAClC,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAA6CnN,IAA7C;IAAmD9E,MAAnD;IAA2DyR;EAA3D,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2pD,SAAT,CAAmBH,KAAnB,EAA0B;EACtB,OAAO;IAAEhpD,IAAI,EAAE;IAAE;IAAV;IAAiDgpD;EAAjD,CAAP;AACH;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;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,SAASjoB,UAAT,CAAoBqoB,eAApB,EAAqCJ,KAArC,EAA4CxpD,OAAO,GAAG,IAAtD,EAA4D;EACxD,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAAkDqpD,IAAI,EAAED,eAAxD;IAAyE9jB,SAAS,EAAE0jB,KAApF;IAA2FxpD;EAA3F,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8lC,SAAT,CAAmB0jB,KAAnB,EAA0BxpD,OAAO,GAAG,IAApC,EAA0C;EACtC,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAAiDslC,SAAS,EAAE0jB,KAA5D;IAAmExpD;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8pD,YAAT,CAAsB9pD,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEQ,IAAI,EAAE;IAAE;IAAV;IAAoDR;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+pD,YAAT,CAAsBjkB,SAAtB,EAAiC9lC,OAAO,GAAG,IAA3C,EAAiD;EAC7C,OAAO;IAAEQ,IAAI,EAAE;IAAG;IAAX;IAAmDslC,SAAnD;IAA8D9lC;EAA9D,CAAP;AACH;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;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,SAASggB,KAAT,CAAeyJ,QAAf,EAAyBqc,SAAzB,EAAoC9lC,OAAO,GAAG,IAA9C,EAAoD;EAChD,OAAO;IAAEQ,IAAI,EAAE;IAAG;IAAX;IAA8CipB,QAA9C;IAAwDqc,SAAxD;IAAmE9lC;EAAnE,CAAP;AACH;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;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,SAASgqD,OAAT,CAAiBT,OAAjB,EAA0BzjB,SAA1B,EAAqC;EACjC,OAAO;IAAEtlC,IAAI,EAAE;IAAG;IAAX;IAAgD+oD,OAAhD;IAAyDzjB;EAAzD,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmkB,iBAAT,CAA2BC,EAA3B,EAA+B;EAC3Bv3D,OAAO,CAAClC,OAAR,GAAkBU,IAAlB,CAAuB+4D,EAAvB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,mBAAN,CAA0B;EACtB/kE,WAAW,CAACglE,QAAQ,GAAG,CAAZ,EAAerR,KAAK,GAAG,CAAvB,EAA0B;IACjC,KAAKsR,UAAL,GAAkB,EAAlB;IACA,KAAKC,WAAL,GAAmB,EAAnB;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKC,kBAAL,GAA0B,EAA1B;IACA,KAAKC,mBAAL,GAA2B,EAA3B;IACA,KAAKC,QAAL,GAAgB,KAAhB;IACA,KAAKC,UAAL,GAAkB,KAAlB;IACA,KAAKC,SAAL,GAAiB,KAAjB;IACA,KAAKC,SAAL,GAAiB,CAAjB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,SAAL,GAAiBX,QAAQ,GAAGrR,KAA5B;EACH;;EACDiS,SAAS,GAAG;IACR,IAAI,CAAC,KAAKJ,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,IAAjB;;MACA,KAAKP,UAAL,CAAgBhjE,OAAhB,CAAwB0H,EAAE,IAAIA,EAAE,EAAhC;;MACA,KAAKs7D,UAAL,GAAkB,EAAlB;IACH;EACJ;;EACDY,OAAO,CAACl8D,EAAD,EAAK;IACR,KAAK07D,mBAAL,CAAyB1hE,IAAzB,CAA8BgG,EAA9B;;IACA,KAAKu7D,WAAL,CAAiBvhE,IAAjB,CAAsBgG,EAAtB;EACH;;EACDu+B,MAAM,CAACv+B,EAAD,EAAK;IACP,KAAKy7D,kBAAL,CAAwBzhE,IAAxB,CAA6BgG,EAA7B;;IACA,KAAKs7D,UAAL,CAAgBthE,IAAhB,CAAqBgG,EAArB;EACH;;EACDm8D,SAAS,CAACn8D,EAAD,EAAK;IACV,KAAKw7D,aAAL,CAAmBxhE,IAAnB,CAAwBgG,EAAxB;EACH;;EACDo8D,UAAU,GAAG;IACT,OAAO,KAAKT,QAAZ;EACH;;EACDh8C,IAAI,GAAG,CAAG;;EACV2e,IAAI,GAAG;IACH,IAAI,CAAC,KAAK89B,UAAL,EAAL,EAAwB;MACpB,KAAKC,QAAL;;MACA,KAAKC,gBAAL;IACH;;IACD,KAAKX,QAAL,GAAgB,IAAhB;EACH;EACD;;;EACAW,gBAAgB,GAAG;IACfpB,iBAAiB,CAAC,MAAM,KAAKe,SAAL,EAAP,CAAjB;EACH;;EACDI,QAAQ,GAAG;IACP,KAAKd,WAAL,CAAiBjjE,OAAjB,CAAyB0H,EAAE,IAAIA,EAAE,EAAjC;;IACA,KAAKu7D,WAAL,GAAmB,EAAnB;EACH;;EACDgB,KAAK,GAAG,CAAG;;EACXC,OAAO,GAAG,CAAG;;EACbC,MAAM,GAAG;IACL,KAAKR,SAAL;EACH;;EACD59B,OAAO,GAAG;IACN,IAAI,CAAC,KAAKu9B,UAAV,EAAsB;MAClB,KAAKA,UAAL,GAAkB,IAAlB;;MACA,IAAI,CAAC,KAAKQ,UAAL,EAAL,EAAwB;QACpB,KAAKC,QAAL;MACH;;MACD,KAAKI,MAAL;;MACA,KAAKjB,aAAL,CAAmBljE,OAAnB,CAA2B0H,EAAE,IAAIA,EAAE,EAAnC;;MACA,KAAKw7D,aAAL,GAAqB,EAArB;IACH;EACJ;;EACD5iD,KAAK,GAAG;IACJ,KAAK+iD,QAAL,GAAgB,KAAhB;IACA,KAAKE,SAAL,GAAiB,KAAjB;IACA,KAAKN,WAAL,GAAmB,KAAKG,mBAAxB;IACA,KAAKJ,UAAL,GAAkB,KAAKG,kBAAvB;EACH;;EACDiB,WAAW,CAAC/lD,QAAD,EAAW;IAClB,KAAKmlD,SAAL,GAAiB,KAAKE,SAAL,GAAiBrlD,QAAQ,GAAG,KAAKqlD,SAAjC,GAA6C,CAA9D;EACH;;EACDW,WAAW,GAAG;IACV,OAAO,KAAKX,SAAL,GAAiB,KAAKF,SAAL,GAAiB,KAAKE,SAAvC,GAAmD,CAA1D;EACH;EACD;;;EACAY,eAAe,CAACC,SAAD,EAAY;IACvB,MAAMC,OAAO,GAAGD,SAAS,IAAI,OAAb,GAAuB,KAAKtB,WAA5B,GAA0C,KAAKD,UAA/D;IACAwB,OAAO,CAACxkE,OAAR,CAAgB0H,EAAE,IAAIA,EAAE,EAAxB;IACA88D,OAAO,CAAC/lE,MAAR,GAAiB,CAAjB;EACH;;AApFqB;AAuF1B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgmE,oBAAN,CAA2B;EACvB1mE,WAAW,CAAC2mE,QAAD,EAAW;IAClB,KAAK1B,UAAL,GAAkB,EAAlB;IACA,KAAKC,WAAL,GAAmB,EAAnB;IACA,KAAKM,SAAL,GAAiB,KAAjB;IACA,KAAKF,QAAL,GAAgB,KAAhB;IACA,KAAKC,UAAL,GAAkB,KAAlB;IACA,KAAKJ,aAAL,GAAqB,EAArB;IACA,KAAKO,YAAL,GAAoB,IAApB;IACA,KAAKC,SAAL,GAAiB,CAAjB;IACA,KAAKiB,OAAL,GAAeD,QAAf;IACA,IAAIE,SAAS,GAAG,CAAhB;IACA,IAAIC,YAAY,GAAG,CAAnB;IACA,IAAIC,UAAU,GAAG,CAAjB;IACA,MAAM3H,KAAK,GAAG,KAAKwH,OAAL,CAAalmE,MAA3B;;IACA,IAAI0+D,KAAK,IAAI,CAAb,EAAgB;MACZyF,iBAAiB,CAAC,MAAM,KAAKe,SAAL,EAAP,CAAjB;IACH,CAFD,MAGK;MACD,KAAKgB,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAI;QAC3BA,MAAM,CAAC9+B,MAAP,CAAc,MAAM;UAChB,IAAI,EAAE2+B,SAAF,IAAezH,KAAnB,EAA0B;YACtB,KAAKwG,SAAL;UACH;QACJ,CAJD;QAKAoB,MAAM,CAAClB,SAAP,CAAiB,MAAM;UACnB,IAAI,EAAEgB,YAAF,IAAkB1H,KAAtB,EAA6B;YACzB,KAAK6H,UAAL;UACH;QACJ,CAJD;QAKAD,MAAM,CAACnB,OAAP,CAAe,MAAM;UACjB,IAAI,EAAEkB,UAAF,IAAgB3H,KAApB,EAA2B;YACvB,KAAK4G,QAAL;UACH;QACJ,CAJD;MAKH,CAhBD;IAiBH;;IACD,KAAKL,SAAL,GAAiB,KAAKiB,OAAL,CAAav2D,MAAb,CAAoB,CAAC62D,IAAD,EAAOF,MAAP,KAAkB/3D,IAAI,CAAC6iC,GAAL,CAASo1B,IAAT,EAAeF,MAAM,CAACrB,SAAtB,CAAtC,EAAwE,CAAxE,CAAjB;EACH;;EACDC,SAAS,GAAG;IACR,IAAI,CAAC,KAAKJ,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,IAAjB;;MACA,KAAKP,UAAL,CAAgBhjE,OAAhB,CAAwB0H,EAAE,IAAIA,EAAE,EAAhC;;MACA,KAAKs7D,UAAL,GAAkB,EAAlB;IACH;EACJ;;EACD37C,IAAI,GAAG;IACH,KAAKs9C,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAAC19C,IAAP,EAA/B;EACH;;EACDu8C,OAAO,CAACl8D,EAAD,EAAK;IACR,KAAKu7D,WAAL,CAAiBvhE,IAAjB,CAAsBgG,EAAtB;EACH;;EACDq8D,QAAQ,GAAG;IACP,IAAI,CAAC,KAAKD,UAAL,EAAL,EAAwB;MACpB,KAAKT,QAAL,GAAgB,IAAhB;;MACA,KAAKJ,WAAL,CAAiBjjE,OAAjB,CAAyB0H,EAAE,IAAIA,EAAE,EAAjC;;MACA,KAAKu7D,WAAL,GAAmB,EAAnB;IACH;EACJ;;EACDh9B,MAAM,CAACv+B,EAAD,EAAK;IACP,KAAKs7D,UAAL,CAAgBthE,IAAhB,CAAqBgG,EAArB;EACH;;EACDm8D,SAAS,CAACn8D,EAAD,EAAK;IACV,KAAKw7D,aAAL,CAAmBxhE,IAAnB,CAAwBgG,EAAxB;EACH;;EACDo8D,UAAU,GAAG;IACT,OAAO,KAAKT,QAAZ;EACH;;EACDr9B,IAAI,GAAG;IACH,IAAI,CAAC,KAAKy9B,YAAV,EAAwB;MACpB,KAAKp8C,IAAL;IACH;;IACD,KAAK08C,QAAL;;IACA,KAAKY,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAAC/+B,IAAP,EAA/B;EACH;;EACDi+B,KAAK,GAAG;IACJ,KAAKU,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAACd,KAAP,EAA/B;EACH;;EACDC,OAAO,GAAG;IACN,KAAKS,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAACb,OAAP,EAA/B;EACH;;EACDC,MAAM,GAAG;IACL,KAAKR,SAAL;;IACA,KAAKgB,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAACZ,MAAP,EAA/B;EACH;;EACDp+B,OAAO,GAAG;IACN,KAAKi/B,UAAL;EACH;;EACDA,UAAU,GAAG;IACT,IAAI,CAAC,KAAK1B,UAAV,EAAsB;MAClB,KAAKA,UAAL,GAAkB,IAAlB;;MACA,KAAKK,SAAL;;MACA,KAAKgB,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAACh/B,OAAP,EAA/B;;MACA,KAAKm9B,aAAL,CAAmBljE,OAAnB,CAA2B0H,EAAE,IAAIA,EAAE,EAAnC;;MACA,KAAKw7D,aAAL,GAAqB,EAArB;IACH;EACJ;;EACD5iD,KAAK,GAAG;IACJ,KAAKqkD,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAIA,MAAM,CAACzkD,KAAP,EAA/B;IACA,KAAKgjD,UAAL,GAAkB,KAAlB;IACA,KAAKC,SAAL,GAAiB,KAAjB;IACA,KAAKF,QAAL,GAAgB,KAAhB;EACH;;EACDe,WAAW,CAAC7wD,CAAD,EAAI;IACX,MAAM2xD,cAAc,GAAG3xD,CAAC,GAAG,KAAKmwD,SAAhC;IACA,KAAKiB,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAI;MAC3B,MAAM1mD,QAAQ,GAAG0mD,MAAM,CAACrB,SAAP,GAAmB12D,IAAI,CAACqpC,GAAL,CAAS,CAAT,EAAY6uB,cAAc,GAAGH,MAAM,CAACrB,SAApC,CAAnB,GAAoE,CAArF;MACAqB,MAAM,CAACX,WAAP,CAAmB/lD,QAAnB;IACH,CAHD;EAIH;;EACDgmD,WAAW,GAAG;IACV,MAAMc,aAAa,GAAG,KAAKR,OAAL,CAAav2D,MAAb,CAAoB,CAACg3D,YAAD,EAAeL,MAAf,KAA0B;MAChE,MAAMM,kBAAkB,GAAGD,YAAY,KAAK,IAAjB,IAAyBL,MAAM,CAACrB,SAAP,GAAmB0B,YAAY,CAAC1B,SAApF;MACA,OAAO2B,kBAAkB,GAAGN,MAAH,GAAYK,YAArC;IACH,CAHqB,EAGnB,IAHmB,CAAtB;IAIA,OAAOD,aAAa,IAAI,IAAjB,GAAwBA,aAAa,CAACd,WAAd,EAAxB,GAAsD,CAA7D;EACH;;EACDiB,aAAa,GAAG;IACZ,KAAKX,OAAL,CAAa3kE,OAAb,CAAqB+kE,MAAM,IAAI;MAC3B,IAAIA,MAAM,CAACO,aAAX,EAA0B;QACtBP,MAAM,CAACO,aAAP;MACH;IACJ,CAJD;EAKH;EACD;;;EACAhB,eAAe,CAACC,SAAD,EAAY;IACvB,MAAMC,OAAO,GAAGD,SAAS,IAAI,OAAb,GAAuB,KAAKtB,WAA5B,GAA0C,KAAKD,UAA/D;IACAwB,OAAO,CAACxkE,OAAR,CAAgB0H,EAAE,IAAIA,EAAE,EAAxB;IACA88D,OAAO,CAAC/lE,MAAR,GAAiB,CAAjB;EACH;;AAjIsB;AAoI3B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8mE,UAAU,GAAG,GAAnB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpsCA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMI,UAAU,GAAG,OAAnB;;AACA,SAASC,kBAAT,CAA4Bx6C,GAA5B,EAAiC;EAC7B,OAAO,IAAIs6C,2DAAJ,CAAkB;EAAK;EAAvB,EAAoEngD,SAAS,IAAK,8BAA6B6F,GAAI,eAAnH,CAAP;AACH;;AACD,SAASy6C,iBAAT,GAA6B;EACzB,OAAO,IAAIH,2DAAJ,CAAkB;EAAK;EAAvB,EAAmEngD,SAAS,IAAI,kEAAhF,CAAP;AACH;;AACD,SAASugD,kBAAT,GAA8B;EAC1B,OAAO,IAAIJ,2DAAJ,CAAkB;EAAK;EAAvB,EAAoEngD,SAAS,IAAI,+DAAjF,CAAP;AACH;;AACD,SAASwgD,kBAAT,CAA4BC,OAA5B,EAAqC;EACjC,OAAO,IAAIN,2DAAJ,CAAkB;EAAK;EAAvB,EAAoEngD,SAAS,IAC/E,+CAA8CygD,OAAQ,8BADpD,CAAP;AAEH;;AACD,SAASC,iBAAT,CAA2BD,OAA3B,EAAoC;EAChC,OAAO,IAAIN,2DAAJ,CAAkB;EAAK;EAAvB,EAAmEngD,SAAS,IAAK,kDAAiDygD,OAAQ,EAA1I,CAAP;AACH;;AACD,SAASE,eAAT,CAAyBl5B,QAAzB,EAAmC;EAC/B,OAAO,IAAI04B,2DAAJ,CAAkB;EAAK;EAAvB,EAAiEngD,SAAS,IAAK,8CAA6CynB,QAAS,EAArI,CAAP;AACH;;AACD,SAASm5B,mBAAT,CAA6BC,oBAA7B,EAAmD/mE,KAAnD,EAA0D;EACtD,OAAO,IAAIqmE,2DAAJ,CAAkB;EAAK;EAAvB,EAAsEngD,SAAS,IAAK,uCAAsC6gD,oBAAqB,IAAG/mE,KAAM,EAAxJ,CAAP;AACH;;AACD,SAASgnE,cAAT,GAA0B;EACtB,OAAO,IAAIX,2DAAJ,CAAkB;EAAK;EAAvB,EAA+DngD,SAAS,IAC3E,wFADG,CAAP;AAEH;;AACD,SAAS+gD,iBAAT,GAA6B;EACzB,OAAO,IAAIZ,2DAAJ,CAAkB;EAAK;EAAvB,EAAkEngD,SAAS,IAAI,yEAA/E,CAAP;AACH;;AACD,SAASghD,YAAT,CAAsBC,YAAtB,EAAoCC,WAApC,EAAiD;EAC7C,OAAO,IAAIf,2DAAJ,CAAkB;EAAK;EAAvB,EAA6DngD,SAAS,IACxE,UAASihD,YAAa,iFAAgFC,WAAW,CAAC34D,IAAZ,CAAiB,IAAjB,CAAuB,EAD3H,CAAP;AAEH;;AACD,SAAS44D,iBAAT,CAA2BrnE,KAA3B,EAAkC;EAC9B,OAAO,IAAIqmE,2DAAJ,CAAkB;EAAK;EAAvB,EAAmEngD,SAAS,IAAK,mCAAkClmB,KAAM,kBAAzH,CAAP;AACH;;AACD,SAASsnE,eAAT,CAAyBhtD,IAAzB,EAA+B;EAC3B,OAAO,IAAI+rD,2DAAJ,CAAkB;EAAK;EAAvB,EAAgEngD,SAAS,IAC3E,oCAAmC5L,IAAK,kDADtC,CAAP;AAEH;;AACD,SAASitD,wBAAT,CAAkCjtD,IAAlC,EAAwCktD,UAAxC,EAAoDC,QAApD,EAA8DC,WAA9D,EAA2EC,SAA3E,EAAsF;EAClF,OAAO,IAAItB,2DAAJ,CAAkB;EAAK;EAAvB,EAA0EngD,SAAS,IACrF,qBAAoB5L,IAAK,uCAAsCktD,UAAW,YAAWC,QAAS,4EAA2EC,WAAY,YAAWC,SAAU,KADxM,CAAP;AAEH;;AACD,SAASC,gBAAT,GAA4B;EACxB,OAAO,IAAIvB,2DAAJ,CAAkB;EAAK;EAAvB,EAAiEngD,SAAS,IAAK,0DAA/E,CAAP;AACH;;AACD,SAAS2hD,aAAT,GAAyB;EACrB,OAAO,IAAIxB,2DAAJ,CAAkB;EAAK;EAAvB,EAA8DngD,SAAS,IAAK,6DAA5E,CAAP;AACH;;AACD,SAAS4hD,yBAAT,GAAqC;EACjC,OAAO,IAAIzB,2DAAJ,CAAkB;EAAK;EAAvB,EAA6EngD,SAAS,IAAK,sDAA3F,CAAP;AACH;;AACD,SAAS6hD,uBAAT,GAAmC;EAC/B,OAAO,IAAI1B,2DAAJ,CAAkB;EAAK;EAAvB,EAAyEngD,SAAS,IAAK,uEAAvF,CAAP;AACH;;AACD,SAAS8hD,cAAT,GAA0B;EACtB,OAAO,IAAI3B,2DAAJ,CAAkB;EAAK;EAAvB,EAA+DngD,SAAS,IAAK,8CAA7E,CAAP;AACH;;AACD,SAAS+hD,YAAT,CAAsBllC,QAAtB,EAAgC;EAC5B,OAAO,IAAIsjC,2DAAJ,CAAkB;EAAK;EAAvB,EAA6DngD,SAAS,IACxE,YAAW6c,QAAS,8CAA6CA,QAAS,sDADxE,CAAP;AAEH;;AACD,SAASmlC,iBAAT,CAA2B/E,IAA3B,EAAiC;EAC7B,OAAO,IAAIkD,2DAAJ,CAAkB;EAAK;EAAvB,EAAkEngD,SAAS,IAAK,uCAAsCi9C,IAAK,oBAA3H,CAAP;AACH;;AACD,SAASgF,sBAAT,CAAgC1c,KAAhC,EAAuC;EACnC,OAAO,IAAI4a,2DAAJ,CAAkB;EAAK;EAAvB,EAAwEngD,SAAS,IAAK,+BAA8BulC,KAAM,oBAA1H,CAAP;AACH;;AACD,SAAS2c,gBAAT,CAA0BrU,MAA1B,EAAkC;EAC9B,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAiEngD,SAAS,IAAK,iCAAgC6tC,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,IAApC,CAA0C,EAAzJ,CAAP;AACH;;AACD,SAAS45D,cAAT,CAAwBtU,MAAxB,EAAgC;EAC5B,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAA+DngD,SAAS,IAAK,+BAA8B6tC,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,IAApC,CAA0C,EAArJ,CAAP;AACH;;AACD,SAAS65D,kBAAT,CAA4B37D,IAA5B,EAAkConD,MAAlC,EAA0C;EACtC,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAoEngD,SAAS,IAC/E,0BAAyBvZ,IAAK,0DAAyDonD,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,OAApC,CAA6C,EADlI,CAAP;AAEH;;AACD,SAAS85D,eAAT,CAAyBxU,MAAzB,EAAiC;EAC7B,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAgEngD,SAAS,IAC3E,iDAAgDogD,UAAW,GAAEvS,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC63D,UAApC,CAAgD,EAD3G,CAAP;AAEH;;AACD,SAASkC,cAAT,CAAwBzU,MAAxB,EAAgC;EAC5B,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAmEngD,SAAS,IAC9E,8DAA6D6tC,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,IAApC,CAA0C,EADrG,CAAP;AAEH;;AACD,SAASg6D,2BAAT,GAAuC;EACnC,OAAO,IAAIpC,2DAAJ,CAAkB;EAAK;EAAvB,EAA8EngD,SAAS,IAAI,sEAA3F,CAAP;AACH;;AACD,SAASwiD,qBAAT,CAA+B3U,MAA/B,EAAuC;EACnC,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAuEngD,SAAS,IAClF,8DAA6D6tC,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,IAApC,CAA0C,EADrG,CAAP;AAEH;;AACD,SAASk6D,aAAT,CAAuBj7D,EAAvB,EAA2B;EACvB,OAAO,IAAI24D,2DAAJ,CAAkB;EAAK;EAAvB,EAA8DngD,SAAS,IAAK,oDAAmDxY,EAAG,EAAlI,CAAP;AACH;;AACD,SAASk7D,cAAT,CAAwBC,KAAxB,EAA+Bl8D,IAA/B,EAAqC;EACjC,OAAO,IAAI05D,2DAAJ,CAAkB;EAAK;EAAvB,EAA+DngD,SAAS,IAC1E,oDAAmD2iD,KAAM,oCAAmCl8D,IAAK,mBAD/F,CAAP;AAEH;;AACD,SAASm8D,YAAT,CAAsBn8D,IAAtB,EAA4B;EACxB,OAAO,IAAI05D,2DAAJ,CAAkB;EAAK;EAAvB,EAA6DngD,SAAS,IACxE,8CAA6CvZ,IAAK,4CADhD,CAAP;AAEH;;AACD,SAASo8D,uBAAT,CAAiCF,KAAjC,EAAwCl8D,IAAxC,EAA8C;EAC1C,OAAO,IAAI05D,2DAAJ,CAAkB;EAAK;EAAvB,EAAyEngD,SAAS,IACpF,yCAAwC2iD,KAAM,gCAA+Bl8D,IAAK,qBADhF,CAAP;AAEH;;AACD,SAASq8D,mBAAT,CAA6Br8D,IAA7B,EAAmC;EAC/B,OAAO,IAAI05D,2DAAJ,CAAkB;EAAK;EAAvB,EAAoEngD,SAAS,IAAK,mCAAkCvZ,IAAK,4BAAzH,CAAP;AACH;;AACD,SAASs8D,wBAAT,CAAkClV,MAAlC,EAA0C;EACtC,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAA0EngD,SAAS,IACrF,kFAAiF6tC,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,IAApC,CAA0C,EADzH,CAAP;AAEH;;AACD,SAASy6D,oBAAT,CAA8Bv8D,IAA9B,EAAoConD,MAApC,EAA4C;EACxC,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAsEngD,SAAS,IACjF,6BAA4BvZ,IAAK,wBAAuB25D,UAAW,GAAEvS,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC63D,UAApC,CAAgD,EADnH,CAAP;AAEH;;AACD,SAAS6C,gBAAT,CAA0Bx8D,IAA1B,EAAgConD,MAAhC,EAAwC;EACpC,OAAO,IAAIsS,2DAAJ,CAAkB;EAAK;EAAvB,EAAiEngD,SAAS,IAAK,IAAGvZ,IAAK,yBAAwBonD,MAAM,CAAC9tD,GAAP,CAAW3D,GAAG,IAAIA,GAAG,CAACsZ,OAAtB,EAA+BnN,IAA/B,CAAoC,MAApC,CAA4C,EAA3J,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM26D,mBAAmB,GAAG,IAAIC,GAAJ,CAAQ,CAChC,qBADgC,EAEhC,gCAFgC,EAGhC,iCAHgC,EAIhC,6BAJgC,EAKhC,8BALgC,EAMhC,kBANgC,EAOhC,eAPgC,EAQhC,oBARgC,EAShC,yBATgC,EAUhC,qBAVgC,EAWhC,2BAXgC,EAYhC,cAZgC,EAahC,KAbgC,EAchC,iBAdgC,EAehC,YAfgC,EAgBhC,kBAhBgC,EAiBhC,qBAjBgC,EAkBhC,iBAlBgC,EAmBhC,YAnBgC,EAoBhC,QApBgC,EAqBhC,kBArBgC,EAsBhC,wBAtBgC,EAuBhC,wBAvBgC,EAwBhC,oBAxBgC,EAyBhC,0BAzBgC,EA0BhC,0BA1BgC,EA2BhC,eA3BgC,EA4BhC,qBA5BgC,EA6BhC,2BA7BgC,EA8BhC,4BA9BgC,EA+BhC,qBA/BgC,EAgChC,cAhCgC,EAiChC,uBAjCgC,EAkChC,yBAlCgC,EAmChC,qBAnCgC,EAoChC,oBApCgC,EAqChC,oBArCgC,EAsChC,mBAtCgC,EAuChC,yBAvCgC,EAwChC,yBAxCgC,EAyChC,qBAzCgC,EA0ChC,2BA1CgC,EA2ChC,2BA3CgC,EA4ChC,aA5CgC,EA6ChC,mBA7CgC,EA8ChC,mBA9CgC,EA+ChC,eA/CgC,EAgDhC,cAhDgC,EAiDhC,oBAjDgC,EAkDhC,oBAlDgC,EAmDhC,yBAnDgC,EAoDhC,2BApDgC,EAqDhC,YArDgC,EAsDhC,kBAtDgC,EAuDhC,wBAvDgC,EAwDhC,yBAxDgC,EAyDhC,kBAzDgC,EA0DhC,cA1DgC,EA2DhC,QA3DgC,EA4DhC,YA5DgC,EA6DhC,aA7DgC,EA8DhC,MA9DgC,EA+DhC,WA/DgC,EAgEhC,OAhEgC,EAiEhC,cAjEgC,EAkEhC,YAlEgC,EAmEhC,aAnEgC,EAoEhC,mBApEgC,EAqEhC,mBArEgC,EAsEhC,cAtEgC,EAuEhC,SAvEgC,EAwEhC,QAxEgC,EAyEhC,MAzEgC,EA0EhC,YA1EgC,EA2EhC,WA3EgC,EA4EhC,aA5EgC,EA6EhC,MA7EgC,EA8EhC,WA9EgC,EA+EhC,kBA/EgC,EAgFhC,cAhFgC,EAiFhC,yBAjFgC,EAkFhC,aAlFgC,EAmFhC,KAnFgC,EAoFhC,iBApFgC,EAqFhC,UArFgC,EAsFhC,cAtFgC,EAuFhC,uBAvFgC,EAwFhC,oBAxFgC,EAyFhC,QAzFgC,EA0FhC,aA1FgC,EA2FhC,gBA3FgC,EA4FhC,OA5FgC,EA6FhC,aA7FgC,EA8FhC,iBA9FgC,EA+FhC,mBA/FgC,EAgGhC,cAhGgC,EAiGhC,kBAjGgC,EAkGhC,oBAlGgC,EAmGhC,MAnGgC,EAoGhC,gBApGgC,EAqGhC,YArGgC,EAsGhC,aAtGgC,EAuGhC,QAvGgC,EAwGhC,kBAxGgC,EAyGhC,oBAzGgC,EA0GhC,eA1GgC,EA2GhC,mBA3GgC,EA4GhC,qBA5GgC,EA6GhC,aA7GgC,EA8GhC,cA9GgC,EA+GhC,YA/GgC,EAgHhC,MAhHgC,EAiHhC,aAjHgC,EAkHhC,eAlHgC,EAmHhC,WAnHgC,EAoHhC,gBApHgC,EAqHhC,YArHgC,EAsHhC,iBAtHgC,EAuHhC,WAvHgC,EAwHhC,WAxHgC,EAyHhC,gBAzHgC,EA0HhC,YA1HgC,EA2HhC,iBA3HgC,EA4HhC,WA5HgC,EA6HhC,iBA7HgC,EA8HhC,QA9HgC,EA+HhC,eA/HgC,EAgIhC,iBAhIgC,EAiIhC,aAjIgC,EAkIhC,iBAlIgC,EAmIhC,eAnIgC,EAoIhC,SApIgC,EAqIhC,OArIgC,EAsIhC,SAtIgC,EAuIhC,eAvIgC,EAwIhC,gBAxIgC,EAyIhC,eAzIgC,EA0IhC,SA1IgC,EA2IhC,mBA3IgC,EA4IhC,qBA5IgC,EA6IhC,gBA7IgC,EA8IhC,oBA9IgC,EA+IhC,sBA/IgC,EAgJhC,cAhJgC,EAiJhC,eAjJgC,EAkJhC,aAlJgC,EAmJhC,aAnJgC,EAoJhC,oBApJgC,EAqJhC,OArJgC,EAsJhC,QAtJgC,EAuJhC,SAvJgC,EAwJhC,OAxJgC,EAyJhC,eAzJgC,EA0JhC,qBA1JgC,EA2JhC,yBA3JgC,EA4JhC,2BA5JgC,EA6JhC,sBA7JgC,EA8JhC,sBA9JgC,EA+JhC,0BA/JgC,EAgKhC,4BAhKgC,EAiKhC,oBAjKgC,EAkKhC,qBAlKgC,EAmKhC,mBAnKgC,EAoKhC,gBApKgC,EAqKhC,sBArKgC,EAsKhC,0BAtKgC,EAuKhC,4BAvKgC,EAwKhC,uBAxKgC,EAyKhC,uBAzKgC,EA0KhC,2BA1KgC,EA2KhC,6BA3KgC,EA4KhC,qBA5KgC,EA6KhC,sBA7KgC,EA8KhC,oBA9KgC,EA+KhC,wBA/KgC,EAgLhC,yBAhLgC,EAiLhC,iBAjLgC,EAkLhC,uBAlLgC,EAmLhC,cAnLgC,EAoLhC,eApLgC,EAqLhC,UArLgC,EAsLhC,iBAtLgC,EAuLhC,uBAvLgC,EAwLhC,2BAxLgC,EAyLhC,eAzLgC,EA0LhC,qBA1LgC,EA2LhC,aA3LgC,EA4LhC,aA5LgC,EA6LhC,uBA7LgC,EA8LhC,KA9LgC,EA+LhC,WA/LgC,EAgMhC,kBAhMgC,EAiMhC,WAjMgC,EAkMhC,gBAlMgC,EAmMhC,YAnMgC,EAoMhC,OApMgC,EAqMhC,cArMgC,EAsMhC,SAtMgC,EAuMhC,MAvMgC,CAAR,CAA5B;AA0MA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASj7B,SAAT,GAAqB;EACjB,OAAQ,OAAOtrC,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACC,QAAd,KAA2B,WAApE;AACH;;AACD,SAASiG,MAAT,GAAkB;EACd;EACA;EACA;EACA;EACA;EACA,OAAO,OAAOhE,OAAP,KAAmB,WAAnB,IAAkC,GAAGvD,QAAH,CAAYC,IAAZ,CAAiBsD,OAAjB,MAA8B,kBAAvE;AACH;;AACD,SAASskE,mBAAT,CAA6BhE,OAA7B,EAAsC;EAClC,QAAQA,OAAO,CAAClmE,MAAhB;IACI,KAAK,CAAL;MACI,OAAO,IAAIqkE,oEAAJ,EAAP;;IACJ,KAAK,CAAL;MACI,OAAO6B,OAAO,CAAC,CAAD,CAAd;;IACJ;MACI,OAAO,IAAIa,yEAAJ,CAA0Bb,OAA1B,CAAP;EANR;AAQH;;AACD,SAASiE,oBAAT,CAA8BC,MAA9B,EAAsCC,UAAtC,EAAkDljE,OAAlD,EAA2D08D,SAA3D,EAAsEyG,SAAS,GAAG,IAAInwB,GAAJ,EAAlF,EAA6FowB,UAAU,GAAG,IAAIpwB,GAAJ,EAA1G,EAAqH;EACjH,MAAMwa,MAAM,GAAG,EAAf;EACA,MAAM6V,mBAAmB,GAAG,EAA5B;EACA,IAAIC,cAAc,GAAG,CAAC,CAAtB;EACA,IAAIC,gBAAgB,GAAG,IAAvB;EACA7G,SAAS,CAACtiE,OAAV,CAAkBopE,EAAE,IAAI;IACpB,MAAMx3D,MAAM,GAAGw3D,EAAE,CAACvoD,GAAH,CAAO,QAAP,CAAf;IACA,MAAMwoD,YAAY,GAAGz3D,MAAM,IAAIs3D,cAA/B;IACA,MAAMI,kBAAkB,GAAID,YAAY,IAAIF,gBAAjB,IAAsC,IAAIvwB,GAAJ,EAAjE;IACAwwB,EAAE,CAACppE,OAAH,CAAW,CAACgG,GAAD,EAAM2T,IAAN,KAAe;MACtB,IAAI4vD,cAAc,GAAG5vD,IAArB;MACA,IAAI6vD,eAAe,GAAGxjE,GAAtB;;MACA,IAAI2T,IAAI,KAAK,QAAb,EAAuB;QACnB4vD,cAAc,GAAGT,UAAU,CAACW,qBAAX,CAAiCF,cAAjC,EAAiDnW,MAAjD,CAAjB;;QACA,QAAQoW,eAAR;UACI,KAAKjE,8DAAL;YACIiE,eAAe,GAAGT,SAAS,CAACloD,GAAV,CAAclH,IAAd,CAAlB;YACA;;UACJ,KAAKsoD,2DAAL;YACIuH,eAAe,GAAGR,UAAU,CAACnoD,GAAX,CAAelH,IAAf,CAAlB;YACA;;UACJ;YACI6vD,eAAe,GACXV,UAAU,CAACY,mBAAX,CAA+B/vD,IAA/B,EAAqC4vD,cAArC,EAAqDC,eAArD,EAAsEpW,MAAtE,CADJ;YAEA;QAVR;MAYH;;MACDkW,kBAAkB,CAAC9iD,GAAnB,CAAuB+iD,cAAvB,EAAuCC,eAAvC;IACH,CAnBD;;IAoBA,IAAI,CAACH,YAAL,EAAmB;MACfJ,mBAAmB,CAACvnE,IAApB,CAAyB4nE,kBAAzB;IACH;;IACDH,gBAAgB,GAAGG,kBAAnB;IACAJ,cAAc,GAAGt3D,MAAjB;EACH,CA7BD;;EA8BA,IAAIwhD,MAAM,CAAC30D,MAAX,EAAmB;IACf,MAAMmpE,eAAe,CAACxU,MAAD,CAArB;EACH;;EACD,OAAO6V,mBAAP;AACH;;AACD,SAASU,cAAT,CAAwB5E,MAAxB,EAAgClzC,SAAhC,EAA2CG,KAA3C,EAAkDlpB,QAAlD,EAA4D;EACxD,QAAQ+oB,SAAR;IACI,KAAK,OAAL;MACIkzC,MAAM,CAACnB,OAAP,CAAe,MAAM96D,QAAQ,CAACkpB,KAAK,IAAI43C,kBAAkB,CAAC53C,KAAD,EAAQ,OAAR,EAAiB+yC,MAAjB,CAA5B,CAA7B;MACA;;IACJ,KAAK,MAAL;MACIA,MAAM,CAAC9+B,MAAP,CAAc,MAAMn9B,QAAQ,CAACkpB,KAAK,IAAI43C,kBAAkB,CAAC53C,KAAD,EAAQ,MAAR,EAAgB+yC,MAAhB,CAA5B,CAA5B;MACA;;IACJ,KAAK,SAAL;MACIA,MAAM,CAAClB,SAAP,CAAiB,MAAM/6D,QAAQ,CAACkpB,KAAK,IAAI43C,kBAAkB,CAAC53C,KAAD,EAAQ,SAAR,EAAmB+yC,MAAnB,CAA5B,CAA/B;MACA;EATR;AAWH;;AACD,SAAS6E,kBAAT,CAA4BrnE,CAA5B,EAA+BgiE,SAA/B,EAA0CQ,MAA1C,EAAkD;EAC9C,MAAMrB,SAAS,GAAGqB,MAAM,CAACrB,SAAzB;EACA,MAAMprD,QAAQ,GAAGysD,MAAM,CAACzsD,QAAP,GAAkB,IAAlB,GAAyB,KAA1C;EACA,MAAM0Z,KAAK,GAAG63C,kBAAkB,CAACtnE,CAAC,CAACqD,OAAH,EAAYrD,CAAC,CAACunE,WAAd,EAA2BvnE,CAAC,CAACwnE,SAA7B,EAAwCxnE,CAAC,CAACynE,OAA1C,EAAmDzF,SAAS,IAAIhiE,CAAC,CAACgiE,SAAlE,EAA6Eb,SAAS,IAAIriE,SAAb,GAAyBkB,CAAC,CAACmhE,SAA3B,GAAuCA,SAApH,EAA+HprD,QAA/H,CAAhC;EACA,MAAMwZ,IAAI,GAAGvvB,CAAC,CAAC,OAAD,CAAd;;EACA,IAAIuvB,IAAI,IAAI,IAAZ,EAAkB;IACdE,KAAK,CAAC,OAAD,CAAL,GAAiBF,IAAjB;EACH;;EACD,OAAOE,KAAP;AACH;;AACD,SAAS63C,kBAAT,CAA4BjkE,OAA5B,EAAqCkkE,WAArC,EAAkDC,SAAlD,EAA6DC,OAA7D,EAAsEzF,SAAS,GAAG,EAAlF,EAAsFb,SAAS,GAAG,CAAlG,EAAqGprD,QAArG,EAA+G;EAC3G,OAAO;IAAE1S,OAAF;IAAWkkE,WAAX;IAAwBC,SAAxB;IAAmCC,OAAnC;IAA4CzF,SAA5C;IAAuDb,SAAvD;IAAkEprD,QAAQ,EAAE,CAAC,CAACA;EAA9E,CAAP;AACH;;AACD,SAAS2xD,oBAAT,CAA8B3kE,GAA9B,EAAmCtG,GAAnC,EAAwCwuD,YAAxC,EAAsD;EAClD,IAAInuD,KAAK,GAAGiG,GAAG,CAACub,GAAJ,CAAQ7hB,GAAR,CAAZ;;EACA,IAAI,CAACK,KAAL,EAAY;IACRiG,GAAG,CAACkhB,GAAJ,CAAQxnB,GAAR,EAAaK,KAAK,GAAGmuD,YAArB;EACH;;EACD,OAAOnuD,KAAP;AACH;;AACD,SAAS6qE,oBAAT,CAA8BC,OAA9B,EAAuC;EACnC,MAAMC,YAAY,GAAGD,OAAO,CAAC5mE,OAAR,CAAgB,GAAhB,CAArB;EACA,MAAMwJ,EAAE,GAAGo9D,OAAO,CAACj1C,SAAR,CAAkB,CAAlB,EAAqBk1C,YAArB,CAAX;EACA,MAAMxkC,MAAM,GAAGukC,OAAO,CAACt8D,KAAR,CAAcu8D,YAAY,GAAG,CAA7B,CAAf;EACA,OAAO,CAACr9D,EAAD,EAAK64B,MAAL,CAAP;AACH;;AACD,IAAIykC,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB,KAAhC;;AACA,IAAIC,MAAM,GAAG,CAAC5kE,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,KAA8B;EACvC,OAAO,EAAP;AACH,CAFD;;AAGA,IAAIC,gBAAgB,GAAG,IAAvB;;AACA,SAASC,gBAAT,CAA0B/kE,OAA1B,EAAmC;EAC/B,MAAMmjB,MAAM,GAAGnjB,OAAO,CAACsR,UAAR,IAAsBtR,OAAO,CAAC+gC,IAA7C,CAD+B,CACoB;;EACnD,IAAI5d,MAAM,KAAK2hD,gBAAf,EAAiC;IAC7B,OAAO,IAAP;EACH;;EACD,OAAO3hD,MAAP;AACH,EACD;AACA;;;AACA,MAAM6hD,OAAO,GAAGviE,MAAM,EAAtB;;AACA,IAAIuiE,OAAO,IAAI,OAAOC,OAAP,KAAmB,WAAlC,EAA+C;EAC3C,IAAI,CAACp9B,SAAS,EAAd,EAAkB;IACd48B,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgBD,IAAI,CAACj7B,QAAL,CAAck7B,IAAd,CAA5B;EACH,CAFD,MAGK;IACD;IACA;IACAG,gBAAgB,GAAG,eAAgB,CAAC,MAAMtoE,QAAQ,CAACc,eAAhB,GAAnC;;IACAmnE,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;MACxB,OAAOA,IAAP,EAAa;QACT,IAAIA,IAAI,KAAKD,IAAb,EAAmB;UACf,OAAO,IAAP;QACH;;QACDC,IAAI,GAAGI,gBAAgB,CAACJ,IAAD,CAAvB;MACH;;MACD,OAAO,KAAP;IACH,CARD;EASH;;EACDC,MAAM,GAAG,CAAC5kE,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,KAA8B;IACnC,IAAIA,KAAJ,EAAW;MACP,OAAO/pE,KAAK,CAACM,IAAN,CAAW4E,OAAO,CAACoY,gBAAR,CAAyBokB,QAAzB,CAAX,CAAP;IACH;;IACD,MAAMoe,IAAI,GAAG56C,OAAO,CAACC,aAAR,CAAsBu8B,QAAtB,CAAb;IACA,OAAOoe,IAAI,GAAG,CAACA,IAAD,CAAH,GAAY,EAAvB;EACH,CAND;AAOH;;AACD,SAASsqB,oBAAT,CAA8BnxD,IAA9B,EAAoC;EAChC;EACA;EACA,OAAOA,IAAI,CAACub,SAAL,CAAe,CAAf,EAAkB,CAAlB,KAAwB,OAA/B,CAHgC,CAGQ;AAC3C;;AACD,IAAI61C,YAAY,GAAG,IAAnB;AACA,IAAIC,UAAU,GAAG,KAAjB;;AACA,SAASC,qBAAT,CAA+BtxD,IAA/B,EAAqC;EACjC,IAAI,CAACoxD,YAAL,EAAmB;IACfA,YAAY,GAAGG,WAAW,MAAM,EAAhC;IACAF,UAAU,GAAGD,YAAY,CAAC5+D,KAAb,GAAsB,sBAAsB4+D,YAAY,CAAC5+D,KAAzD,GAAkE,KAA/E;EACH;;EACD,IAAIiI,MAAM,GAAG,IAAb;;EACA,IAAI22D,YAAY,CAAC5+D,KAAb,IAAsB,CAAC2+D,oBAAoB,CAACnxD,IAAD,CAA/C,EAAuD;IACnDvF,MAAM,GAAGuF,IAAI,IAAIoxD,YAAY,CAAC5+D,KAA9B;;IACA,IAAI,CAACiI,MAAD,IAAW42D,UAAf,EAA2B;MACvB,MAAMG,SAAS,GAAG,WAAWxxD,IAAI,CAACqe,MAAL,CAAY,CAAZ,EAAerrB,WAAf,EAAX,GAA0CgN,IAAI,CAAC9L,KAAL,CAAW,CAAX,CAA5D;MACAuG,MAAM,GAAG+2D,SAAS,IAAIJ,YAAY,CAAC5+D,KAAnC;IACH;EACJ;;EACD,OAAOiI,MAAP;AACH;;AACD,SAASg3D,kCAAT,CAA4CzxD,IAA5C,EAAkD;EAC9C,OAAO8uD,mBAAmB,CAAC4C,GAApB,CAAwB1xD,IAAxB,CAAP;AACH;;AACD,SAASuxD,WAAT,GAAuB;EACnB,IAAI,OAAO9oE,QAAP,IAAmB,WAAvB,EAAoC;IAChC,OAAOA,QAAQ,CAACmuB,IAAhB;EACH;;EACD,OAAO,IAAP;AACH;;AACD,MAAM+6C,eAAe,GAAGjB,SAAxB;AACA,MAAMkB,WAAW,GAAGf,MAApB;;AACA,SAASgB,iBAAT,CAA2BC,QAA3B,EAAqC;EACjC,MAAMC,MAAM,GAAG,IAAI9yB,GAAJ,EAAf;EACA6yB,QAAQ,CAACzrE,OAAT,CAAiB,CAACgG,GAAD,EAAM2T,IAAN,KAAe;IAC5B,MAAMgyD,OAAO,GAAGhyD,IAAI,CAAC1L,OAAL,CAAa,iBAAb,EAAgC,OAAhC,CAAhB;IACAy9D,MAAM,CAACllD,GAAP,CAAWmlD,OAAX,EAAoB3lE,GAApB;EACH,CAHD;EAIA,OAAO0lE,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAME,mBAAN,CAA0B;EACtBX,qBAAqB,CAACtxD,IAAD,EAAO;IACxB,OAAOsxD,qBAAqB,CAACtxD,IAAD,CAA5B;EACH;;EACDkyD,cAAc,CAACC,QAAD,EAAWC,SAAX,EAAsB;IAChC;IACA,OAAO,KAAP;EACH;;EACDT,eAAe,CAAChB,IAAD,EAAOC,IAAP,EAAa;IACxB,OAAOe,eAAe,CAAChB,IAAD,EAAOC,IAAP,CAAtB;EACH;;EACDI,gBAAgB,CAAC/kE,OAAD,EAAU;IACtB,OAAO+kE,gBAAgB,CAAC/kE,OAAD,CAAvB;EACH;;EACD+yB,KAAK,CAAC/yB,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,EAA2B;IAC5B,OAAOc,WAAW,CAAC3lE,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,CAAlB;EACH;;EACDuB,YAAY,CAACpmE,OAAD,EAAU+T,IAAV,EAAgB6zC,YAAhB,EAA8B;IACtC,OAAOA,YAAY,IAAI,EAAvB;EACH;;EACDpqB,OAAO,CAACx9B,OAAD,EAAU08D,SAAV,EAAqBS,QAArB,EAA+BrR,KAA/B,EAAsCua,MAAtC,EAA8CC,eAAe,GAAG,EAAhE,EAAoEC,uBAApE,EAA6F;IAChG,OAAO,IAAIrJ,oEAAJ,CAAwBC,QAAxB,EAAkCrR,KAAlC,CAAP;EACH;;AAtBqB;;AAwB1Bka,mBAAmB,CAAC7mD,IAApB;EAAA,iBAAgH6mD,mBAAhH;AAAA;;AACAA,mBAAmB,CAACzmD,KAApB,kBADsGsgD,gEACtG;EAAA,OAAoHmG,mBAApH;EAAA,SAAoHA,mBAApH;AAAA;;AACA;EAAA,mDAFsGnG,+DAEtG,CAA2FmG,mBAA3F,EAA4H,CAAC;IACjHzyD,IAAI,EAAEiL,qDAAUA;EADiG,CAAD,CAA5H;AAAA;AAGA;AACA;AACA;;;AACA,MAAMgoD,eAAN,CAAsB;;AAEtBA,eAAe,CAAChkE,IAAhB,GAAyB,eAAe,IAAIwjE,mBAAJ,EAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMS,UAAU,GAAG,IAAnB;AACA,MAAMC,uBAAuB,GAAG,IAAhC;AACA,MAAMC,qBAAqB,GAAG,IAA9B;AACA,MAAMC,eAAe,GAAG,UAAxB;AACA,MAAMC,eAAe,GAAG,UAAxB;AACA,MAAMC,oBAAoB,GAAG,YAA7B;AACA,MAAMC,mBAAmB,GAAG,aAA5B;AACA,MAAMC,sBAAsB,GAAG,cAA/B;AACA,MAAMC,qBAAqB,GAAG,eAA9B;;AACA,SAASC,kBAAT,CAA4BztE,KAA5B,EAAmC;EAC/B,IAAI,OAAOA,KAAP,IAAgB,QAApB,EACI,OAAOA,KAAP;EACJ,MAAM+4B,OAAO,GAAG/4B,KAAK,CAACsY,KAAN,CAAY,mBAAZ,CAAhB;EACA,IAAI,CAACygB,OAAD,IAAYA,OAAO,CAAC35B,MAAR,GAAiB,CAAjC,EACI,OAAO,CAAP;EACJ,OAAOsuE,qBAAqB,CAAC5yD,UAAU,CAACie,OAAO,CAAC,CAAD,CAAR,CAAX,EAAyBA,OAAO,CAAC,CAAD,CAAhC,CAA5B;AACH;;AACD,SAAS20C,qBAAT,CAA+B1tE,KAA/B,EAAsC+1C,IAAtC,EAA4C;EACxC,QAAQA,IAAR;IACI,KAAK,GAAL;MACI,OAAO/1C,KAAK,GAAGgtE,UAAf;;IACJ;MAAS;MACL,OAAOhtE,KAAP;EAJR;AAMH;;AACD,SAAS2tE,aAAT,CAAuB9K,OAAvB,EAAgC9O,MAAhC,EAAwC6Z,mBAAxC,EAA6D;EACzD,OAAO/K,OAAO,CAACptC,cAAR,CAAuB,UAAvB,IACHotC,OADG,GAEHgL,mBAAmB,CAAChL,OAAD,EAAU9O,MAAV,EAAkB6Z,mBAAlB,CAFvB;AAGH;;AACD,SAASC,mBAAT,CAA6B9hD,GAA7B,EAAkCgoC,MAAlC,EAA0C6Z,mBAA1C,EAA+D;EAC3D,MAAMt5C,KAAK,GAAG,0EAAd;EACA,IAAIovC,QAAJ;EACA,IAAIrR,KAAK,GAAG,CAAZ;EACA,IAAIua,MAAM,GAAG,EAAb;;EACA,IAAI,OAAO7gD,GAAP,KAAe,QAAnB,EAA6B;IACzB,MAAMgN,OAAO,GAAGhN,GAAG,CAACzT,KAAJ,CAAUgc,KAAV,CAAhB;;IACA,IAAIyE,OAAO,KAAK,IAAhB,EAAsB;MAClBg7B,MAAM,CAAC1xD,IAAP,CAAYkkE,kBAAkB,CAACx6C,GAAD,CAA9B;MACA,OAAO;QAAE23C,QAAQ,EAAE,CAAZ;QAAerR,KAAK,EAAE,CAAtB;QAAyBua,MAAM,EAAE;MAAjC,CAAP;IACH;;IACDlJ,QAAQ,GAAGgK,qBAAqB,CAAC5yD,UAAU,CAACie,OAAO,CAAC,CAAD,CAAR,CAAX,EAAyBA,OAAO,CAAC,CAAD,CAAhC,CAAhC;IACA,MAAM+0C,UAAU,GAAG/0C,OAAO,CAAC,CAAD,CAA1B;;IACA,IAAI+0C,UAAU,IAAI,IAAlB,EAAwB;MACpBzb,KAAK,GAAGqb,qBAAqB,CAAC5yD,UAAU,CAACgzD,UAAD,CAAX,EAAyB/0C,OAAO,CAAC,CAAD,CAAhC,CAA7B;IACH;;IACD,MAAMg1C,SAAS,GAAGh1C,OAAO,CAAC,CAAD,CAAzB;;IACA,IAAIg1C,SAAJ,EAAe;MACXnB,MAAM,GAAGmB,SAAT;IACH;EACJ,CAfD,MAgBK;IACDrK,QAAQ,GAAG33C,GAAX;EACH;;EACD,IAAI,CAAC6hD,mBAAL,EAA0B;IACtB,IAAII,cAAc,GAAG,KAArB;IACA,IAAIC,UAAU,GAAGla,MAAM,CAAC30D,MAAxB;;IACA,IAAIskE,QAAQ,GAAG,CAAf,EAAkB;MACd3P,MAAM,CAAC1xD,IAAP,CAAYmkE,iBAAiB,EAA7B;MACAwH,cAAc,GAAG,IAAjB;IACH;;IACD,IAAI3b,KAAK,GAAG,CAAZ,EAAe;MACX0B,MAAM,CAAC1xD,IAAP,CAAYokE,kBAAkB,EAA9B;MACAuH,cAAc,GAAG,IAAjB;IACH;;IACD,IAAIA,cAAJ,EAAoB;MAChBja,MAAM,CAAChB,MAAP,CAAckb,UAAd,EAA0B,CAA1B,EAA6B1H,kBAAkB,CAACx6C,GAAD,CAA/C;IACH;EACJ;;EACD,OAAO;IAAE23C,QAAF;IAAYrR,KAAZ;IAAmBua;EAAnB,CAAP;AACH;;AACD,SAASsB,OAAT,CAAiB3vE,GAAjB,EAAsByzD,WAAW,GAAG,EAApC,EAAwC;EACpCvyD,MAAM,CAACY,IAAP,CAAY9B,GAAZ,EAAiBoC,OAAjB,CAAyB2Z,IAAI,IAAI;IAC7B03C,WAAW,CAAC13C,IAAD,CAAX,GAAoB/b,GAAG,CAAC+b,IAAD,CAAvB;EACH,CAFD;EAGA,OAAO03C,WAAP;AACH;;AACD,SAASmc,YAAT,CAAsB5vE,GAAtB,EAA2B;EACvB,MAAM6vE,QAAQ,GAAG,IAAI70B,GAAJ,EAAjB;EACA95C,MAAM,CAACY,IAAP,CAAY9B,GAAZ,EAAiBoC,OAAjB,CAAyB2Z,IAAI,IAAI;IAC7B,MAAM3T,GAAG,GAAGpI,GAAG,CAAC+b,IAAD,CAAf;IACA8zD,QAAQ,CAACjnD,GAAT,CAAa7M,IAAb,EAAmB3T,GAAnB;EACH,CAHD;EAIA,OAAOynE,QAAP;AACH;;AACD,SAASC,kBAAT,CAA4BpL,SAA5B,EAAuC;EACnC,IAAI,CAACA,SAAS,CAAC7jE,MAAf,EAAuB;IACnB,OAAO,EAAP;EACH;;EACD,IAAI6jE,SAAS,CAAC,CAAD,CAAT,YAAwB1pB,GAA5B,EAAiC;IAC7B,OAAO0pB,SAAP;EACH;;EACD,OAAOA,SAAS,CAACh9D,GAAV,CAAc8jE,EAAE,IAAIoE,YAAY,CAACpE,EAAD,CAAhC,CAAP;AACH;;AACD,SAASuE,eAAT,CAAyBzmE,MAAzB,EAAiC;EAC7B,MAAM0mE,gBAAgB,GAAG,IAAIh1B,GAAJ,EAAzB;;EACA,IAAIl4C,KAAK,CAACC,OAAN,CAAcuG,MAAd,CAAJ,EAA2B;IACvBA,MAAM,CAAClH,OAAP,CAAe8xB,IAAI,IAAI+7C,UAAU,CAAC/7C,IAAD,EAAO87C,gBAAP,CAAjC;EACH,CAFD,MAGK;IACDC,UAAU,CAAC3mE,MAAD,EAAS0mE,gBAAT,CAAV;EACH;;EACD,OAAOA,gBAAP;AACH;;AACD,SAASC,UAAT,CAAoB3mE,MAApB,EAA4BmqD,WAAW,GAAG,IAAIzY,GAAJ,EAA1C,EAAqDk1B,QAArD,EAA+D;EAC3D,IAAIA,QAAJ,EAAc;IACV,KAAK,IAAI,CAACn0D,IAAD,EAAO3T,GAAP,CAAT,IAAwB8nE,QAAxB,EAAkC;MAC9Bzc,WAAW,CAAC7qC,GAAZ,CAAgB7M,IAAhB,EAAsB3T,GAAtB;IACH;EACJ;;EACD,KAAK,IAAI,CAAC2T,IAAD,EAAO3T,GAAP,CAAT,IAAwBkB,MAAxB,EAAgC;IAC5BmqD,WAAW,CAAC7qC,GAAZ,CAAgB7M,IAAhB,EAAsB3T,GAAtB;EACH;;EACD,OAAOqrD,WAAP;AACH;;AACD,SAAS0c,uBAAT,CAAiCnoE,OAAjC,EAA0C5G,GAA1C,EAA+CK,KAA/C,EAAsD;EAClD;EACA;EACA,IAAIA,KAAJ,EAAW;IACP,OAAOL,GAAG,GAAG,GAAN,GAAYK,KAAZ,GAAoB,GAA3B;EACH,CAFD,MAGK;IACD,OAAO,EAAP;EACH;AACJ;;AACD,SAAS2uE,mBAAT,CAA6BpoE,OAA7B,EAAsC;EAClC;EACA;EACA;EACA;EACA,IAAIqoE,cAAc,GAAG,EAArB;;EACA,KAAK,IAAIzvE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoH,OAAO,CAACuG,KAAR,CAAc1N,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;IAC3C,MAAMQ,GAAG,GAAG4G,OAAO,CAACuG,KAAR,CAAcyvC,IAAd,CAAmBp9C,CAAnB,CAAZ;IACAyvE,cAAc,IAAIF,uBAAuB,CAACnoE,OAAD,EAAU5G,GAAV,EAAe4G,OAAO,CAACuG,KAAR,CAAcsS,gBAAd,CAA+Bzf,GAA/B,CAAf,CAAzC;EACH;;EACD,KAAK,MAAMA,GAAX,IAAkB4G,OAAO,CAACuG,KAA1B,EAAiC;IAC7B;IACA,IAAI,CAACvG,OAAO,CAACuG,KAAR,CAAc2oB,cAAd,CAA6B91B,GAA7B,CAAD,IAAsCA,GAAG,CAACkvE,UAAJ,CAAe,GAAf,CAA1C,EAA+D;MAC3D;IACH;;IACD,MAAMC,OAAO,GAAGC,mBAAmB,CAACpvE,GAAD,CAAnC;IACAivE,cAAc,IAAIF,uBAAuB,CAACnoE,OAAD,EAAUuoE,OAAV,EAAmBvoE,OAAO,CAACuG,KAAR,CAAcnN,GAAd,CAAnB,CAAzC;EACH;;EACD4G,OAAO,CAACwG,YAAR,CAAqB,OAArB,EAA8B6hE,cAA9B;AACH;;AACD,SAAS94B,SAAT,CAAmBvvC,OAAnB,EAA4BsB,MAA5B,EAAoCmnE,YAApC,EAAkD;EAC9C,IAAIzoE,OAAO,CAAC,OAAD,CAAX,EAAsB;IAClBsB,MAAM,CAAClH,OAAP,CAAe,CAACgG,GAAD,EAAM2T,IAAN,KAAe;MAC1B,MAAMwxD,SAAS,GAAGmD,mBAAmB,CAAC30D,IAAD,CAArC;;MACA,IAAI00D,YAAY,IAAI,CAACA,YAAY,CAAChD,GAAb,CAAiB1xD,IAAjB,CAArB,EAA6C;QACzC00D,YAAY,CAAC7nD,GAAb,CAAiB7M,IAAjB,EAAuB/T,OAAO,CAACuG,KAAR,CAAcg/D,SAAd,CAAvB;MACH;;MACDvlE,OAAO,CAACuG,KAAR,CAAcg/D,SAAd,IAA2BnlE,GAA3B;IACH,CAND,EADkB,CAQlB;;IACA,IAAIqC,MAAM,EAAV,EAAc;MACV2lE,mBAAmB,CAACpoE,OAAD,CAAnB;IACH;EACJ;AACJ;;AACD,SAAS2oE,WAAT,CAAqB3oE,OAArB,EAA8BsB,MAA9B,EAAsC;EAClC,IAAItB,OAAO,CAAC,OAAD,CAAX,EAAsB;IAClBsB,MAAM,CAAClH,OAAP,CAAe,CAACwuE,CAAD,EAAI70D,IAAJ,KAAa;MACxB,MAAMwxD,SAAS,GAAGmD,mBAAmB,CAAC30D,IAAD,CAArC;MACA/T,OAAO,CAACuG,KAAR,CAAcg/D,SAAd,IAA2B,EAA3B;IACH,CAHD,EADkB,CAKlB;;IACA,IAAI9iE,MAAM,EAAV,EAAc;MACV2lE,mBAAmB,CAACpoE,OAAD,CAAnB;IACH;EACJ;AACJ;;AACD,SAAS6oE,uBAAT,CAAiCtM,KAAjC,EAAwC;EACpC,IAAIzhE,KAAK,CAACC,OAAN,CAAcwhE,KAAd,CAAJ,EAA0B;IACtB,IAAIA,KAAK,CAAC1jE,MAAN,IAAgB,CAApB,EACI,OAAO0jE,KAAK,CAAC,CAAD,CAAZ;IACJ,OAAOC,6DAAQ,CAACD,KAAD,CAAf;EACH;;EACD,OAAOA,KAAP;AACH;;AACD,SAASuM,mBAAT,CAA6BrvE,KAA7B,EAAoCsZ,OAApC,EAA6Cy6C,MAA7C,EAAqD;EACjD,MAAMphD,MAAM,GAAG2G,OAAO,CAAC3G,MAAR,IAAkB,EAAjC;EACA,MAAMomB,OAAO,GAAGu2C,kBAAkB,CAACtvE,KAAD,CAAlC;;EACA,IAAI+4B,OAAO,CAAC35B,MAAZ,EAAoB;IAChB25B,OAAO,CAACp4B,OAAR,CAAgBgmE,OAAO,IAAI;MACvB,IAAI,CAACh0D,MAAM,CAAC8iB,cAAP,CAAsBkxC,OAAtB,CAAL,EAAqC;QACjC5S,MAAM,CAAC1xD,IAAP,CAAYqkE,kBAAkB,CAACC,OAAD,CAA9B;MACH;IACJ,CAJD;EAKH;AACJ;;AACD,MAAM4I,WAAW,GAAG,IAAIn3D,MAAJ,CAAY,GAAE60D,uBAAwB,gBAAeC,qBAAsB,EAA3E,EAA8E,GAA9E,CAApB;;AACA,SAASoC,kBAAT,CAA4BtvE,KAA5B,EAAmC;EAC/B,IAAI2S,MAAM,GAAG,EAAb;;EACA,IAAI,OAAO3S,KAAP,KAAiB,QAArB,EAA+B;IAC3B,IAAIsY,KAAJ;;IACA,OAAOA,KAAK,GAAGi3D,WAAW,CAACv2C,IAAZ,CAAiBh5B,KAAjB,CAAf,EAAwC;MACpC2S,MAAM,CAACtQ,IAAP,CAAYiW,KAAK,CAAC,CAAD,CAAjB;IACH;;IACDi3D,WAAW,CAACC,SAAZ,GAAwB,CAAxB;EACH;;EACD,OAAO78D,MAAP;AACH;;AACD,SAAS88D,iBAAT,CAA2BzvE,KAA3B,EAAkC2S,MAAlC,EAA0CohD,MAA1C,EAAkD;EAC9C,MAAMqY,QAAQ,GAAGpsE,KAAK,CAACyB,QAAN,EAAjB;EACA,MAAMkN,GAAG,GAAGy9D,QAAQ,CAACx9D,OAAT,CAAiB2gE,WAAjB,EAA8B,CAACJ,CAAD,EAAIxI,OAAJ,KAAgB;IACtD,IAAI+I,QAAQ,GAAG/8D,MAAM,CAACg0D,OAAD,CAArB,CADsD,CAEtD;;IACA,IAAI+I,QAAQ,IAAI,IAAhB,EAAsB;MAClB3b,MAAM,CAAC1xD,IAAP,CAAYukE,iBAAiB,CAACD,OAAD,CAA7B;MACA+I,QAAQ,GAAG,EAAX;IACH;;IACD,OAAOA,QAAQ,CAACjuE,QAAT,EAAP;EACH,CARW,CAAZ,CAF8C,CAW9C;;EACA,OAAOkN,GAAG,IAAIy9D,QAAP,GAAkBpsE,KAAlB,GAA0B2O,GAAjC;AACH;;AACD,SAASghE,eAAT,CAAyBlxE,QAAzB,EAAmC;EAC/B,MAAMoC,GAAG,GAAG,EAAZ;EACA,IAAI07C,IAAI,GAAG99C,QAAQ,CAAC0D,IAAT,EAAX;;EACA,OAAO,CAACo6C,IAAI,CAACn6C,IAAb,EAAmB;IACfvB,GAAG,CAACwB,IAAJ,CAASk6C,IAAI,CAACv8C,KAAd;IACAu8C,IAAI,GAAG99C,QAAQ,CAAC0D,IAAT,EAAP;EACH;;EACD,OAAOtB,GAAP;AACH;;AACD,MAAM+uE,gBAAgB,GAAG,eAAzB;;AACA,SAASX,mBAAT,CAA6BtX,KAA7B,EAAoC;EAChC,OAAOA,KAAK,CAAC/oD,OAAN,CAAcghE,gBAAd,EAAgC,CAAC,GAAGC,CAAJ,KAAUA,CAAC,CAAC,CAAD,CAAD,CAAKviE,WAAL,EAA1C,CAAP;AACH;;AACD,SAASyhE,mBAAT,CAA6BpX,KAA7B,EAAoC;EAChC,OAAOA,KAAK,CAAC/oD,OAAN,CAAc,iBAAd,EAAiC,OAAjC,EAA0CmJ,WAA1C,EAAP;AACH;;AACD,SAAS+3D,8BAAT,CAAwCpM,QAAxC,EAAkDrR,KAAlD,EAAyD;EACrD,OAAOqR,QAAQ,KAAK,CAAb,IAAkBrR,KAAK,KAAK,CAAnC;AACH;;AACD,SAAS0d,kCAAT,CAA4CxpE,OAA5C,EAAqD08D,SAArD,EAAgE+M,cAAhE,EAAgF;EAC5E,IAAIA,cAAc,CAAC5jE,IAAf,IAAuB62D,SAAS,CAAC7jE,MAArC,EAA6C;IACzC,IAAI6wE,gBAAgB,GAAGhN,SAAS,CAAC,CAAD,CAAhC;IACA,IAAIiN,iBAAiB,GAAG,EAAxB;IACAF,cAAc,CAACrvE,OAAf,CAAuB,CAACgG,GAAD,EAAM2T,IAAN,KAAe;MAClC,IAAI,CAAC21D,gBAAgB,CAACjE,GAAjB,CAAqB1xD,IAArB,CAAL,EAAiC;QAC7B41D,iBAAiB,CAAC7tE,IAAlB,CAAuBiY,IAAvB;MACH;;MACD21D,gBAAgB,CAAC9oD,GAAjB,CAAqB7M,IAArB,EAA2B3T,GAA3B;IACH,CALD;;IAMA,IAAIupE,iBAAiB,CAAC9wE,MAAtB,EAA8B;MAC1B,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8jE,SAAS,CAAC7jE,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;QACvC,IAAI4qE,EAAE,GAAG9G,SAAS,CAAC9jE,CAAD,CAAlB;QACA+wE,iBAAiB,CAACvvE,OAAlB,CAA0B2Z,IAAI,IAAIyvD,EAAE,CAAC5iD,GAAH,CAAO7M,IAAP,EAAaqyD,YAAY,CAACpmE,OAAD,EAAU+T,IAAV,CAAzB,CAAlC;MACH;IACJ;EACJ;;EACD,OAAO2oD,SAAP;AACH;;AACD,SAASkN,YAAT,CAAsBC,OAAtB,EAA+BpiE,IAA/B,EAAqC0Z,OAArC,EAA8C;EAC1C,QAAQ1Z,IAAI,CAAC8L,IAAb;IACI,KAAK;IAAE;IAAP;MACI,OAAOs2D,OAAO,CAACC,YAAR,CAAqBriE,IAArB,EAA2B0Z,OAA3B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACE,UAAR,CAAmBtiE,IAAnB,EAAyB0Z,OAAzB,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACG,eAAR,CAAwBviE,IAAxB,EAA8B0Z,OAA9B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACI,aAAR,CAAsBxiE,IAAtB,EAA4B0Z,OAA5B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACK,UAAR,CAAmBziE,IAAnB,EAAyB0Z,OAAzB,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACM,YAAR,CAAqB1iE,IAArB,EAA2B0Z,OAA3B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACO,cAAR,CAAuB3iE,IAAvB,EAA6B0Z,OAA7B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACQ,UAAR,CAAmB5iE,IAAnB,EAAyB0Z,OAAzB,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACS,cAAR,CAAuB7iE,IAAvB,EAA6B0Z,OAA7B,CAAP;;IACJ,KAAK;IAAE;IAAP;MACI,OAAO0oD,OAAO,CAACU,iBAAR,CAA0B9iE,IAA1B,EAAgC0Z,OAAhC,CAAP;;IACJ,KAAK;IAAG;IAAR;MACI,OAAO0oD,OAAO,CAACW,eAAR,CAAwB/iE,IAAxB,EAA8B0Z,OAA9B,CAAP;;IACJ,KAAK;IAAG;IAAR;MACI,OAAO0oD,OAAO,CAACY,UAAR,CAAmBhjE,IAAnB,EAAyB0Z,OAAzB,CAAP;;IACJ,KAAK;IAAG;IAAR;MACI,OAAO0oD,OAAO,CAACa,YAAR,CAAqBjjE,IAArB,EAA2B0Z,OAA3B,CAAP;;IACJ;MACI,MAAMm/C,eAAe,CAAC74D,IAAI,CAAC8L,IAAN,CAArB;EA5BR;AA8BH;;AACD,SAAS6yD,YAAT,CAAsBpmE,OAAtB,EAA+B+T,IAA/B,EAAqC;EACjC,OAAOxX,MAAM,CAAC6a,gBAAP,CAAwBpX,OAAxB,EAAiC+T,IAAjC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM42D,WAAW,GAAG,OAAOhrD,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;;AACA,SAASirD,oBAAT,CAA8BC,QAA9B,EAAwC;EACpC,MAAM9K,UAAU,GAAG,OAAnB;EACA,OAAQ,GAAEA,UAAW,GAAE8K,QAAQ,CAAC5wE,MAAT,CAAgB0+D,OAAhB,EAAyBj5D,GAAzB,CAA6BorE,OAAO,IAAIA,OAAxC,EAAiD5iE,IAAjD,CAAsD63D,UAAtD,CAAkE,EAAzF;AACH;;AACD,SAASgL,cAAT,CAAwBF,QAAxB,EAAkC;EAC9BF,WAAW,IAAItyD,OAAO,CAAC6S,IAAR,CAAc,iCAAgC0/C,oBAAoB,CAACC,QAAD,CAAW,EAA7E,CAAf;AACH;;AACD,SAASG,gBAAT,CAA0B5kE,IAA1B,EAAgCykE,QAAhC,EAA0C;EACtCF,WAAW,IACPtyD,OAAO,CAAC6S,IAAR,CAAc,0BAAyB9kB,IAAK,2CAA0CwkE,oBAAoB,CAACC,QAAD,CAAW,EAArH,CADJ;AAEH;;AACD,SAASI,YAAT,CAAsBJ,QAAtB,EAAgC;EAC5BF,WAAW,IACPtyD,OAAO,CAAC6S,IAAR,CAAc,+CAA8C0/C,oBAAoB,CAACC,QAAD,CAAW,EAA3F,CADJ;AAEH;;AACD,SAASK,sBAAT,CAAgC9kE,IAAhC,EAAsCykE,QAAtC,EAAgD;EAC5CF,WAAW,IACPtyD,OAAO,CAAC6S,IAAR,CAAc,6BAA4B9kB,IAAK,4CAA2CwkE,oBAAoB,CAACC,QAAD,CAAW,EAAzH,CADJ;AAEH;;AACD,SAASM,iCAAT,CAA2CN,QAA3C,EAAqDlyE,KAArD,EAA4D;EACxD,IAAIA,KAAK,CAACE,MAAV,EAAkB;IACdgyE,QAAQ,CAAC/uE,IAAT,CAAe,yDAAwDnD,KAAK,CAACuP,IAAN,CAAW,IAAX,CAAiB,EAAxF;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkjE,SAAS,GAAG,GAAlB;;AACA,SAASC,mBAAT,CAA6BC,eAA7B,EAA8C9d,MAA9C,EAAsD;EAClD,MAAM+d,WAAW,GAAG,EAApB;;EACA,IAAI,OAAOD,eAAP,IAA0B,QAA9B,EAAwC;IACpCA,eAAe,CAAC3jE,KAAhB,CAAsB,SAAtB,EAAiCvN,OAAjC,CAAyCgO,GAAG,IAAIojE,uBAAuB,CAACpjE,GAAD,EAAMmjE,WAAN,EAAmB/d,MAAnB,CAAvE;EACH,CAFD,MAGK;IACD+d,WAAW,CAACzvE,IAAZ,CAAiBwvE,eAAjB;EACH;;EACD,OAAOC,WAAP;AACH;;AACD,SAASC,uBAAT,CAAiCC,QAAjC,EAA2CF,WAA3C,EAAwD/d,MAAxD,EAAgE;EAC5D,IAAIie,QAAQ,CAAC,CAAD,CAAR,IAAe,GAAnB,EAAwB;IACpB,MAAMj9D,MAAM,GAAGk9D,mBAAmB,CAACD,QAAD,EAAWje,MAAX,CAAlC;;IACA,IAAI,OAAOh/C,MAAP,IAAiB,UAArB,EAAiC;MAC7B+8D,WAAW,CAACzvE,IAAZ,CAAiB0S,MAAjB;MACA;IACH;;IACDi9D,QAAQ,GAAGj9D,MAAX;EACH;;EACD,MAAMuD,KAAK,GAAG05D,QAAQ,CAAC15D,KAAT,CAAe,yCAAf,CAAd;;EACA,IAAIA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAAClZ,MAAN,GAAe,CAApC,EAAuC;IACnC20D,MAAM,CAAC1xD,IAAP,CAAY6lE,iBAAiB,CAAC8J,QAAD,CAA7B;IACA,OAAOF,WAAP;EACH;;EACD,MAAMpH,SAAS,GAAGpyD,KAAK,CAAC,CAAD,CAAvB;EACA,MAAM45D,SAAS,GAAG55D,KAAK,CAAC,CAAD,CAAvB;EACA,MAAMqyD,OAAO,GAAGryD,KAAK,CAAC,CAAD,CAArB;EACAw5D,WAAW,CAACzvE,IAAZ,CAAiB8vE,oBAAoB,CAACzH,SAAD,EAAYC,OAAZ,CAArC;EACA,MAAMyH,kBAAkB,GAAG1H,SAAS,IAAIiH,SAAb,IAA0BhH,OAAO,IAAIgH,SAAhE;;EACA,IAAIO,SAAS,CAAC,CAAD,CAAT,IAAgB,GAAhB,IAAuB,CAACE,kBAA5B,EAAgD;IAC5CN,WAAW,CAACzvE,IAAZ,CAAiB8vE,oBAAoB,CAACxH,OAAD,EAAUD,SAAV,CAArC;EACH;AACJ;;AACD,SAASuH,mBAAT,CAA6BxmB,KAA7B,EAAoCsI,MAApC,EAA4C;EACxC,QAAQtI,KAAR;IACI,KAAK,QAAL;MACI,OAAO,WAAP;;IACJ,KAAK,QAAL;MACI,OAAO,WAAP;;IACJ,KAAK,YAAL;MACI,OAAO,CAACif,SAAD,EAAYC,OAAZ,KAAwB7vD,UAAU,CAAC6vD,OAAD,CAAV,GAAsB7vD,UAAU,CAAC4vD,SAAD,CAA/D;;IACJ,KAAK,YAAL;MACI,OAAO,CAACA,SAAD,EAAYC,OAAZ,KAAwB7vD,UAAU,CAAC6vD,OAAD,CAAV,GAAsB7vD,UAAU,CAAC4vD,SAAD,CAA/D;;IACJ;MACI3W,MAAM,CAAC1xD,IAAP,CAAY8lE,sBAAsB,CAAC1c,KAAD,CAAlC;MACA,OAAO,QAAP;EAXR;AAaH,EACD;AACA;AACA;AACA;;;AACA,MAAM4mB,mBAAmB,GAAG,IAAIhJ,GAAJ,CAAQ,CAAC,MAAD,EAAS,GAAT,CAAR,CAA5B;AACA,MAAMiJ,oBAAoB,GAAG,IAAIjJ,GAAJ,CAAQ,CAAC,OAAD,EAAU,GAAV,CAAR,CAA7B;;AACA,SAAS8I,oBAAT,CAA8BI,GAA9B,EAAmCC,GAAnC,EAAwC;EACpC,MAAMC,iBAAiB,GAAGJ,mBAAmB,CAACrG,GAApB,CAAwBuG,GAAxB,KAAgCD,oBAAoB,CAACtG,GAArB,CAAyBuG,GAAzB,CAA1D;EACA,MAAMG,iBAAiB,GAAGL,mBAAmB,CAACrG,GAApB,CAAwBwG,GAAxB,KAAgCF,oBAAoB,CAACtG,GAArB,CAAyBwG,GAAzB,CAA1D;EACA,OAAO,CAAC9H,SAAD,EAAYC,OAAZ,KAAwB;IAC3B,IAAIgI,QAAQ,GAAGJ,GAAG,IAAIZ,SAAP,IAAoBY,GAAG,IAAI7H,SAA1C;IACA,IAAIkI,QAAQ,GAAGJ,GAAG,IAAIb,SAAP,IAAoBa,GAAG,IAAI7H,OAA1C;;IACA,IAAI,CAACgI,QAAD,IAAaF,iBAAb,IAAkC,OAAO/H,SAAP,KAAqB,SAA3D,EAAsE;MAClEiI,QAAQ,GAAGjI,SAAS,GAAG2H,mBAAmB,CAACrG,GAApB,CAAwBuG,GAAxB,CAAH,GAAkCD,oBAAoB,CAACtG,GAArB,CAAyBuG,GAAzB,CAAtD;IACH;;IACD,IAAI,CAACK,QAAD,IAAaF,iBAAb,IAAkC,OAAO/H,OAAP,KAAmB,SAAzD,EAAoE;MAChEiI,QAAQ,GAAGjI,OAAO,GAAG0H,mBAAmB,CAACrG,GAApB,CAAwBwG,GAAxB,CAAH,GAAkCF,oBAAoB,CAACtG,GAArB,CAAyBwG,GAAzB,CAApD;IACH;;IACD,OAAOG,QAAQ,IAAIC,QAAnB;EACH,CAVD;AAWH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,OAAnB;AACA,MAAMC,gBAAgB,GAAG,IAAI16D,MAAJ,CAAY,MAAKy6D,UAAW,OAA5B,EAAoC,GAApC,CAAzB;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,SAASE,iBAAT,CAA2BvJ,MAA3B,EAAmC1kD,QAAnC,EAA6CivC,MAA7C,EAAqDqd,QAArD,EAA+D;EAC3D,OAAO,IAAI4B,0BAAJ,CAA+BxJ,MAA/B,EAAuC3zD,KAAvC,CAA6CiP,QAA7C,EAAuDivC,MAAvD,EAA+Dqd,QAA/D,CAAP;AACH;;AACD,MAAM6B,aAAa,GAAG,EAAtB;;AACA,MAAMD,0BAAN,CAAiC;EAC7Bt0E,WAAW,CAACw0E,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;;EACDr9D,KAAK,CAACiP,QAAD,EAAWivC,MAAX,EAAmBqd,QAAnB,EAA6B;IAC9B,MAAM1pD,OAAO,GAAG,IAAIyrD,0BAAJ,CAA+Bpf,MAA/B,CAAhB;;IACA,KAAKqf,6BAAL,CAAmC1rD,OAAnC;;IACA,MAAM2rD,GAAG,GAAGlD,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAACtqD,QAAD,CAA9B,EAA0C4C,OAA1C,CAAxB;;IACA,IAAI,OAAOxB,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C,IAAIwB,OAAO,CAAC4rD,6BAAR,CAAsClnE,IAA1C,EAAgD;QAC5CslE,iCAAiC,CAACN,QAAD,EAAW,CAAC,GAAG1pD,OAAO,CAAC4rD,6BAAR,CAAsCjzE,IAAtC,EAAJ,CAAX,CAAjC;MACH;IACJ;;IACD,OAAOgzE,GAAP;EACH;;EACDD,6BAA6B,CAAC1rD,OAAD,EAAU;IACnCA,OAAO,CAAC6rD,oBAAR,GAA+BN,aAA/B;IACAvrD,OAAO,CAAC8rD,eAAR,GAA0B,IAAIj6B,GAAJ,EAA1B;IACA7xB,OAAO,CAAC8rD,eAAR,CAAwBrsD,GAAxB,CAA4B8rD,aAA5B,EAA2C,IAAI15B,GAAJ,EAA3C;IACA7xB,OAAO,CAAC+rD,WAAR,GAAsB,CAAtB;EACH;;EACDpD,YAAY,CAACvrD,QAAD,EAAW4C,OAAX,EAAoB;IAC5B,IAAIgsD,UAAU,GAAGhsD,OAAO,CAACgsD,UAAR,GAAqB,CAAtC;IACA,IAAIC,QAAQ,GAAGjsD,OAAO,CAACisD,QAAR,GAAmB,CAAlC;IACA,MAAMC,MAAM,GAAG,EAAf;IACA,MAAMC,WAAW,GAAG,EAApB;;IACA,IAAI/uD,QAAQ,CAACnY,IAAT,CAAcgsB,MAAd,CAAqB,CAArB,KAA2B,GAA/B,EAAoC;MAChCjR,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoB2kE,cAAc,EAAlC;IACH;;IACDliD,QAAQ,CAACnE,WAAT,CAAqBhgB,OAArB,CAA6BmzE,GAAG,IAAI;MAChC,KAAKV,6BAAL,CAAmC1rD,OAAnC;;MACA,IAAIosD,GAAG,CAACh6D,IAAJ,IAAY;MAAE;MAAlB,EAAqD;QACjD,MAAMi6D,QAAQ,GAAGD,GAAjB;QACA,MAAMnnE,IAAI,GAAGonE,QAAQ,CAACpnE,IAAtB;QACAA,IAAI,CAAClL,QAAL,GAAgByM,KAAhB,CAAsB,SAAtB,EAAiCvN,OAAjC,CAAyCuF,CAAC,IAAI;UAC1C6tE,QAAQ,CAACpnE,IAAT,GAAgBzG,CAAhB;UACA0tE,MAAM,CAACvxE,IAAP,CAAY,KAAKiuE,UAAL,CAAgByD,QAAhB,EAA0BrsD,OAA1B,CAAZ;QACH,CAHD;QAIAqsD,QAAQ,CAACpnE,IAAT,GAAgBA,IAAhB;MACH,CARD,MASK,IAAImnE,GAAG,CAACh6D,IAAJ,IAAY;MAAE;MAAlB,EAA0D;QAC3D,MAAM+gC,UAAU,GAAG,KAAK01B,eAAL,CAAqBuD,GAArB,EAA0BpsD,OAA1B,CAAnB;QACAgsD,UAAU,IAAI74B,UAAU,CAAC64B,UAAzB;QACAC,QAAQ,IAAI94B,UAAU,CAAC84B,QAAvB;QACAE,WAAW,CAACxxE,IAAZ,CAAiBw4C,UAAjB;MACH,CALI,MAMA;QACDnzB,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoB4kE,iBAAiB,EAArC;MACH;IACJ,CApBD;IAqBA,OAAO;MACHntD,IAAI,EAAE;MAAE;MADL;MAEHnN,IAAI,EAAEmY,QAAQ,CAACnY,IAFZ;MAGHinE,MAHG;MAIHC,WAJG;MAKHH,UALG;MAMHC,QANG;MAOHr6D,OAAO,EAAE;IAPN,CAAP;EASH;;EACDg3D,UAAU,CAACxrD,QAAD,EAAW4C,OAAX,EAAoB;IAC1B,MAAMssD,QAAQ,GAAG,KAAKpD,UAAL,CAAgB9rD,QAAQ,CAACjd,MAAzB,EAAiC6f,OAAjC,CAAjB;IACA,MAAMusD,SAAS,GAAInvD,QAAQ,CAACxL,OAAT,IAAoBwL,QAAQ,CAACxL,OAAT,CAAiB3G,MAAtC,IAAiD,IAAnE;;IACA,IAAIqhE,QAAQ,CAACE,qBAAb,EAAoC;MAChC,MAAM9M,WAAW,GAAG,IAAIiC,GAAJ,EAApB;MACA,MAAM12D,MAAM,GAAGshE,SAAS,IAAI,EAA5B;MACAD,QAAQ,CAACnsE,MAAT,CAAgBlH,OAAhB,CAAwBmM,KAAK,IAAI;QAC7B,IAAIA,KAAK,YAAYysC,GAArB,EAA0B;UACtBzsC,KAAK,CAACnM,OAAN,CAAcX,KAAK,IAAI;YACnBsvE,kBAAkB,CAACtvE,KAAD,CAAlB,CAA0BW,OAA1B,CAAkCkoD,GAAG,IAAI;cACrC,IAAI,CAACl2C,MAAM,CAAC8iB,cAAP,CAAsBozB,GAAtB,CAAL,EAAiC;gBAC7Bue,WAAW,CAAC/oD,GAAZ,CAAgBwqC,GAAhB;cACH;YACJ,CAJD;UAKH,CAND;QAOH;MACJ,CAVD;;MAWA,IAAIue,WAAW,CAACh7D,IAAhB,EAAsB;QAClB,MAAM+nE,cAAc,GAAGxE,eAAe,CAACvI,WAAW,CAACvwD,MAAZ,EAAD,CAAtC;QACA6Q,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoB6kE,YAAY,CAACpiD,QAAQ,CAACnY,IAAV,EAAgBwnE,cAAhB,CAAhC;MACH;IACJ;;IACD,OAAO;MACHr6D,IAAI,EAAE;MAAE;MADL;MAEHnN,IAAI,EAAEmY,QAAQ,CAACnY,IAFZ;MAGHG,KAAK,EAAEknE,QAHJ;MAIH16D,OAAO,EAAE26D,SAAS,GAAG;QAAEthE,MAAM,EAAEshE;MAAV,CAAH,GAA2B;IAJ1C,CAAP;EAMH;;EACD1D,eAAe,CAACzrD,QAAD,EAAW4C,OAAX,EAAoB;IAC/BA,OAAO,CAACgsD,UAAR,GAAqB,CAArB;IACAhsD,OAAO,CAACisD,QAAR,GAAmB,CAAnB;IACA,MAAMv0B,SAAS,GAAG+wB,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAACtqD,QAAQ,CAACs6B,SAAV,CAA9B,EAAoD13B,OAApD,CAA9B;IACA,MAAM0sD,QAAQ,GAAGxC,mBAAmB,CAAC9sD,QAAQ,CAACq+C,IAAV,EAAgBz7C,OAAO,CAACqsC,MAAxB,CAApC;IACA,OAAO;MACHj6C,IAAI,EAAE;MAAE;MADL;MAEHs6D,QAFG;MAGHh1B,SAHG;MAIHs0B,UAAU,EAAEhsD,OAAO,CAACgsD,UAJjB;MAKHC,QAAQ,EAAEjsD,OAAO,CAACisD,QALf;MAMHr6D,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAN/B,CAAP;EAQH;;EACDk3D,aAAa,CAAC1rD,QAAD,EAAW4C,OAAX,EAAoB;IAC7B,OAAO;MACH5N,IAAI,EAAE;MAAE;MADL;MAEHgpD,KAAK,EAAEh+C,QAAQ,CAACg+C,KAAT,CAAe78D,GAAf,CAAmBqa,CAAC,IAAI6vD,YAAY,CAAC,IAAD,EAAO7vD,CAAP,EAAUoH,OAAV,CAApC,CAFJ;MAGHpO,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAH/B,CAAP;EAKH;;EACDm3D,UAAU,CAAC3rD,QAAD,EAAW4C,OAAX,EAAoB;IAC1B,MAAM+rD,WAAW,GAAG/rD,OAAO,CAAC+rD,WAA5B;IACA,IAAIa,YAAY,GAAG,CAAnB;IACA,MAAMxR,KAAK,GAAGh+C,QAAQ,CAACg+C,KAAT,CAAe78D,GAAf,CAAmBoxC,IAAI,IAAI;MACrC3vB,OAAO,CAAC+rD,WAAR,GAAsBA,WAAtB;MACA,MAAMc,QAAQ,GAAGpE,YAAY,CAAC,IAAD,EAAO94B,IAAP,EAAa3vB,OAAb,CAA7B;MACA4sD,YAAY,GAAG3mE,IAAI,CAAC6iC,GAAL,CAAS8jC,YAAT,EAAuB5sD,OAAO,CAAC+rD,WAA/B,CAAf;MACA,OAAOc,QAAP;IACH,CALa,CAAd;IAMA7sD,OAAO,CAAC+rD,WAAR,GAAsBa,YAAtB;IACA,OAAO;MACHx6D,IAAI,EAAE;MAAE;MADL;MAEHgpD,KAFG;MAGHxpD,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAH/B,CAAP;EAKH;;EACDo3D,YAAY,CAAC5rD,QAAD,EAAW4C,OAAX,EAAoB;IAC5B,MAAM8sD,SAAS,GAAGC,kBAAkB,CAAC3vD,QAAQ,CAAC+9C,OAAV,EAAmBn7C,OAAO,CAACqsC,MAA3B,CAApC;IACArsC,OAAO,CAACgtD,qBAAR,GAAgCF,SAAhC;IACA,IAAIR,QAAJ;IACA,IAAIW,aAAa,GAAG7vD,QAAQ,CAACjd,MAAT,GAAkBid,QAAQ,CAACjd,MAA3B,GAAoCiF,0DAAK,CAAC,EAAD,CAA7D;;IACA,IAAI6nE,aAAa,CAAC76D,IAAd,IAAsB;IAAE;IAA5B,EAAmE;MAC/Dk6D,QAAQ,GAAG,KAAKrD,cAAL,CAAoBgE,aAApB,EAAmCjtD,OAAnC,CAAX;IACH,CAFD,MAGK;MACD,IAAIitD,aAAa,GAAG7vD,QAAQ,CAACjd,MAA7B;MACA,IAAI8yD,OAAO,GAAG,KAAd;;MACA,IAAI,CAACga,aAAL,EAAoB;QAChBha,OAAO,GAAG,IAAV;QACA,MAAMia,YAAY,GAAG,EAArB;;QACA,IAAIJ,SAAS,CAAC5H,MAAd,EAAsB;UAClBgI,YAAY,CAAC,QAAD,CAAZ,GAAyBJ,SAAS,CAAC5H,MAAnC;QACH;;QACD+H,aAAa,GAAG7nE,0DAAK,CAAC8nE,YAAD,CAArB;MACH;;MACDltD,OAAO,CAAC+rD,WAAR,IAAuBe,SAAS,CAAC9Q,QAAV,GAAqB8Q,SAAS,CAACniB,KAAtD;;MACA,MAAMwiB,SAAS,GAAG,KAAKjE,UAAL,CAAgB+D,aAAhB,EAA+BjtD,OAA/B,CAAlB;;MACAmtD,SAAS,CAACC,WAAV,GAAwBna,OAAxB;MACAqZ,QAAQ,GAAGa,SAAX;IACH;;IACDntD,OAAO,CAACgtD,qBAAR,GAAgC,IAAhC;IACA,OAAO;MACH56D,IAAI,EAAE;MAAE;MADL;MAEH+oD,OAAO,EAAE2R,SAFN;MAGH1nE,KAAK,EAAEknE,QAHJ;MAIH16D,OAAO,EAAE;IAJN,CAAP;EAMH;;EACDs3D,UAAU,CAAC9rD,QAAD,EAAW4C,OAAX,EAAoB;IAC1B,MAAM2rD,GAAG,GAAG,KAAK0B,aAAL,CAAmBjwD,QAAnB,EAA6B4C,OAA7B,CAAZ;;IACA,KAAKstD,iBAAL,CAAuB3B,GAAvB,EAA4B3rD,OAA5B;;IACA,OAAO2rD,GAAP;EACH;;EACD0B,aAAa,CAACjwD,QAAD,EAAW4C,OAAX,EAAoB;IAC7B,MAAM7f,MAAM,GAAG,EAAf;IACA,MAAMotE,cAAc,GAAG5zE,KAAK,CAACC,OAAN,CAAcwjB,QAAQ,CAACjd,MAAvB,IAAiCid,QAAQ,CAACjd,MAA1C,GAAmD,CAACid,QAAQ,CAACjd,MAAV,CAA1E;;IACA,KAAK,IAAIqtE,UAAT,IAAuBD,cAAvB,EAAuC;MACnC,IAAI,OAAOC,UAAP,KAAsB,QAA1B,EAAoC;QAChC,IAAIA,UAAU,KAAKtS,2DAAnB,EAA+B;UAC3B/6D,MAAM,CAACxF,IAAP,CAAY6yE,UAAZ;QACH,CAFD,MAGK;UACDxtD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoBglE,iBAAiB,CAAC6N,UAAD,CAArC;QACH;MACJ,CAPD,MAQK;QACDrtE,MAAM,CAACxF,IAAP,CAAY8rE,YAAY,CAAC+G,UAAD,CAAxB;MACH;IACJ;;IACD,IAAIhB,qBAAqB,GAAG,KAA5B;IACA,IAAIiB,eAAe,GAAG,IAAtB;IACAttE,MAAM,CAAClH,OAAP,CAAey0E,SAAS,IAAI;MACxB,IAAIA,SAAS,YAAY77B,GAAzB,EAA8B;QAC1B,IAAI67B,SAAS,CAACpJ,GAAV,CAAc,QAAd,CAAJ,EAA6B;UACzBmJ,eAAe,GAAGC,SAAS,CAAC5zD,GAAV,CAAc,QAAd,CAAlB;UACA4zD,SAAS,CAACj7B,MAAV,CAAiB,QAAjB;QACH;;QACD,IAAI,CAAC+5B,qBAAL,EAA4B;UACxB,KAAK,IAAIl0E,KAAT,IAAkBo1E,SAAS,CAACv+D,MAAV,EAAlB,EAAsC;YAClC,IAAI7W,KAAK,CAACyB,QAAN,GAAiByC,OAAjB,CAAyB+oE,uBAAzB,KAAqD,CAAzD,EAA4D;cACxDiH,qBAAqB,GAAG,IAAxB;cACA;YACH;UACJ;QACJ;MACJ;IACJ,CAfD;IAgBA,OAAO;MACHp6D,IAAI,EAAE;MAAE;MADL;MAEHjS,MAFG;MAGH+kE,MAAM,EAAEuI,eAHL;MAIH5iE,MAAM,EAAEuS,QAAQ,CAACvS,MAJd;MAKH2hE,qBALG;MAMH56D,OAAO,EAAE;IANN,CAAP;EAQH;;EACD07D,iBAAiB,CAAC3B,GAAD,EAAM3rD,OAAN,EAAe;IAC5B,MAAMm7C,OAAO,GAAGn7C,OAAO,CAACgtD,qBAAxB;IACA,IAAIW,OAAO,GAAG3tD,OAAO,CAAC+rD,WAAtB;IACA,IAAI6B,SAAS,GAAG5tD,OAAO,CAAC+rD,WAAxB;;IACA,IAAI5Q,OAAO,IAAIyS,SAAS,GAAG,CAA3B,EAA8B;MAC1BA,SAAS,IAAIzS,OAAO,CAACa,QAAR,GAAmBb,OAAO,CAACxQ,KAAxC;IACH;;IACDghB,GAAG,CAACxrE,MAAJ,CAAWlH,OAAX,CAAmB40E,KAAK,IAAI;MACxB,IAAI,OAAOA,KAAP,KAAiB,QAArB,EACI;MACJA,KAAK,CAAC50E,OAAN,CAAc,CAACX,KAAD,EAAQsa,IAAR,KAAiB;QAC3B,IAAI,OAAO4L,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;UAC/C,IAAI,CAAC,KAAKgtD,OAAL,CAAatH,qBAAb,CAAmCtxD,IAAnC,CAAL,EAA+C;YAC3Ci7D,KAAK,CAACp7B,MAAN,CAAa7/B,IAAb;YACAoN,OAAO,CAAC4rD,6BAAR,CAAsCj1D,GAAtC,CAA0C/D,IAA1C;YACA;UACH;QACJ,CAP0B,CAQ3B;QACA;;;QACA,MAAMk5D,eAAe,GAAG9rD,OAAO,CAAC8rD,eAAR,CAAwBhyD,GAAxB,CAA4BkG,OAAO,CAAC6rD,oBAApC,CAAxB;QACA,MAAMiC,cAAc,GAAGhC,eAAe,CAAChyD,GAAhB,CAAoBlH,IAApB,CAAvB;QACA,IAAIm7D,oBAAoB,GAAG,IAA3B;;QACA,IAAID,cAAJ,EAAoB;UAChB,IAAIF,SAAS,IAAID,OAAb,IAAwBC,SAAS,IAAIE,cAAc,CAACF,SAApD,IACAD,OAAO,IAAIG,cAAc,CAACH,OAD9B,EACuC;YACnC3tD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoBklE,wBAAwB,CAACjtD,IAAD,EAAOk7D,cAAc,CAACF,SAAtB,EAAiCE,cAAc,CAACH,OAAhD,EAAyDC,SAAzD,EAAoED,OAApE,CAA5C;YACAI,oBAAoB,GAAG,KAAvB;UACH,CALe,CAMhB;UACA;UACA;;;UACAH,SAAS,GAAGE,cAAc,CAACF,SAA3B;QACH;;QACD,IAAIG,oBAAJ,EAA0B;UACtBjC,eAAe,CAACrsD,GAAhB,CAAoB7M,IAApB,EAA0B;YAAEg7D,SAAF;YAAaD;UAAb,CAA1B;QACH;;QACD,IAAI3tD,OAAO,CAACpO,OAAZ,EAAqB;UACjB+1D,mBAAmB,CAACrvE,KAAD,EAAQ0nB,OAAO,CAACpO,OAAhB,EAAyBoO,OAAO,CAACqsC,MAAjC,CAAnB;QACH;MACJ,CA9BD;IA+BH,CAlCD;EAmCH;;EACD4c,cAAc,CAAC7rD,QAAD,EAAW4C,OAAX,EAAoB;IAC9B,MAAM2rD,GAAG,GAAG;MAAEv5D,IAAI,EAAE;MAAE;MAAV;MAAiDjS,MAAM,EAAE,EAAzD;MAA6DyR,OAAO,EAAE;IAAtE,CAAZ;;IACA,IAAI,CAACoO,OAAO,CAACgtD,qBAAb,EAAoC;MAChChtD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoBulE,gBAAgB,EAApC;MACA,OAAOyL,GAAP;IACH;;IACD,MAAMqC,mBAAmB,GAAG,CAA5B;IACA,IAAIC,yBAAyB,GAAG,CAAhC;IACA,MAAM5kC,OAAO,GAAG,EAAhB;IACA,IAAI6kC,iBAAiB,GAAG,KAAxB;IACA,IAAIC,mBAAmB,GAAG,KAA1B;IACA,IAAIhM,cAAc,GAAG,CAArB;IACA,MAAM5G,SAAS,GAAGn+C,QAAQ,CAACg+C,KAAT,CAAe78D,GAAf,CAAmB4B,MAAM,IAAI;MAC3C,MAAMiF,KAAK,GAAG,KAAKioE,aAAL,CAAmBltE,MAAnB,EAA2B6f,OAA3B,CAAd;;MACA,IAAIouD,SAAS,GAAGhpE,KAAK,CAACyF,MAAN,IAAgB,IAAhB,GAAuBzF,KAAK,CAACyF,MAA7B,GAAsCwjE,aAAa,CAACjpE,KAAK,CAACjF,MAAP,CAAnE;MACA,IAAI0K,MAAM,GAAG,CAAb;;MACA,IAAIujE,SAAS,IAAI,IAAjB,EAAuB;QACnBH,yBAAyB;QACzBpjE,MAAM,GAAGzF,KAAK,CAACyF,MAAN,GAAeujE,SAAxB;MACH;;MACDD,mBAAmB,GAAGA,mBAAmB,IAAItjE,MAAM,GAAG,CAAhC,IAAqCA,MAAM,GAAG,CAApE;MACAqjE,iBAAiB,GAAGA,iBAAiB,IAAIrjE,MAAM,GAAGs3D,cAAlD;MACAA,cAAc,GAAGt3D,MAAjB;MACAw+B,OAAO,CAAC1uC,IAAR,CAAakQ,MAAb;MACA,OAAOzF,KAAP;IACH,CAbiB,CAAlB;;IAcA,IAAI+oE,mBAAJ,EAAyB;MACrBnuD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoBwlE,aAAa,EAAjC;IACH;;IACD,IAAI+N,iBAAJ,EAAuB;MACnBluD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoBylE,yBAAyB,EAA7C;IACH;;IACD,MAAM1oE,MAAM,GAAG0lB,QAAQ,CAACg+C,KAAT,CAAe1jE,MAA9B;IACA,IAAI42E,eAAe,GAAG,CAAtB;;IACA,IAAIL,yBAAyB,GAAG,CAA5B,IAAiCA,yBAAyB,GAAGv2E,MAAjE,EAAyE;MACrEsoB,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoB0lE,uBAAuB,EAA3C;IACH,CAFD,MAGK,IAAI4N,yBAAyB,IAAI,CAAjC,EAAoC;MACrCK,eAAe,GAAGN,mBAAmB,IAAIt2E,MAAM,GAAG,CAAb,CAArC;IACH;;IACD,MAAM62E,KAAK,GAAG72E,MAAM,GAAG,CAAvB;IACA,MAAMq0E,WAAW,GAAG/rD,OAAO,CAAC+rD,WAA5B;IACA,MAAMiB,qBAAqB,GAAGhtD,OAAO,CAACgtD,qBAAtC;IACA,MAAMwB,eAAe,GAAGxB,qBAAqB,CAAChR,QAA9C;IACAT,SAAS,CAACtiE,OAAV,CAAkB,CAACopE,EAAD,EAAK5qE,CAAL,KAAW;MACzB,MAAMoT,MAAM,GAAGyjE,eAAe,GAAG,CAAlB,GAAuB72E,CAAC,IAAI82E,KAAL,GAAa,CAAb,GAAkBD,eAAe,GAAG72E,CAA3D,GAAiE4xC,OAAO,CAAC5xC,CAAD,CAAvF;MACA,MAAMg3E,qBAAqB,GAAG5jE,MAAM,GAAG2jE,eAAvC;MACAxuD,OAAO,CAAC+rD,WAAR,GAAsBA,WAAW,GAAGiB,qBAAqB,CAACriB,KAApC,GAA4C8jB,qBAAlE;MACAzB,qBAAqB,CAAChR,QAAtB,GAAiCyS,qBAAjC;;MACA,KAAKnB,iBAAL,CAAuBjL,EAAvB,EAA2BriD,OAA3B;;MACAqiD,EAAE,CAACx3D,MAAH,GAAYA,MAAZ;MACA8gE,GAAG,CAACxrE,MAAJ,CAAWxF,IAAX,CAAgB0nE,EAAhB;IACH,CARD;IASA,OAAOsJ,GAAP;EACH;;EACDxC,cAAc,CAAC/rD,QAAD,EAAW4C,OAAX,EAAoB;IAC9B,OAAO;MACH5N,IAAI,EAAE;MAAE;MADL;MAEHslC,SAAS,EAAE+wB,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAACtqD,QAAQ,CAACs6B,SAAV,CAA9B,EAAoD13B,OAApD,CAFpB;MAGHpO,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAH/B,CAAP;EAKH;;EACDw3D,iBAAiB,CAAChsD,QAAD,EAAW4C,OAAX,EAAoB;IACjCA,OAAO,CAACisD,QAAR;IACA,OAAO;MACH75D,IAAI,EAAE;MAAE;MADL;MAEHR,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAF/B,CAAP;EAIH;;EACDy3D,eAAe,CAACjsD,QAAD,EAAW4C,OAAX,EAAoB;IAC/B,OAAO;MACH5N,IAAI,EAAE;MAAG;MADN;MAEHslC,SAAS,EAAE,KAAKyxB,cAAL,CAAoB/rD,QAAQ,CAACs6B,SAA7B,EAAwC13B,OAAxC,CAFR;MAGHpO,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAH/B,CAAP;EAKH;;EACD03D,UAAU,CAAClsD,QAAD,EAAW4C,OAAX,EAAoB;IAC1B,MAAM0uD,cAAc,GAAG1uD,OAAO,CAAC6rD,oBAA/B;IACA,MAAMj6D,OAAO,GAAIwL,QAAQ,CAACxL,OAAT,IAAoB,EAArC;IACAoO,OAAO,CAACgsD,UAAR;IACAhsD,OAAO,CAAC2uD,YAAR,GAAuBvxD,QAAvB;IACA,MAAM,CAACie,QAAD,EAAWuzC,WAAX,IAA0BC,iBAAiB,CAACzxD,QAAQ,CAACie,QAAV,CAAjD;IACArb,OAAO,CAAC6rD,oBAAR,GACI6C,cAAc,CAACh3E,MAAf,GAAyBg3E,cAAc,GAAG,GAAjB,GAAuBrzC,QAAhD,GAA4DA,QADhE;IAEA6nC,oBAAoB,CAACljD,OAAO,CAAC8rD,eAAT,EAA0B9rD,OAAO,CAAC6rD,oBAAlC,EAAwD,IAAIh6B,GAAJ,EAAxD,CAApB;IACA,MAAM6F,SAAS,GAAG+wB,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAACtqD,QAAQ,CAACs6B,SAAV,CAA9B,EAAoD13B,OAApD,CAA9B;IACAA,OAAO,CAAC2uD,YAAR,GAAuB,IAAvB;IACA3uD,OAAO,CAAC6rD,oBAAR,GAA+B6C,cAA/B;IACA,OAAO;MACHt8D,IAAI,EAAE;MAAG;MADN;MAEHipB,QAFG;MAGHkzC,KAAK,EAAE38D,OAAO,CAAC28D,KAAR,IAAiB,CAHrB;MAIHO,QAAQ,EAAE,CAAC,CAACl9D,OAAO,CAACk9D,QAJjB;MAKHF,WALG;MAMHl3B,SANG;MAOHq3B,gBAAgB,EAAE3xD,QAAQ,CAACie,QAPxB;MAQHzpB,OAAO,EAAE+6D,yBAAyB,CAACvvD,QAAQ,CAACxL,OAAV;IAR/B,CAAP;EAUH;;EACD23D,YAAY,CAACnsD,QAAD,EAAW4C,OAAX,EAAoB;IAC5B,IAAI,CAACA,OAAO,CAAC2uD,YAAb,EAA2B;MACvB3uD,OAAO,CAACqsC,MAAR,CAAe1xD,IAAf,CAAoB2lE,cAAc,EAAlC;IACH;;IACD,MAAMnF,OAAO,GAAG/9C,QAAQ,CAAC+9C,OAAT,KAAqB,MAArB,GACZ;MAAEa,QAAQ,EAAE,CAAZ;MAAerR,KAAK,EAAE,CAAtB;MAAyBua,MAAM,EAAE;IAAjC,CADY,GAEZe,aAAa,CAAC7oD,QAAQ,CAAC+9C,OAAV,EAAmBn7C,OAAO,CAACqsC,MAA3B,EAAmC,IAAnC,CAFjB;IAGA,OAAO;MACHj6C,IAAI,EAAE;MAAG;MADN;MAEHslC,SAAS,EAAE+wB,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAACtqD,QAAQ,CAACs6B,SAAV,CAA9B,EAAoD13B,OAApD,CAFpB;MAGHm7C,OAHG;MAIHvpD,OAAO,EAAE;IAJN,CAAP;EAMH;;AAzW4B;;AA2WjC,SAASi9D,iBAAT,CAA2BxzC,QAA3B,EAAqC;EACjC,MAAM2zC,YAAY,GAAG3zC,QAAQ,CAAC70B,KAAT,CAAe,SAAf,EAA0Bu0C,IAA1B,CAA+Bz8B,KAAK,IAAIA,KAAK,IAAI6sD,UAAjD,IAA+D,IAA/D,GAAsE,KAA3F;;EACA,IAAI6D,YAAJ,EAAkB;IACd3zC,QAAQ,GAAGA,QAAQ,CAACn0B,OAAT,CAAiBkkE,gBAAjB,EAAmC,EAAnC,CAAX;EACH,CAJgC,CAKjC;EACA;;;EACA/vC,QAAQ,GAAGA,QAAQ,CAACn0B,OAAT,CAAiB,MAAjB,EAAyB0+D,mBAAzB,EACN1+D,OADM,CACE,OADF,EACW0J,KAAK,IAAIg1D,mBAAmB,GAAG,GAAtB,GAA4Bh1D,KAAK,CAAC9J,KAAN,CAAY,CAAZ,CADhD,EAENI,OAFM,CAEE,aAFF,EAEiB4+D,qBAFjB,CAAX;EAGA,OAAO,CAACzqC,QAAD,EAAW2zC,YAAX,CAAP;AACH;;AACD,SAASC,eAAT,CAAyBp4E,GAAzB,EAA8B;EAC1B,OAAOA,GAAG,GAAG2vE,OAAO,CAAC3vE,GAAD,CAAV,GAAkB,IAA5B;AACH;;AACD,MAAM40E,0BAAN,CAAiC;EAC7Bz0E,WAAW,CAACq1D,MAAD,EAAS;IAChB,KAAKA,MAAL,GAAcA,MAAd;IACA,KAAK2f,UAAL,GAAkB,CAAlB;IACA,KAAKC,QAAL,GAAgB,CAAhB;IACA,KAAKiD,iBAAL,GAAyB,IAAzB;IACA,KAAKP,YAAL,GAAoB,IAApB;IACA,KAAK9C,oBAAL,GAA4B,IAA5B;IACA,KAAKmB,qBAAL,GAA6B,IAA7B;IACA,KAAKjB,WAAL,GAAmB,CAAnB;IACA,KAAKD,eAAL,GAAuB,IAAIj6B,GAAJ,EAAvB;IACA,KAAKjgC,OAAL,GAAe,IAAf;IACA,KAAKg6D,6BAAL,GAAqC,IAAIjK,GAAJ,EAArC;EACH;;AAb4B;;AAejC,SAAS0M,aAAT,CAAuBluE,MAAvB,EAA+B;EAC3B,IAAI,OAAOA,MAAP,IAAiB,QAArB,EACI,OAAO,IAAP;EACJ,IAAI0K,MAAM,GAAG,IAAb;;EACA,IAAIlR,KAAK,CAACC,OAAN,CAAcuG,MAAd,CAAJ,EAA2B;IACvBA,MAAM,CAAClH,OAAP,CAAeu0E,UAAU,IAAI;MACzB,IAAIA,UAAU,YAAY37B,GAAtB,IAA6B27B,UAAU,CAAClJ,GAAX,CAAe,QAAf,CAAjC,EAA2D;QACvD,MAAMztE,GAAG,GAAG22E,UAAZ;QACA3iE,MAAM,GAAGuI,UAAU,CAACvc,GAAG,CAACijB,GAAJ,CAAQ,QAAR,CAAD,CAAnB;QACAjjB,GAAG,CAAC47C,MAAJ,CAAW,QAAX;MACH;IACJ,CAND;EAOH,CARD,MASK,IAAItyC,MAAM,YAAY0xC,GAAlB,IAAyB1xC,MAAM,CAACmkE,GAAP,CAAW,QAAX,CAA7B,EAAmD;IACpD,MAAMztE,GAAG,GAAGsJ,MAAZ;IACA0K,MAAM,GAAGuI,UAAU,CAACvc,GAAG,CAACijB,GAAJ,CAAQ,QAAR,CAAD,CAAnB;IACAjjB,GAAG,CAAC47C,MAAJ,CAAW,QAAX;EACH;;EACD,OAAO5nC,MAAP;AACH;;AACD,SAASkiE,kBAAT,CAA4Bz0E,KAA5B,EAAmC+zD,MAAnC,EAA2C;EACvC,IAAI/zD,KAAK,CAACy1B,cAAN,CAAqB,UAArB,CAAJ,EAAsC;IAClC,OAAOz1B,KAAP;EACH;;EACD,IAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;IAC1B,MAAM0jE,QAAQ,GAAGiK,aAAa,CAAC3tE,KAAD,EAAQ+zD,MAAR,CAAb,CAA6B2P,QAA9C;IACA,OAAOmT,aAAa,CAACnT,QAAD,EAAW,CAAX,EAAc,EAAd,CAApB;EACH;;EACD,MAAMoT,QAAQ,GAAG92E,KAAjB;EACA,MAAM+2E,SAAS,GAAGD,QAAQ,CAAC5oE,KAAT,CAAe,KAAf,EAAsB2lC,IAAtB,CAA2BhvB,CAAC,IAAIA,CAAC,CAAC8T,MAAF,CAAS,CAAT,KAAe,GAAf,IAAsB9T,CAAC,CAAC8T,MAAF,CAAS,CAAT,KAAe,GAArE,CAAlB;;EACA,IAAIo+C,SAAJ,EAAe;IACX,MAAM1D,GAAG,GAAGwD,aAAa,CAAC,CAAD,EAAI,CAAJ,EAAO,EAAP,CAAzB;IACAxD,GAAG,CAAC2D,OAAJ,GAAc,IAAd;IACA3D,GAAG,CAACyD,QAAJ,GAAeA,QAAf;IACA,OAAOzD,GAAP;EACH;;EACD,MAAMxQ,OAAO,GAAG8K,aAAa,CAACmJ,QAAD,EAAW/iB,MAAX,CAA7B;EACA,OAAO8iB,aAAa,CAAChU,OAAO,CAACa,QAAT,EAAmBb,OAAO,CAACxQ,KAA3B,EAAkCwQ,OAAO,CAAC+J,MAA1C,CAApB;AACH;;AACD,SAASyH,yBAAT,CAAmC/6D,OAAnC,EAA4C;EACxC,IAAIA,OAAJ,EAAa;IACTA,OAAO,GAAG40D,OAAO,CAAC50D,OAAD,CAAjB;;IACA,IAAIA,OAAO,CAAC,QAAD,CAAX,EAAuB;MACnBA,OAAO,CAAC,QAAD,CAAP,GAAoBq9D,eAAe,CAACr9D,OAAO,CAAC,QAAD,CAAR,CAAnC;IACH;EACJ,CALD,MAMK;IACDA,OAAO,GAAG,EAAV;EACH;;EACD,OAAOA,OAAP;AACH;;AACD,SAASu9D,aAAT,CAAuBnT,QAAvB,EAAiCrR,KAAjC,EAAwCua,MAAxC,EAAgD;EAC5C,OAAO;IAAElJ,QAAF;IAAYrR,KAAZ;IAAmBua;EAAnB,CAAP;AACH;;AAED,SAASqK,yBAAT,CAAmC1wE,OAAnC,EAA4C08D,SAA5C,EAAuDiU,aAAvD,EAAsEC,cAAtE,EAAsFzT,QAAtF,EAAgGrR,KAAhG,EAAuGua,MAAM,GAAG,IAAhH,EAAsHwK,WAAW,GAAG,KAApI,EAA2I;EACvI,OAAO;IACHt9D,IAAI,EAAE;IAAE;IADL;IAEHvT,OAFG;IAGH08D,SAHG;IAIHiU,aAJG;IAKHC,cALG;IAMHzT,QANG;IAOHrR,KAPG;IAQHgS,SAAS,EAAEX,QAAQ,GAAGrR,KARnB;IASHua,MATG;IAUHwK;EAVG,CAAP;AAYH;;AAED,MAAMC,qBAAN,CAA4B;EACxB34E,WAAW,GAAG;IACV,KAAK44E,IAAL,GAAY,IAAI/9B,GAAJ,EAAZ;EACH;;EACD/3B,GAAG,CAACjb,OAAD,EAAU;IACT,OAAO,KAAK+wE,IAAL,CAAU91D,GAAV,CAAcjb,OAAd,KAA0B,EAAjC;EACH;;EACDgxE,MAAM,CAAChxE,OAAD,EAAUixE,YAAV,EAAwB;IAC1B,IAAIC,oBAAoB,GAAG,KAAKH,IAAL,CAAU91D,GAAV,CAAcjb,OAAd,CAA3B;;IACA,IAAI,CAACkxE,oBAAL,EAA2B;MACvB,KAAKH,IAAL,CAAUnwD,GAAV,CAAc5gB,OAAd,EAAuBkxE,oBAAoB,GAAG,EAA9C;IACH;;IACDA,oBAAoB,CAACp1E,IAArB,CAA0B,GAAGm1E,YAA7B;EACH;;EACDxL,GAAG,CAACzlE,OAAD,EAAU;IACT,OAAO,KAAK+wE,IAAL,CAAUtL,GAAV,CAAczlE,OAAd,CAAP;EACH;;EACDmxE,KAAK,GAAG;IACJ,KAAKJ,IAAL,CAAUI,KAAV;EACH;;AAnBuB;AAsB5B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,yBAAyB,GAAG,CAAlC;AACA,MAAMC,WAAW,GAAG,QAApB;AACA,MAAMC,iBAAiB,GAAG,IAAIz/D,MAAJ,CAAWw/D,WAAX,EAAwB,GAAxB,CAA1B;AACA,MAAME,WAAW,GAAG,QAApB;AACA,MAAMC,iBAAiB,GAAG,IAAI3/D,MAAJ,CAAW0/D,WAAX,EAAwB,GAAxB,CAA1B;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,SAASE,uBAAT,CAAiCxO,MAAjC,EAAyCyO,WAAzC,EAAsD5E,GAAtD,EAA2D6E,cAA3D,EAA2EC,cAA3E,EAA2FC,cAAc,GAAG,IAAI7+B,GAAJ,EAA5G,EAAuH8+B,WAAW,GAAG,IAAI9+B,GAAJ,EAArI,EAAgJjgC,OAAhJ,EAAyJg/D,eAAzJ,EAA0KvkB,MAAM,GAAG,EAAnL,EAAuL;EACnL,OAAO,IAAIwkB,+BAAJ,GAAsCC,cAAtC,CAAqDhP,MAArD,EAA6DyO,WAA7D,EAA0E5E,GAA1E,EAA+E6E,cAA/E,EAA+FC,cAA/F,EAA+GC,cAA/G,EAA+HC,WAA/H,EAA4I/+D,OAA5I,EAAqJg/D,eAArJ,EAAsKvkB,MAAtK,CAAP;AACH;;AACD,MAAMwkB,+BAAN,CAAsC;EAClCC,cAAc,CAAChP,MAAD,EAASyO,WAAT,EAAsB5E,GAAtB,EAA2B6E,cAA3B,EAA2CC,cAA3C,EAA2DC,cAA3D,EAA2EC,WAA3E,EAAwF/+D,OAAxF,EAAiGg/D,eAAjG,EAAkHvkB,MAAM,GAAG,EAA3H,EAA+H;IACzIukB,eAAe,GAAGA,eAAe,IAAI,IAAIjB,qBAAJ,EAArC;IACA,MAAM3vD,OAAO,GAAG,IAAI+wD,wBAAJ,CAA6BjP,MAA7B,EAAqCyO,WAArC,EAAkDK,eAAlD,EAAmEJ,cAAnE,EAAmFC,cAAnF,EAAmGpkB,MAAnG,EAA2G,EAA3G,CAAhB;IACArsC,OAAO,CAACpO,OAAR,GAAkBA,OAAlB;IACA,MAAM+4C,KAAK,GAAG/4C,OAAO,CAAC+4C,KAAR,GAAgBob,kBAAkB,CAACn0D,OAAO,CAAC+4C,KAAT,CAAlC,GAAoD,CAAlE;IACA3qC,OAAO,CAACgxD,eAAR,CAAwBC,aAAxB,CAAsCtmB,KAAtC;IACA3qC,OAAO,CAACgxD,eAAR,CAAwB5iC,SAAxB,CAAkC,CAACsiC,cAAD,CAAlC,EAAoD,IAApD,EAA0D1wD,OAAO,CAACqsC,MAAlE,EAA0Ez6C,OAA1E;IACA62D,YAAY,CAAC,IAAD,EAAOkD,GAAP,EAAY3rD,OAAZ,CAAZ,CAPyI,CAQzI;;IACA,MAAMkxD,SAAS,GAAGlxD,OAAO,CAACkxD,SAAR,CAAkBp4E,MAAlB,CAAyBq4E,QAAQ,IAAIA,QAAQ,CAACC,iBAAT,EAArC,CAAlB,CATyI,CAUzI;IACA;IACA;IACA;;IACA,IAAIF,SAAS,CAACx5E,MAAV,IAAoBi5E,WAAW,CAACjsE,IAApC,EAA0C;MACtC,IAAI2sE,gBAAJ;;MACA,KAAK,IAAI55E,CAAC,GAAGy5E,SAAS,CAACx5E,MAAV,GAAmB,CAAhC,EAAmCD,CAAC,IAAI,CAAxC,EAA2CA,CAAC,EAA5C,EAAgD;QAC5C,MAAM05E,QAAQ,GAAGD,SAAS,CAACz5E,CAAD,CAA1B;;QACA,IAAI05E,QAAQ,CAACtyE,OAAT,KAAqB0xE,WAAzB,EAAsC;UAClCc,gBAAgB,GAAGF,QAAnB;UACA;QACH;MACJ;;MACD,IAAIE,gBAAgB,IAAI,CAACA,gBAAgB,CAACC,uBAAjB,EAAzB,EAAqE;QACjED,gBAAgB,CAACjjC,SAAjB,CAA2B,CAACuiC,WAAD,CAA3B,EAA0C,IAA1C,EAAgD3wD,OAAO,CAACqsC,MAAxD,EAAgEz6C,OAAhE;MACH;IACJ;;IACD,OAAOs/D,SAAS,CAACx5E,MAAV,GACHw5E,SAAS,CAAC3yE,GAAV,CAAc4yE,QAAQ,IAAIA,QAAQ,CAACL,cAAT,EAA1B,CADG,GAEH,CAACvB,yBAAyB,CAACgB,WAAD,EAAc,EAAd,EAAkB,EAAlB,EAAsB,EAAtB,EAA0B,CAA1B,EAA6B5lB,KAA7B,EAAoC,EAApC,EAAwC,KAAxC,CAA1B,CAFJ;EAGH;;EACDge,YAAY,CAACgD,GAAD,EAAM3rD,OAAN,EAAe,CACvB;EACH;;EACD4oD,UAAU,CAAC+C,GAAD,EAAM3rD,OAAN,EAAe,CACrB;EACH;;EACD6oD,eAAe,CAAC8C,GAAD,EAAM3rD,OAAN,EAAe,CAC1B;EACH;;EACDopD,iBAAiB,CAACuC,GAAD,EAAM3rD,OAAN,EAAe;IAC5B,MAAMuxD,mBAAmB,GAAGvxD,OAAO,CAAC4wD,eAAR,CAAwB92D,GAAxB,CAA4BkG,OAAO,CAACnhB,OAApC,CAA5B;;IACA,IAAI0yE,mBAAJ,EAAyB;MACrB,MAAMC,YAAY,GAAGxxD,OAAO,CAACyxD,gBAAR,CAAyB9F,GAAG,CAAC/5D,OAA7B,CAArB;MACA,MAAMg8D,SAAS,GAAG5tD,OAAO,CAACgxD,eAAR,CAAwBjF,WAA1C;;MACA,MAAM4B,OAAO,GAAG,KAAK+D,qBAAL,CAA2BH,mBAA3B,EAAgDC,YAAhD,EAA8DA,YAAY,CAAC5/D,OAA3E,CAAhB;;MACA,IAAIg8D,SAAS,IAAID,OAAjB,EAA0B;QACtB;QACA;QACA3tD,OAAO,CAAC2xD,wBAAR,CAAiChE,OAAjC;MACH;IACJ;;IACD3tD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDtC,eAAe,CAACsC,GAAD,EAAM3rD,OAAN,EAAe;IAC1B,MAAMwxD,YAAY,GAAGxxD,OAAO,CAACyxD,gBAAR,CAAyB9F,GAAG,CAAC/5D,OAA7B,CAArB;IACA4/D,YAAY,CAACG,wBAAb;;IACA,KAAKE,wBAAL,CAA8B,CAAClG,GAAG,CAAC/5D,OAAL,EAAc+5D,GAAG,CAACj0B,SAAJ,CAAc9lC,OAA5B,CAA9B,EAAoEoO,OAApE,EAA6EwxD,YAA7E;;IACA,KAAKrI,cAAL,CAAoBwC,GAAG,CAACj0B,SAAxB,EAAmC85B,YAAnC;IACAxxD,OAAO,CAAC2xD,wBAAR,CAAiCH,YAAY,CAACR,eAAb,CAA6BjF,WAA9D;IACA/rD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDkG,wBAAwB,CAACC,qBAAD,EAAwB9xD,OAAxB,EAAiCwxD,YAAjC,EAA+C;IACnE,KAAK,MAAMO,mBAAX,IAAkCD,qBAAlC,EAAyD;MACrD,MAAME,cAAc,GAAGD,mBAAmB,EAAEpnB,KAA5C;;MACA,IAAIqnB,cAAJ,EAAoB;QAChB,MAAMC,mBAAmB,GAAG,OAAOD,cAAP,KAA0B,QAA1B,GACxBA,cADwB,GAExBjM,kBAAkB,CAACgC,iBAAiB,CAACiK,cAAD,EAAiBD,mBAAmB,EAAE9mE,MAArB,IAA+B,EAAhD,EAAoD+U,OAAO,CAACqsC,MAA5D,CAAlB,CAFtB;QAGAmlB,YAAY,CAACP,aAAb,CAA2BgB,mBAA3B;MACH;IACJ;EACJ;;EACDP,qBAAqB,CAAC5B,YAAD,EAAe9vD,OAAf,EAAwBpO,OAAxB,EAAiC;IAClD,MAAMg8D,SAAS,GAAG5tD,OAAO,CAACgxD,eAAR,CAAwBjF,WAA1C;IACA,IAAIa,YAAY,GAAGgB,SAAnB,CAFkD,CAGlD;IACA;;IACA,MAAM5R,QAAQ,GAAGpqD,OAAO,CAACoqD,QAAR,IAAoB,IAApB,GAA2B+J,kBAAkB,CAACn0D,OAAO,CAACoqD,QAAT,CAA7C,GAAkE,IAAnF;IACA,MAAMrR,KAAK,GAAG/4C,OAAO,CAAC+4C,KAAR,IAAiB,IAAjB,GAAwBob,kBAAkB,CAACn0D,OAAO,CAAC+4C,KAAT,CAA1C,GAA4D,IAA1E;;IACA,IAAIqR,QAAQ,KAAK,CAAjB,EAAoB;MAChB8T,YAAY,CAAC72E,OAAb,CAAqBi5E,WAAW,IAAI;QAChC,MAAMC,kBAAkB,GAAGnyD,OAAO,CAACoyD,2BAAR,CAAoCF,WAApC,EAAiDlW,QAAjD,EAA2DrR,KAA3D,CAA3B;QACAiiB,YAAY,GACR3mE,IAAI,CAAC6iC,GAAL,CAAS8jC,YAAT,EAAuBuF,kBAAkB,CAACnW,QAAnB,GAA8BmW,kBAAkB,CAACxnB,KAAxE,CADJ;MAEH,CAJD;IAKH;;IACD,OAAOiiB,YAAP;EACH;;EACDzD,cAAc,CAACwC,GAAD,EAAM3rD,OAAN,EAAe;IACzBA,OAAO,CAACqyD,aAAR,CAAsB1G,GAAG,CAAC/5D,OAA1B,EAAmC,IAAnC;IACA62D,YAAY,CAAC,IAAD,EAAOkD,GAAG,CAACj0B,SAAX,EAAsB13B,OAAtB,CAAZ;IACAA,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACD7C,aAAa,CAAC6C,GAAD,EAAM3rD,OAAN,EAAe;IACxB,MAAMsyD,eAAe,GAAGtyD,OAAO,CAACsyD,eAAhC;IACA,IAAIt6C,GAAG,GAAGhY,OAAV;IACA,MAAMpO,OAAO,GAAG+5D,GAAG,CAAC/5D,OAApB;;IACA,IAAIA,OAAO,KAAKA,OAAO,CAAC3G,MAAR,IAAkB2G,OAAO,CAAC+4C,KAA/B,CAAX,EAAkD;MAC9C3yB,GAAG,GAAGhY,OAAO,CAACyxD,gBAAR,CAAyB7/D,OAAzB,CAAN;MACAomB,GAAG,CAAC25C,wBAAJ;;MACA,IAAI//D,OAAO,CAAC+4C,KAAR,IAAiB,IAArB,EAA2B;QACvB,IAAI3yB,GAAG,CAAC45C,YAAJ,CAAiBx/D,IAAjB,IAAyB;QAAE;QAA/B,EAAkE;UAC9D4lB,GAAG,CAACg5C,eAAJ,CAAoBuB,qBAApB;UACAv6C,GAAG,CAAC45C,YAAJ,GAAmBY,0BAAnB;QACH;;QACD,MAAM7nB,KAAK,GAAGob,kBAAkB,CAACn0D,OAAO,CAAC+4C,KAAT,CAAhC;QACA3yB,GAAG,CAACi5C,aAAJ,CAAkBtmB,KAAlB;MACH;IACJ;;IACD,IAAIghB,GAAG,CAACvQ,KAAJ,CAAU1jE,MAAd,EAAsB;MAClBi0E,GAAG,CAACvQ,KAAJ,CAAUniE,OAAV,CAAkB2f,CAAC,IAAI6vD,YAAY,CAAC,IAAD,EAAO7vD,CAAP,EAAUof,GAAV,CAAnC,EADkB,CAElB;;MACAA,GAAG,CAACg5C,eAAJ,CAAoByB,qBAApB,GAHkB,CAIlB;MACA;MACA;;MACA,IAAIz6C,GAAG,CAACs6C,eAAJ,GAAsBA,eAA1B,EAA2C;QACvCt6C,GAAG,CAAC25C,wBAAJ;MACH;IACJ;;IACD3xD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACD5C,UAAU,CAAC4C,GAAD,EAAM3rD,OAAN,EAAe;IACrB,MAAM0yD,cAAc,GAAG,EAAvB;IACA,IAAI9F,YAAY,GAAG5sD,OAAO,CAACgxD,eAAR,CAAwBjF,WAA3C;IACA,MAAMphB,KAAK,GAAGghB,GAAG,CAAC/5D,OAAJ,IAAe+5D,GAAG,CAAC/5D,OAAJ,CAAY+4C,KAA3B,GAAmCob,kBAAkB,CAAC4F,GAAG,CAAC/5D,OAAJ,CAAY+4C,KAAb,CAArD,GAA2E,CAAzF;IACAghB,GAAG,CAACvQ,KAAJ,CAAUniE,OAAV,CAAkB2f,CAAC,IAAI;MACnB,MAAM44D,YAAY,GAAGxxD,OAAO,CAACyxD,gBAAR,CAAyB9F,GAAG,CAAC/5D,OAA7B,CAArB;;MACA,IAAI+4C,KAAJ,EAAW;QACP6mB,YAAY,CAACP,aAAb,CAA2BtmB,KAA3B;MACH;;MACD8d,YAAY,CAAC,IAAD,EAAO7vD,CAAP,EAAU44D,YAAV,CAAZ;MACA5E,YAAY,GAAG3mE,IAAI,CAAC6iC,GAAL,CAAS8jC,YAAT,EAAuB4E,YAAY,CAACR,eAAb,CAA6BjF,WAApD,CAAf;MACA2G,cAAc,CAAC/3E,IAAf,CAAoB62E,YAAY,CAACR,eAAjC;IACH,CARD,EAJqB,CAarB;IACA;IACA;;IACA0B,cAAc,CAACz5E,OAAf,CAAuBk4E,QAAQ,IAAInxD,OAAO,CAACgxD,eAAR,CAAwB2B,4BAAxB,CAAqDxB,QAArD,CAAnC;IACAnxD,OAAO,CAAC2xD,wBAAR,CAAiC/E,YAAjC;IACA5sD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDiH,YAAY,CAACjH,GAAD,EAAM3rD,OAAN,EAAe;IACvB,IAAI2rD,GAAG,CAAC2D,OAAR,EAAiB;MACb,MAAMF,QAAQ,GAAGzD,GAAG,CAACyD,QAArB;MACA,MAAMyD,WAAW,GAAG7yD,OAAO,CAAC/U,MAAR,GAAiB88D,iBAAiB,CAACqH,QAAD,EAAWpvD,OAAO,CAAC/U,MAAnB,EAA2B+U,OAAO,CAACqsC,MAAnC,CAAlC,GAA+E+iB,QAAnG;MACA,OAAOnJ,aAAa,CAAC4M,WAAD,EAAc7yD,OAAO,CAACqsC,MAAtB,CAApB;IACH,CAJD,MAKK;MACD,OAAO;QAAE2P,QAAQ,EAAE2P,GAAG,CAAC3P,QAAhB;QAA0BrR,KAAK,EAAEghB,GAAG,CAAChhB,KAArC;QAA4Cua,MAAM,EAAEyG,GAAG,CAACzG;MAAxD,CAAP;IACH;EACJ;;EACD8D,YAAY,CAAC2C,GAAD,EAAM3rD,OAAN,EAAe;IACvB,MAAMm7C,OAAO,GAAGn7C,OAAO,CAACgtD,qBAAR,GAAgC,KAAK4F,YAAL,CAAkBjH,GAAG,CAACxQ,OAAtB,EAA+Bn7C,OAA/B,CAAhD;;IACA,MAAMmxD,QAAQ,GAAGnxD,OAAO,CAACgxD,eAAzB;;IACA,IAAI7V,OAAO,CAACxQ,KAAZ,EAAmB;MACf3qC,OAAO,CAAC8yD,aAAR,CAAsB3X,OAAO,CAACxQ,KAA9B;MACAwmB,QAAQ,CAACoB,qBAAT;IACH;;IACD,MAAMntE,KAAK,GAAGumE,GAAG,CAACvmE,KAAlB;;IACA,IAAIA,KAAK,CAACgN,IAAN,IAAc;IAAE;IAApB,EAA2D;MACvD,KAAK62D,cAAL,CAAoB7jE,KAApB,EAA2B4a,OAA3B;IACH,CAFD,MAGK;MACDA,OAAO,CAAC8yD,aAAR,CAAsB3X,OAAO,CAACa,QAA9B;MACA,KAAKkN,UAAL,CAAgB9jE,KAAhB,EAAuB4a,OAAvB;MACAmxD,QAAQ,CAACsB,qBAAT;IACH;;IACDzyD,OAAO,CAACgtD,qBAAR,GAAgC,IAAhC;IACAhtD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDzC,UAAU,CAACyC,GAAD,EAAM3rD,OAAN,EAAe;IACrB,MAAMmxD,QAAQ,GAAGnxD,OAAO,CAACgxD,eAAzB;IACA,MAAM7V,OAAO,GAAGn7C,OAAO,CAACgtD,qBAAxB,CAFqB,CAGrB;IACA;;IACA,IAAI,CAAC7R,OAAD,IAAYgW,QAAQ,CAAC4B,yBAAT,EAAhB,EAAsD;MAClD5B,QAAQ,CAAC6B,YAAT;IACH;;IACD,MAAM9N,MAAM,GAAI/J,OAAO,IAAIA,OAAO,CAAC+J,MAApB,IAA+ByG,GAAG,CAACzG,MAAlD;;IACA,IAAIyG,GAAG,CAACyB,WAAR,EAAqB;MACjB+D,QAAQ,CAAC8B,cAAT,CAAwB/N,MAAxB;IACH,CAFD,MAGK;MACDiM,QAAQ,CAAC/iC,SAAT,CAAmBu9B,GAAG,CAACxrE,MAAvB,EAA+B+kE,MAA/B,EAAuCllD,OAAO,CAACqsC,MAA/C,EAAuDrsC,OAAO,CAACpO,OAA/D;IACH;;IACDoO,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACD1C,cAAc,CAAC0C,GAAD,EAAM3rD,OAAN,EAAe;IACzB,MAAMgtD,qBAAqB,GAAGhtD,OAAO,CAACgtD,qBAAtC;IACA,MAAMY,SAAS,GAAI5tD,OAAO,CAACgxD,eAAT,CAA0BhV,QAA5C;IACA,MAAMA,QAAQ,GAAGgR,qBAAqB,CAAChR,QAAvC;IACA,MAAMwV,YAAY,GAAGxxD,OAAO,CAACyxD,gBAAR,EAArB;IACA,MAAMyB,aAAa,GAAG1B,YAAY,CAACR,eAAnC;IACAkC,aAAa,CAAChO,MAAd,GAAuB8H,qBAAqB,CAAC9H,MAA7C;IACAyG,GAAG,CAACxrE,MAAJ,CAAWlH,OAAX,CAAmB02C,IAAI,IAAI;MACvB,MAAM9kC,MAAM,GAAG8kC,IAAI,CAAC9kC,MAAL,IAAe,CAA9B;MACAqoE,aAAa,CAACC,WAAd,CAA0BtoE,MAAM,GAAGmxD,QAAnC;MACAkX,aAAa,CAAC9kC,SAAd,CAAwBuB,IAAI,CAACxvC,MAA7B,EAAqCwvC,IAAI,CAACu1B,MAA1C,EAAkDllD,OAAO,CAACqsC,MAA1D,EAAkErsC,OAAO,CAACpO,OAA1E;MACAshE,aAAa,CAACT,qBAAd;IACH,CALD,EAPyB,CAazB;IACA;;IACAzyD,OAAO,CAACgxD,eAAR,CAAwB2B,4BAAxB,CAAqDO,aAArD,EAfyB,CAgBzB;IACA;;IACAlzD,OAAO,CAAC2xD,wBAAR,CAAiC/D,SAAS,GAAG5R,QAA7C;IACAh8C,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDrC,UAAU,CAACqC,GAAD,EAAM3rD,OAAN,EAAe;IACrB;IACA;IACA,MAAM4tD,SAAS,GAAG5tD,OAAO,CAACgxD,eAAR,CAAwBjF,WAA1C;IACA,MAAMn6D,OAAO,GAAI+5D,GAAG,CAAC/5D,OAAJ,IAAe,EAAhC;IACA,MAAM+4C,KAAK,GAAG/4C,OAAO,CAAC+4C,KAAR,GAAgBob,kBAAkB,CAACn0D,OAAO,CAAC+4C,KAAT,CAAlC,GAAoD,CAAlE;;IACA,IAAIA,KAAK,KACJ3qC,OAAO,CAAC4xD,YAAR,CAAqBx/D,IAArB,KAA8B;IAAE;IAAhC,GACIw7D,SAAS,IAAI,CAAb,IAAkB5tD,OAAO,CAACgxD,eAAR,CAAwB+B,yBAAxB,EAFlB,CAAT,EAEkF;MAC9E/yD,OAAO,CAACgxD,eAAR,CAAwBuB,qBAAxB;MACAvyD,OAAO,CAAC4xD,YAAR,GAAuBY,0BAAvB;IACH;;IACD,IAAI5F,YAAY,GAAGgB,SAAnB;IACA,MAAMwF,IAAI,GAAGpzD,OAAO,CAACwkD,WAAR,CAAoBmH,GAAG,CAACtwC,QAAxB,EAAkCswC,GAAG,CAACoD,gBAAtC,EAAwDpD,GAAG,CAAC4C,KAA5D,EAAmE5C,GAAG,CAACiD,WAAvE,EAAoFh9D,OAAO,CAACk9D,QAAR,GAAmB,IAAnB,GAA0B,KAA9G,EAAqH9uD,OAAO,CAACqsC,MAA7H,CAAb;IACArsC,OAAO,CAACqzD,iBAAR,GAA4BD,IAAI,CAAC17E,MAAjC;IACA,IAAI47E,mBAAmB,GAAG,IAA1B;IACAF,IAAI,CAACn6E,OAAL,CAAa,CAAC4F,OAAD,EAAUpH,CAAV,KAAgB;MACzBuoB,OAAO,CAACuzD,iBAAR,GAA4B97E,CAA5B;MACA,MAAM+5E,YAAY,GAAGxxD,OAAO,CAACyxD,gBAAR,CAAyB9F,GAAG,CAAC/5D,OAA7B,EAAsC/S,OAAtC,CAArB;;MACA,IAAI8rD,KAAJ,EAAW;QACP6mB,YAAY,CAACP,aAAb,CAA2BtmB,KAA3B;MACH;;MACD,IAAI9rD,OAAO,KAAKmhB,OAAO,CAACnhB,OAAxB,EAAiC;QAC7By0E,mBAAmB,GAAG9B,YAAY,CAACR,eAAnC;MACH;;MACDvI,YAAY,CAAC,IAAD,EAAOkD,GAAG,CAACj0B,SAAX,EAAsB85B,YAAtB,CAAZ,CATyB,CAUzB;MACA;MACA;;MACAA,YAAY,CAACR,eAAb,CAA6ByB,qBAA7B;MACA,MAAM9E,OAAO,GAAG6D,YAAY,CAACR,eAAb,CAA6BjF,WAA7C;MACAa,YAAY,GAAG3mE,IAAI,CAAC6iC,GAAL,CAAS8jC,YAAT,EAAuBe,OAAvB,CAAf;IACH,CAhBD;IAiBA3tD,OAAO,CAACuzD,iBAAR,GAA4B,CAA5B;IACAvzD,OAAO,CAACqzD,iBAAR,GAA4B,CAA5B;IACArzD,OAAO,CAAC2xD,wBAAR,CAAiC/E,YAAjC;;IACA,IAAI0G,mBAAJ,EAAyB;MACrBtzD,OAAO,CAACgxD,eAAR,CAAwB2B,4BAAxB,CAAqDW,mBAArD;MACAtzD,OAAO,CAACgxD,eAAR,CAAwBuB,qBAAxB;IACH;;IACDvyD,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB;EACH;;EACDpC,YAAY,CAACoC,GAAD,EAAM3rD,OAAN,EAAe;IACvB,MAAMwzD,aAAa,GAAGxzD,OAAO,CAACwzD,aAA9B;IACA,MAAMC,EAAE,GAAGzzD,OAAO,CAACgxD,eAAnB;IACA,MAAM7V,OAAO,GAAGwQ,GAAG,CAACxQ,OAApB;IACA,MAAMa,QAAQ,GAAG/1D,IAAI,CAACytE,GAAL,CAASvY,OAAO,CAACa,QAAjB,CAAjB;IACA,MAAM2X,OAAO,GAAG3X,QAAQ,IAAIh8C,OAAO,CAACqzD,iBAAR,GAA4B,CAAhC,CAAxB;IACA,IAAI1oB,KAAK,GAAGqR,QAAQ,GAAGh8C,OAAO,CAACuzD,iBAA/B;IACA,IAAIK,kBAAkB,GAAGzY,OAAO,CAACa,QAAR,GAAmB,CAAnB,GAAuB,SAAvB,GAAmCb,OAAO,CAAC+J,MAApE;;IACA,QAAQ0O,kBAAR;MACI,KAAK,SAAL;QACIjpB,KAAK,GAAGgpB,OAAO,GAAGhpB,KAAlB;QACA;;MACJ,KAAK,MAAL;QACIA,KAAK,GAAG6oB,aAAa,CAACK,kBAAtB;QACA;IANR;;IAQA,MAAM1C,QAAQ,GAAGnxD,OAAO,CAACgxD,eAAzB;;IACA,IAAIrmB,KAAJ,EAAW;MACPwmB,QAAQ,CAACF,aAAT,CAAuBtmB,KAAvB;IACH;;IACD,MAAMmpB,YAAY,GAAG3C,QAAQ,CAACpF,WAA9B;IACAtD,YAAY,CAAC,IAAD,EAAOkD,GAAG,CAACj0B,SAAX,EAAsB13B,OAAtB,CAAZ;IACAA,OAAO,CAAC4xD,YAAR,GAAuBjG,GAAvB,CAtBuB,CAuBvB;IACA;IACA;IACA;;IACA6H,aAAa,CAACK,kBAAd,GACKJ,EAAE,CAAC1H,WAAH,GAAiB+H,YAAlB,IAAmCL,EAAE,CAAC7F,SAAH,GAAe4F,aAAa,CAACxC,eAAd,CAA8BpD,SAAhF,CADJ;EAEH;;AA1RiC;;AA4RtC,MAAM4E,0BAA0B,GAAG,EAAnC;;AACA,MAAMzB,wBAAN,CAA+B;EAC3B/5E,WAAW,CAACw0E,OAAD,EAAU3sE,OAAV,EAAmB+xE,eAAnB,EAAoCmD,eAApC,EAAqDC,eAArD,EAAsE3nB,MAAtE,EAA8E6kB,SAA9E,EAAyF+C,eAAzF,EAA0G;IACjH,KAAKzI,OAAL,GAAeA,OAAf;IACA,KAAK3sE,OAAL,GAAeA,OAAf;IACA,KAAK+xE,eAAL,GAAuBA,eAAvB;IACA,KAAKmD,eAAL,GAAuBA,eAAvB;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAK3nB,MAAL,GAAcA,MAAd;IACA,KAAK6kB,SAAL,GAAiBA,SAAjB;IACA,KAAKsC,aAAL,GAAqB,IAArB;IACA,KAAKxG,qBAAL,GAA6B,IAA7B;IACA,KAAK4E,YAAL,GAAoBY,0BAApB;IACA,KAAKF,eAAL,GAAuB,CAAvB;IACA,KAAK1gE,OAAL,GAAe,EAAf;IACA,KAAK2hE,iBAAL,GAAyB,CAAzB;IACA,KAAKF,iBAAL,GAAyB,CAAzB;IACA,KAAKQ,kBAAL,GAA0B,CAA1B;IACA,KAAK7C,eAAL,GAAuBiD,eAAe,IAAI,IAAIC,eAAJ,CAAoB,KAAK1I,OAAzB,EAAkC3sE,OAAlC,EAA2C,CAA3C,CAA1C;IACAqyE,SAAS,CAACv2E,IAAV,CAAe,KAAKq2E,eAApB;EACH;;EACS,IAAN/lE,MAAM,GAAG;IACT,OAAO,KAAK2G,OAAL,CAAa3G,MAApB;EACH;;EACDonE,aAAa,CAACzgE,OAAD,EAAUuiE,YAAV,EAAwB;IACjC,IAAI,CAACviE,OAAL,EACI;IACJ,MAAMwiE,UAAU,GAAGxiE,OAAnB;IACA,IAAIyiE,eAAe,GAAG,KAAKziE,OAA3B,CAJiC,CAKjC;;IACA,IAAIwiE,UAAU,CAACpY,QAAX,IAAuB,IAA3B,EAAiC;MAC7BqY,eAAe,CAACrY,QAAhB,GAA2B+J,kBAAkB,CAACqO,UAAU,CAACpY,QAAZ,CAA7C;IACH;;IACD,IAAIoY,UAAU,CAACzpB,KAAX,IAAoB,IAAxB,EAA8B;MAC1B0pB,eAAe,CAAC1pB,KAAhB,GAAwBob,kBAAkB,CAACqO,UAAU,CAACzpB,KAAZ,CAA1C;IACH;;IACD,MAAM2pB,SAAS,GAAGF,UAAU,CAACnpE,MAA7B;;IACA,IAAIqpE,SAAJ,EAAe;MACX,IAAIC,cAAc,GAAGF,eAAe,CAACppE,MAArC;;MACA,IAAI,CAACspE,cAAL,EAAqB;QACjBA,cAAc,GAAG,KAAK3iE,OAAL,CAAa3G,MAAb,GAAsB,EAAvC;MACH;;MACDlT,MAAM,CAACY,IAAP,CAAY27E,SAAZ,EAAuBr7E,OAAvB,CAA+BgM,IAAI,IAAI;QACnC,IAAI,CAACkvE,YAAD,IAAiB,CAACI,cAAc,CAACxmD,cAAf,CAA8B9oB,IAA9B,CAAtB,EAA2D;UACvDsvE,cAAc,CAACtvE,IAAD,CAAd,GAAuB8iE,iBAAiB,CAACuM,SAAS,CAACrvE,IAAD,CAAV,EAAkBsvE,cAAlB,EAAkC,KAAKloB,MAAvC,CAAxC;QACH;MACJ,CAJD;IAKH;EACJ;;EACDmoB,YAAY,GAAG;IACX,MAAM5iE,OAAO,GAAG,EAAhB;;IACA,IAAI,KAAKA,OAAT,EAAkB;MACd,MAAM6iE,SAAS,GAAG,KAAK7iE,OAAL,CAAa3G,MAA/B;;MACA,IAAIwpE,SAAJ,EAAe;QACX,MAAMxpE,MAAM,GAAG2G,OAAO,CAAC,QAAD,CAAP,GAAoB,EAAnC;QACA7Z,MAAM,CAACY,IAAP,CAAY87E,SAAZ,EAAuBx7E,OAAvB,CAA+BgM,IAAI,IAAI;UACnCgG,MAAM,CAAChG,IAAD,CAAN,GAAewvE,SAAS,CAACxvE,IAAD,CAAxB;QACH,CAFD;MAGH;IACJ;;IACD,OAAO2M,OAAP;EACH;;EACD6/D,gBAAgB,CAAC7/D,OAAO,GAAG,IAAX,EAAiB/S,OAAjB,EAA0B61E,OAA1B,EAAmC;IAC/C,MAAMn9E,MAAM,GAAGsH,OAAO,IAAI,KAAKA,OAA/B;IACA,MAAMmhB,OAAO,GAAG,IAAI+wD,wBAAJ,CAA6B,KAAKvF,OAAlC,EAA2Cj0E,MAA3C,EAAmD,KAAKq5E,eAAxD,EAAyE,KAAKmD,eAA9E,EAA+F,KAAKC,eAApG,EAAqH,KAAK3nB,MAA1H,EAAkI,KAAK6kB,SAAvI,EAAkJ,KAAKF,eAAL,CAAqB2D,IAArB,CAA0Bp9E,MAA1B,EAAkCm9E,OAAO,IAAI,CAA7C,CAAlJ,CAAhB;IACA10D,OAAO,CAAC4xD,YAAR,GAAuB,KAAKA,YAA5B;IACA5xD,OAAO,CAACgtD,qBAAR,GAAgC,KAAKA,qBAArC;IACAhtD,OAAO,CAACpO,OAAR,GAAkB,KAAK4iE,YAAL,EAAlB;IACAx0D,OAAO,CAACqyD,aAAR,CAAsBzgE,OAAtB;IACAoO,OAAO,CAACuzD,iBAAR,GAA4B,KAAKA,iBAAjC;IACAvzD,OAAO,CAACqzD,iBAAR,GAA4B,KAAKA,iBAAjC;IACArzD,OAAO,CAACwzD,aAAR,GAAwB,IAAxB;IACA,KAAKlB,eAAL;IACA,OAAOtyD,OAAP;EACH;;EACD2xD,wBAAwB,CAAC+C,OAAD,EAAU;IAC9B,KAAK9C,YAAL,GAAoBY,0BAApB;IACA,KAAKxB,eAAL,GAAuB,KAAKA,eAAL,CAAqB2D,IAArB,CAA0B,KAAK91E,OAA/B,EAAwC61E,OAAxC,CAAvB;IACA,KAAKxD,SAAL,CAAev2E,IAAf,CAAoB,KAAKq2E,eAAzB;IACA,OAAO,KAAKA,eAAZ;EACH;;EACDoB,2BAA2B,CAACF,WAAD,EAAclW,QAAd,EAAwBrR,KAAxB,EAA+B;IACtD,MAAMiqB,cAAc,GAAG;MACnB5Y,QAAQ,EAAEA,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BkW,WAAW,CAAClW,QADjC;MAEnBrR,KAAK,EAAE,KAAKqmB,eAAL,CAAqBjF,WAArB,IAAoCphB,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,CAA5D,IAAiEunB,WAAW,CAACvnB,KAFjE;MAGnBua,MAAM,EAAE;IAHW,CAAvB;IAKA,MAAM2P,OAAO,GAAG,IAAIC,kBAAJ,CAAuB,KAAKtJ,OAA5B,EAAqC0G,WAAW,CAACrzE,OAAjD,EAA0DqzE,WAAW,CAAC3W,SAAtE,EAAiF2W,WAAW,CAAC1C,aAA7F,EAA4G0C,WAAW,CAACzC,cAAxH,EAAwImF,cAAxI,EAAwJ1C,WAAW,CAAC6C,uBAApK,CAAhB;IACA,KAAK7D,SAAL,CAAev2E,IAAf,CAAoBk6E,OAApB;IACA,OAAOD,cAAP;EACH;;EACD9B,aAAa,CAAC5U,IAAD,EAAO;IAChB,KAAK8S,eAAL,CAAqBmC,WAArB,CAAiC,KAAKnC,eAAL,CAAqBhV,QAArB,GAAgCkC,IAAjE;EACH;;EACD+S,aAAa,CAACtmB,KAAD,EAAQ;IACjB;IACA,IAAIA,KAAK,GAAG,CAAZ,EAAe;MACX,KAAKqmB,eAAL,CAAqBC,aAArB,CAAmCtmB,KAAnC;IACH;EACJ;;EACD6Z,WAAW,CAACnpC,QAAD,EAAW0zC,gBAAX,EAA6BR,KAA7B,EAAoCK,WAApC,EAAiDE,QAAjD,EAA2DziB,MAA3D,EAAmE;IAC1E,IAAInoD,OAAO,GAAG,EAAd;;IACA,IAAI0qE,WAAJ,EAAiB;MACb1qE,OAAO,CAACvJ,IAAR,CAAa,KAAKkE,OAAlB;IACH;;IACD,IAAIw8B,QAAQ,CAAC3jC,MAAT,GAAkB,CAAtB,EAAyB;MAAE;MACvB2jC,QAAQ,GAAGA,QAAQ,CAACn0B,OAAT,CAAiBipE,iBAAjB,EAAoC,MAAM,KAAK4D,eAA/C,CAAX;MACA14C,QAAQ,GAAGA,QAAQ,CAACn0B,OAAT,CAAiBmpE,iBAAjB,EAAoC,MAAM,KAAK2D,eAA/C,CAAX;MACA,MAAMtQ,KAAK,GAAG6K,KAAK,IAAI,CAAvB;;MACA,IAAIyG,QAAQ,GAAG,KAAKxJ,OAAL,CAAa55C,KAAb,CAAmB,KAAK/yB,OAAxB,EAAiCw8B,QAAjC,EAA2CqoC,KAA3C,CAAf;;MACA,IAAI6K,KAAK,KAAK,CAAd,EAAiB;QACbyG,QAAQ,GAAGzG,KAAK,GAAG,CAAR,GAAYyG,QAAQ,CAACluE,KAAT,CAAekuE,QAAQ,CAACt9E,MAAT,GAAkB62E,KAAjC,EAAwCyG,QAAQ,CAACt9E,MAAjD,CAAZ,GACPs9E,QAAQ,CAACluE,KAAT,CAAe,CAAf,EAAkBynE,KAAlB,CADJ;MAEH;;MACDrqE,OAAO,CAACvJ,IAAR,CAAa,GAAGq6E,QAAhB;IACH;;IACD,IAAI,CAAClG,QAAD,IAAa5qE,OAAO,CAACxM,MAAR,IAAkB,CAAnC,EAAsC;MAClC20D,MAAM,CAAC1xD,IAAP,CAAY4lE,YAAY,CAACwO,gBAAD,CAAxB;IACH;;IACD,OAAO7qE,OAAP;EACH;;AAvH0B;;AAyH/B,MAAMgwE,eAAN,CAAsB;EAClBl9E,WAAW,CAACw0E,OAAD,EAAU3sE,OAAV,EAAmB+uE,SAAnB,EAA8BqH,4BAA9B,EAA4D;IACnE,KAAKzJ,OAAL,GAAeA,OAAf;IACA,KAAK3sE,OAAL,GAAeA,OAAf;IACA,KAAK+uE,SAAL,GAAiBA,SAAjB;IACA,KAAKqH,4BAAL,GAAoCA,4BAApC;IACA,KAAKjZ,QAAL,GAAgB,CAAhB;IACA,KAAKkZ,iBAAL,GAAyB,IAAIrjC,GAAJ,EAAzB;IACA,KAAKsjC,gBAAL,GAAwB,IAAItjC,GAAJ,EAAxB;IACA,KAAKujC,UAAL,GAAkB,IAAIvjC,GAAJ,EAAlB;IACA,KAAKwjC,aAAL,GAAqB,IAAIxjC,GAAJ,EAArB;IACA,KAAKyjC,oBAAL,GAA4B,IAAIzjC,GAAJ,EAA5B;IACA,KAAK0jC,cAAL,GAAsB,IAAI1jC,GAAJ,EAAtB;IACA,KAAK2jC,SAAL,GAAiB,IAAI3jC,GAAJ,EAAjB;IACA,KAAK4jC,yBAAL,GAAiC,IAAjC;;IACA,IAAI,CAAC,KAAKR,4BAAV,EAAwC;MACpC,KAAKA,4BAAL,GAAoC,IAAIpjC,GAAJ,EAApC;IACH;;IACD,KAAK6jC,qBAAL,GAA6B,KAAKT,4BAAL,CAAkCn7D,GAAlC,CAAsCjb,OAAtC,CAA7B;;IACA,IAAI,CAAC,KAAK62E,qBAAV,EAAiC;MAC7B,KAAKA,qBAAL,GAA6B,KAAKJ,oBAAlC;;MACA,KAAKL,4BAAL,CAAkCx1D,GAAlC,CAAsC5gB,OAAtC,EAA+C,KAAKy2E,oBAApD;IACH;;IACD,KAAKK,aAAL;EACH;;EACDvE,iBAAiB,GAAG;IAChB,QAAQ,KAAKgE,UAAL,CAAgB1wE,IAAxB;MACI,KAAK,CAAL;QACI,OAAO,KAAP;;MACJ,KAAK,CAAL;QACI,OAAO,KAAKquE,yBAAL,EAAP;;MACJ;QACI,OAAO,IAAP;IANR;EAQH;;EACDA,yBAAyB,GAAG;IACxB,OAAO,KAAKoC,gBAAL,CAAsBzwE,IAAtB,GAA6B,CAApC;EACH;;EACc,IAAXqnE,WAAW,GAAG;IACd,OAAO,KAAK6B,SAAL,GAAiB,KAAK5R,QAA7B;EACH;;EACDiV,aAAa,CAACtmB,KAAD,EAAQ;IACjB;IACA;IACA;IACA;IACA,MAAMirB,eAAe,GAAG,KAAKR,UAAL,CAAgB1wE,IAAhB,KAAyB,CAAzB,IAA8B,KAAK6wE,cAAL,CAAoB7wE,IAA1E;;IACA,IAAI,KAAKs3D,QAAL,IAAiB4Z,eAArB,EAAsC;MAClC,KAAKzC,WAAL,CAAiB,KAAKpH,WAAL,GAAmBphB,KAApC;;MACA,IAAIirB,eAAJ,EAAqB;QACjB,KAAKrD,qBAAL;MACH;IACJ,CALD,MAMK;MACD,KAAK3E,SAAL,IAAkBjjB,KAAlB;IACH;EACJ;;EACDgqB,IAAI,CAAC91E,OAAD,EAAUktE,WAAV,EAAuB;IACvB,KAAK0G,qBAAL;IACA,OAAO,IAAIyB,eAAJ,CAAoB,KAAK1I,OAAzB,EAAkC3sE,OAAlC,EAA2CktE,WAAW,IAAI,KAAKA,WAA/D,EAA4E,KAAKkJ,4BAAjF,CAAP;EACH;;EACDU,aAAa,GAAG;IACZ,IAAI,KAAKR,gBAAT,EAA2B;MACvB,KAAKD,iBAAL,GAAyB,KAAKC,gBAA9B;IACH;;IACD,KAAKA,gBAAL,GAAwB,KAAKC,UAAL,CAAgBt7D,GAAhB,CAAoB,KAAKkiD,QAAzB,CAAxB;;IACA,IAAI,CAAC,KAAKmZ,gBAAV,EAA4B;MACxB,KAAKA,gBAAL,GAAwB,IAAItjC,GAAJ,EAAxB;;MACA,KAAKujC,UAAL,CAAgB31D,GAAhB,CAAoB,KAAKu8C,QAAzB,EAAmC,KAAKmZ,gBAAxC;IACH;EACJ;;EACDnC,YAAY,GAAG;IACX,KAAKhX,QAAL,IAAiBiU,yBAAjB;;IACA,KAAK0F,aAAL;EACH;;EACDxC,WAAW,CAACjV,IAAD,EAAO;IACd,KAAKuU,qBAAL;IACA,KAAKzW,QAAL,GAAgBkC,IAAhB;;IACA,KAAKyX,aAAL;EACH;;EACDE,YAAY,CAACjjE,IAAD,EAAOta,KAAP,EAAc;IACtB,KAAKg9E,oBAAL,CAA0B71D,GAA1B,CAA8B7M,IAA9B,EAAoCta,KAApC;;IACA,KAAKo9E,qBAAL,CAA2Bj2D,GAA3B,CAA+B7M,IAA/B,EAAqCta,KAArC;;IACA,KAAK+8E,aAAL,CAAmB51D,GAAnB,CAAuB7M,IAAvB,EAA6B;MAAEsrD,IAAI,EAAE,KAAK6N,WAAb;MAA0BzzE;IAA1B,CAA7B;EACH;;EACDg5E,uBAAuB,GAAG;IACtB,OAAO,KAAKmE,yBAAL,KAAmC,KAAKN,gBAA/C;EACH;;EACDlC,cAAc,CAAC/N,MAAD,EAAS;IACnB,IAAIA,MAAJ,EAAY;MACR,KAAKgQ,iBAAL,CAAuBz1D,GAAvB,CAA2B,QAA3B,EAAqCylD,MAArC;IACH,CAHkB,CAInB;IACA;IACA;IACA;IACA;IACA;;;IACA,KAAK,IAAI,CAACtyD,IAAD,EAAOta,KAAP,CAAT,IAA0B,KAAKo9E,qBAA/B,EAAsD;MAClD,KAAKF,SAAL,CAAe/1D,GAAf,CAAmB7M,IAAnB,EAAyBta,KAAK,IAAI4iE,2DAAlC;;MACA,KAAKia,gBAAL,CAAsB11D,GAAtB,CAA0B7M,IAA1B,EAAgCsoD,2DAAhC;IACH;;IACD,KAAKua,yBAAL,GAAiC,KAAKN,gBAAtC;EACH;;EACD/mC,SAAS,CAAC6hB,KAAD,EAAQiV,MAAR,EAAgB7Y,MAAhB,EAAwBz6C,OAAxB,EAAiC;IACtC,IAAIszD,MAAJ,EAAY;MACR,KAAKgQ,iBAAL,CAAuBz1D,GAAvB,CAA2B,QAA3B,EAAqCylD,MAArC;IACH;;IACD,MAAMj6D,MAAM,GAAI2G,OAAO,IAAIA,OAAO,CAAC3G,MAApB,IAA+B,EAA9C;IACA,MAAM9K,MAAM,GAAG21E,aAAa,CAAC7lB,KAAD,EAAQ,KAAKylB,qBAAb,CAA5B;;IACA,KAAK,IAAI,CAAC9iE,IAAD,EAAOta,KAAP,CAAT,IAA0B6H,MAA1B,EAAkC;MAC9B,MAAMlB,GAAG,GAAG8oE,iBAAiB,CAACzvE,KAAD,EAAQ2S,MAAR,EAAgBohD,MAAhB,CAA7B;;MACA,KAAKkpB,cAAL,CAAoB91D,GAApB,CAAwB7M,IAAxB,EAA8B3T,GAA9B;;MACA,IAAI,CAAC,KAAKq2E,oBAAL,CAA0BhR,GAA1B,CAA8B1xD,IAA9B,CAAL,EAA0C;QACtC,KAAK4iE,SAAL,CAAe/1D,GAAf,CAAmB7M,IAAnB,EAAyB,KAAK8iE,qBAAL,CAA2B57D,GAA3B,CAA+BlH,IAA/B,KAAwCsoD,2DAAjE;MACH;;MACD,KAAK2a,YAAL,CAAkBjjE,IAAlB,EAAwB3T,GAAxB;IACH;EACJ;;EACDwzE,qBAAqB,GAAG;IACpB,IAAI,KAAK8C,cAAL,CAAoB7wE,IAApB,IAA4B,CAAhC,EACI;;IACJ,KAAK6wE,cAAL,CAAoBt8E,OAApB,CAA4B,CAACgG,GAAD,EAAM2T,IAAN,KAAe;MACvC,KAAKuiE,gBAAL,CAAsB11D,GAAtB,CAA0B7M,IAA1B,EAAgC3T,GAAhC;IACH,CAFD;;IAGA,KAAKs2E,cAAL,CAAoBvF,KAApB;;IACA,KAAKsF,oBAAL,CAA0Br8E,OAA1B,CAAkC,CAACgG,GAAD,EAAM2T,IAAN,KAAe;MAC7C,IAAI,CAAC,KAAKuiE,gBAAL,CAAsB7Q,GAAtB,CAA0B1xD,IAA1B,CAAL,EAAsC;QAClC,KAAKuiE,gBAAL,CAAsB11D,GAAtB,CAA0B7M,IAA1B,EAAgC3T,GAAhC;MACH;IACJ,CAJD;EAKH;;EACDszE,qBAAqB,GAAG;IACpB,KAAK,IAAI,CAAC3/D,IAAD,EAAO3T,GAAP,CAAT,IAAwB,KAAKq2E,oBAA7B,EAAmD;MAC/C,KAAKC,cAAL,CAAoB91D,GAApB,CAAwB7M,IAAxB,EAA8B3T,GAA9B;;MACA,KAAK42E,YAAL,CAAkBjjE,IAAlB,EAAwB3T,GAAxB;IACH;EACJ;;EACD82E,gBAAgB,GAAG;IACf,OAAO,KAAKX,UAAL,CAAgBt7D,GAAhB,CAAoB,KAAKkiD,QAAzB,CAAP;EACH;;EACa,IAAVjjB,UAAU,GAAG;IACb,MAAMA,UAAU,GAAG,EAAnB;;IACA,KAAK,IAAInmC,IAAT,IAAiB,KAAKuiE,gBAAtB,EAAwC;MACpCp8B,UAAU,CAACp+C,IAAX,CAAgBiY,IAAhB;IACH;;IACD,OAAOmmC,UAAP;EACH;;EACD45B,4BAA4B,CAACxB,QAAD,EAAW;IACnCA,QAAQ,CAACkE,aAAT,CAAuBp8E,OAAvB,CAA+B,CAAC+8E,QAAD,EAAWpjE,IAAX,KAAoB;MAC/C,MAAMqjE,QAAQ,GAAG,KAAKZ,aAAL,CAAmBv7D,GAAnB,CAAuBlH,IAAvB,CAAjB;;MACA,IAAI,CAACqjE,QAAD,IAAaD,QAAQ,CAAC9X,IAAT,GAAgB+X,QAAQ,CAAC/X,IAA1C,EAAgD;QAC5C,KAAK2X,YAAL,CAAkBjjE,IAAlB,EAAwBojE,QAAQ,CAAC19E,KAAjC;MACH;IACJ,CALD;EAMH;;EACDw4E,cAAc,GAAG;IACb,KAAK2B,qBAAL;IACA,MAAMjD,aAAa,GAAG,IAAI7N,GAAJ,EAAtB;IACA,MAAM8N,cAAc,GAAG,IAAI9N,GAAJ,EAAvB;IACA,MAAM1O,OAAO,GAAG,KAAKmiB,UAAL,CAAgB1wE,IAAhB,KAAyB,CAAzB,IAA8B,KAAKs3D,QAAL,KAAkB,CAAhE;IACA,IAAIka,cAAc,GAAG,EAArB;;IACA,KAAKd,UAAL,CAAgBn8E,OAAhB,CAAwB,CAACk9E,QAAD,EAAWjY,IAAX,KAAoB;MACxC,MAAMkY,aAAa,GAAGtP,UAAU,CAACqP,QAAD,EAAW,IAAItkC,GAAJ,EAAX,EAAsB,KAAK2jC,SAA3B,CAAhC;MACAY,aAAa,CAACn9E,OAAd,CAAsB,CAACX,KAAD,EAAQsa,IAAR,KAAiB;QACnC,IAAIta,KAAK,KAAKkmE,8DAAd,EAA0B;UACtBgR,aAAa,CAAC74D,GAAd,CAAkB/D,IAAlB;QACH,CAFD,MAGK,IAAIta,KAAK,KAAK4iE,2DAAd,EAA0B;UAC3BuU,cAAc,CAAC94D,GAAf,CAAmB/D,IAAnB;QACH;MACJ,CAPD;;MAQA,IAAI,CAACqgD,OAAL,EAAc;QACVmjB,aAAa,CAAC32D,GAAd,CAAkB,QAAlB,EAA4By+C,IAAI,GAAG,KAAKlC,QAAxC;MACH;;MACDka,cAAc,CAACv7E,IAAf,CAAoBy7E,aAApB;IACH,CAdD;;IAeA,MAAMC,QAAQ,GAAG7G,aAAa,CAAC9qE,IAAd,GAAqBujE,eAAe,CAACuH,aAAa,CAACrgE,MAAd,EAAD,CAApC,GAA+D,EAAhF;IACA,MAAMmnE,SAAS,GAAG7G,cAAc,CAAC/qE,IAAf,GAAsBujE,eAAe,CAACwH,cAAc,CAACtgE,MAAf,EAAD,CAArC,GAAiE,EAAnF,CAtBa,CAuBb;;IACA,IAAI8jD,OAAJ,EAAa;MACT,MAAMsjB,GAAG,GAAGL,cAAc,CAAC,CAAD,CAA1B;MACA,MAAMM,GAAG,GAAG,IAAI3kC,GAAJ,CAAQ0kC,GAAR,CAAZ;MACAA,GAAG,CAAC92D,GAAJ,CAAQ,QAAR,EAAkB,CAAlB;MACA+2D,GAAG,CAAC/2D,GAAJ,CAAQ,QAAR,EAAkB,CAAlB;MACAy2D,cAAc,GAAG,CAACK,GAAD,EAAMC,GAAN,CAAjB;IACH;;IACD,OAAOjH,yBAAyB,CAAC,KAAK1wE,OAAN,EAAeq3E,cAAf,EAA+BG,QAA/B,EAAyCC,SAAzC,EAAoD,KAAKta,QAAzD,EAAmE,KAAK4R,SAAxE,EAAmF,KAAK1I,MAAxF,EAAgG,KAAhG,CAAhC;EACH;;AA5LiB;;AA8LtB,MAAM4P,kBAAN,SAAiCZ,eAAjC,CAAiD;EAC7Cl9E,WAAW,CAAC8qE,MAAD,EAASjjE,OAAT,EAAkB08D,SAAlB,EAA6BiU,aAA7B,EAA4CC,cAA5C,EAA4DtU,OAA5D,EAAqEsb,wBAAwB,GAAG,KAAhG,EAAuG;IAC9G,MAAM3U,MAAN,EAAcjjE,OAAd,EAAuBs8D,OAAO,CAACxQ,KAA/B;IACA,KAAK4Q,SAAL,GAAiBA,SAAjB;IACA,KAAKiU,aAAL,GAAqBA,aAArB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKgH,wBAAL,GAAgCA,wBAAhC;IACA,KAAKtb,OAAL,GAAe;MAAEa,QAAQ,EAAEb,OAAO,CAACa,QAApB;MAA8BrR,KAAK,EAAEwQ,OAAO,CAACxQ,KAA7C;MAAoDua,MAAM,EAAE/J,OAAO,CAAC+J;IAApE,CAAf;EACH;;EACDkM,iBAAiB,GAAG;IAChB,OAAO,KAAK7V,SAAL,CAAe7jE,MAAf,GAAwB,CAA/B;EACH;;EACDo5E,cAAc,GAAG;IACb,IAAIvV,SAAS,GAAG,KAAKA,SAArB;IACA,IAAI;MAAE5Q,KAAF;MAASqR,QAAT;MAAmBkJ;IAAnB,IAA8B,KAAK/J,OAAvC;;IACA,IAAI,KAAKsb,wBAAL,IAAiC9rB,KAArC,EAA4C;MACxC,MAAM+rB,YAAY,GAAG,EAArB;MACA,MAAM/Z,SAAS,GAAGX,QAAQ,GAAGrR,KAA7B;MACA,MAAMgsB,WAAW,GAAGhsB,KAAK,GAAGgS,SAA5B,CAHwC,CAIxC;;MACA,MAAMia,gBAAgB,GAAG9P,UAAU,CAACvL,SAAS,CAAC,CAAD,CAAV,CAAnC;MACAqb,gBAAgB,CAACn3D,GAAjB,CAAqB,QAArB,EAA+B,CAA/B;MACAi3D,YAAY,CAAC/7E,IAAb,CAAkBi8E,gBAAlB;MACA,MAAMC,gBAAgB,GAAG/P,UAAU,CAACvL,SAAS,CAAC,CAAD,CAAV,CAAnC;MACAsb,gBAAgB,CAACp3D,GAAjB,CAAqB,QAArB,EAA+Bq3D,WAAW,CAACH,WAAD,CAA1C;MACAD,YAAY,CAAC/7E,IAAb,CAAkBk8E,gBAAlB;MACA;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MAIY;;MACA,MAAMtI,KAAK,GAAGhT,SAAS,CAAC7jE,MAAV,GAAmB,CAAjC;;MACA,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI82E,KAArB,EAA4B92E,CAAC,EAA7B,EAAiC;QAC7B,IAAI4qE,EAAE,GAAGyE,UAAU,CAACvL,SAAS,CAAC9jE,CAAD,CAAV,CAAnB;QACA,MAAMs/E,SAAS,GAAG1U,EAAE,CAACvoD,GAAH,CAAO,QAAP,CAAlB;QACA,MAAMk9D,cAAc,GAAGrsB,KAAK,GAAGosB,SAAS,GAAG/a,QAA3C;QACAqG,EAAE,CAAC5iD,GAAH,CAAO,QAAP,EAAiBq3D,WAAW,CAACE,cAAc,GAAGra,SAAlB,CAA5B;QACA+Z,YAAY,CAAC/7E,IAAb,CAAkB0nE,EAAlB;MACH,CAjCuC,CAkCxC;;;MACArG,QAAQ,GAAGW,SAAX;MACAhS,KAAK,GAAG,CAAR;MACAua,MAAM,GAAG,EAAT;MACA3J,SAAS,GAAGmb,YAAZ;IACH;;IACD,OAAOnH,yBAAyB,CAAC,KAAK1wE,OAAN,EAAe08D,SAAf,EAA0B,KAAKiU,aAA/B,EAA8C,KAAKC,cAAnD,EAAmEzT,QAAnE,EAA6ErR,KAA7E,EAAoFua,MAApF,EAA4F,IAA5F,CAAhC;EACH;;AAxD4C;;AA0DjD,SAAS4R,WAAT,CAAqBjsE,MAArB,EAA6BosE,aAAa,GAAG,CAA7C,EAAgD;EAC5C,MAAMC,IAAI,GAAGjxE,IAAI,CAACkxE,GAAL,CAAS,EAAT,EAAaF,aAAa,GAAG,CAA7B,CAAb;EACA,OAAOhxE,IAAI,CAACie,KAAL,CAAWrZ,MAAM,GAAGqsE,IAApB,IAA4BA,IAAnC;AACH;;AACD,SAASpB,aAAT,CAAuB7lB,KAAvB,EAA8BmnB,SAA9B,EAAyC;EACrC,MAAMj3E,MAAM,GAAG,IAAI0xC,GAAJ,EAAf;EACA,IAAIwlC,aAAJ;EACApnB,KAAK,CAACh3D,OAAN,CAAcqlB,KAAK,IAAI;IACnB,IAAIA,KAAK,KAAK,GAAd,EAAmB;MACf+4D,aAAa,GAAGA,aAAa,IAAID,SAAS,CAACz+E,IAAV,EAAjC;;MACA,KAAK,IAAIia,IAAT,IAAiBykE,aAAjB,EAAgC;QAC5Bl3E,MAAM,CAACsf,GAAP,CAAW7M,IAAX,EAAiBsoD,2DAAjB;MACH;IACJ,CALD,MAMK;MACD4L,UAAU,CAACxoD,KAAD,EAAQne,MAAR,CAAV;IACH;EACJ,CAVD;EAWA,OAAOA,MAAP;AACH;;AAED,MAAMm3E,SAAN,CAAgB;EACZtgF,WAAW,CAACw0E,OAAD,EAAUvb,KAAV,EAAiB;IACxB,KAAKub,OAAL,GAAeA,OAAf;IACA,MAAMnf,MAAM,GAAG,EAAf;IACA,MAAMqd,QAAQ,GAAG,EAAjB;IACA,MAAMiC,GAAG,GAAGN,iBAAiB,CAACG,OAAD,EAAUvb,KAAV,EAAiB5D,MAAjB,EAAyBqd,QAAzB,CAA7B;;IACA,IAAIrd,MAAM,CAAC30D,MAAX,EAAmB;MACf,MAAMgpE,gBAAgB,CAACrU,MAAD,CAAtB;IACH;;IACD,IAAIqd,QAAQ,CAAChyE,MAAb,EAAqB;MACjBkyE,cAAc,CAACF,QAAD,CAAd;IACH;;IACD,KAAK6N,aAAL,GAAqB5L,GAArB;EACH;;EACD6L,cAAc,CAAC34E,OAAD,EAAU6xE,cAAV,EAA0B+G,iBAA1B,EAA6C7lE,OAA7C,EAAsDg/D,eAAtD,EAAuE;IACjF,MAAM5oC,KAAK,GAAGruC,KAAK,CAACC,OAAN,CAAc82E,cAAd,IAAgC9J,eAAe,CAAC8J,cAAD,CAA/C,GACVA,cADJ;IAEA,MAAMgH,IAAI,GAAG/9E,KAAK,CAACC,OAAN,CAAc69E,iBAAd,IAAmC7Q,eAAe,CAAC6Q,iBAAD,CAAlD,GACTA,iBADJ;IAEA,MAAMprB,MAAM,GAAG,EAAf;IACAukB,eAAe,GAAGA,eAAe,IAAI,IAAIjB,qBAAJ,EAArC;IACA,MAAMtiE,MAAM,GAAGijE,uBAAuB,CAAC,KAAK9E,OAAN,EAAe3sE,OAAf,EAAwB,KAAK04E,aAA7B,EAA4C9R,eAA5C,EAA6DC,eAA7D,EAA8E19B,KAA9E,EAAqF0vC,IAArF,EAA2F9lE,OAA3F,EAAoGg/D,eAApG,EAAqHvkB,MAArH,CAAtC;;IACA,IAAIA,MAAM,CAAC30D,MAAX,EAAmB;MACf,MAAMipE,cAAc,CAACtU,MAAD,CAApB;IACH;;IACD,OAAOh/C,MAAP;EACH;;AA1BW;AA6BhB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMsqE,wBAAN,CAA+B;AAE/B;AACA;AACA;;;AACA,MAAMC,4BAAN,CAAmC;EAC/BlV,qBAAqB,CAACmV,YAAD,EAAexrB,MAAf,EAAuB;IACxC,OAAOwrB,YAAP;EACH;;EACDlV,mBAAmB,CAACtD,oBAAD,EAAuByY,kBAAvB,EAA2Cx/E,KAA3C,EAAkD+zD,MAAlD,EAA0D;IACzE,OAAO/zD,KAAP;EACH;;AAN8B;AASnC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy/E,oBAAoB,GAAG,IAAIpW,GAAJ,CAAQ,CACjC,OADiC,EAEjC,QAFiC,EAGjC,UAHiC,EAIjC,WAJiC,EAKjC,UALiC,EAMjC,WANiC,EAOjC,MAPiC,EAQjC,KARiC,EASjC,QATiC,EAUjC,OAViC,EAWjC,UAXiC,EAYjC,cAZiC,EAajC,eAbiC,EAcjC,YAdiC,EAejC,aAfiC,EAgBjC,eAhBiC,EAiBjC,cAjBiC,EAkBjC,WAlBiC,EAmBjC,YAnBiC,EAoBjC,cApBiC,EAqBjC,aArBiC,EAsBjC,cAtBiC,EAuBjC,aAvBiC,EAwBjC,gBAxBiC,EAyBjC,iBAzBiC,EA0BjC,kBA1BiC,EA2BjC,mBA3BiC,EA4BjC,YA5BiC,EA6BjC,aA7BiC,CAAR,CAA7B;;AA+BA,MAAMqW,4BAAN,SAA2CL,wBAA3C,CAAoE;EAChEjV,qBAAqB,CAACmV,YAAD,EAAexrB,MAAf,EAAuB;IACxC,OAAOkb,mBAAmB,CAACsQ,YAAD,CAA1B;EACH;;EACDlV,mBAAmB,CAACtD,oBAAD,EAAuByY,kBAAvB,EAA2Cx/E,KAA3C,EAAkD+zD,MAAlD,EAA0D;IACzE,IAAIhe,IAAI,GAAG,EAAX;IACA,MAAM4pC,MAAM,GAAG3/E,KAAK,CAACyB,QAAN,GAAiByN,IAAjB,EAAf;;IACA,IAAIuwE,oBAAoB,CAACzT,GAArB,CAAyBwT,kBAAzB,KAAgDx/E,KAAK,KAAK,CAA1D,IAA+DA,KAAK,KAAK,GAA7E,EAAkF;MAC9E,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;QAC3B+1C,IAAI,GAAG,IAAP;MACH,CAFD,MAGK;QACD,MAAM6pC,iBAAiB,GAAG5/E,KAAK,CAACsY,KAAN,CAAY,wBAAZ,CAA1B;;QACA,IAAIsnE,iBAAiB,IAAIA,iBAAiB,CAAC,CAAD,CAAjB,CAAqBxgF,MAArB,IAA+B,CAAxD,EAA2D;UACvD20D,MAAM,CAAC1xD,IAAP,CAAYykE,mBAAmB,CAACC,oBAAD,EAAuB/mE,KAAvB,CAA/B;QACH;MACJ;IACJ;;IACD,OAAO2/E,MAAM,GAAG5pC,IAAhB;EACH;;AAnB+D;AAsBpE;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8pC,2BAAT,CAAqCt5E,OAArC,EAA8CkkE,WAA9C,EAA2DC,SAA3D,EAAsEC,OAAtE,EAA+EmV,mBAA/E,EAAoGC,UAApG,EAAgHC,QAAhH,EAA0HpH,SAA1H,EAAqIqH,eAArI,EAAsJ/I,aAAtJ,EAAqKC,cAArK,EAAqL9S,SAArL,EAAgMtQ,MAAhM,EAAwM;EACpM,OAAO;IACHj6C,IAAI,EAAE;IAAE;IADL;IAEHvT,OAFG;IAGHkkE,WAHG;IAIHqV,mBAJG;IAKHpV,SALG;IAMHqV,UANG;IAOHpV,OAPG;IAQHqV,QARG;IASHpH,SATG;IAUHqH,eAVG;IAWH/I,aAXG;IAYHC,cAZG;IAaH9S,SAbG;IAcHtQ;EAdG,CAAP;AAgBH;;AAED,MAAMmsB,YAAY,GAAG,EAArB;;AACA,MAAMC,0BAAN,CAAiC;EAC7BzhF,WAAW,CAAC0hF,YAAD,EAAe/M,GAAf,EAAoBgN,YAApB,EAAkC;IACzC,KAAKD,YAAL,GAAoBA,YAApB;IACA,KAAK/M,GAAL,GAAWA,GAAX;IACA,KAAKgN,YAAL,GAAoBA,YAApB;EACH;;EACD/nE,KAAK,CAACgoE,YAAD,EAAeC,SAAf,EAA0Bh6E,OAA1B,EAAmCoM,MAAnC,EAA2C;IAC5C,OAAO6tE,yBAAyB,CAAC,KAAKnN,GAAL,CAASe,QAAV,EAAoBkM,YAApB,EAAkCC,SAAlC,EAA6Ch6E,OAA7C,EAAsDoM,MAAtD,CAAhC;EACH;;EACD8tE,WAAW,CAACC,SAAD,EAAY/tE,MAAZ,EAAoBohD,MAApB,EAA4B;IACnC,IAAI4sB,MAAM,GAAG,KAAKN,YAAL,CAAkB7+D,GAAlB,CAAsB,GAAtB,CAAb;;IACA,IAAIk/D,SAAS,KAAK1+E,SAAlB,EAA6B;MACzB2+E,MAAM,GAAG,KAAKN,YAAL,CAAkB7+D,GAAlB,CAAsBk/D,SAAS,EAAEj/E,QAAX,EAAtB,KAAgDk/E,MAAzD;IACH;;IACD,OAAOA,MAAM,GAAGA,MAAM,CAACF,WAAP,CAAmB9tE,MAAnB,EAA2BohD,MAA3B,CAAH,GAAwC,IAAIxa,GAAJ,EAArD;EACH;;EACD1jC,KAAK,CAAC2zD,MAAD,EAASjjE,OAAT,EAAkB+5E,YAAlB,EAAgCC,SAAhC,EAA2CrI,cAA3C,EAA2DC,cAA3D,EAA2EyI,cAA3E,EAA2FC,WAA3F,EAAwGvI,eAAxG,EAAyHwI,YAAzH,EAAuI;IACxI,MAAM/sB,MAAM,GAAG,EAAf;IACA,MAAMgtB,yBAAyB,GAAG,KAAK1N,GAAL,CAAS/5D,OAAT,IAAoB,KAAK+5D,GAAL,CAAS/5D,OAAT,CAAiB3G,MAArC,IAA+CutE,YAAjF;IACA,MAAMc,sBAAsB,GAAGJ,cAAc,IAAIA,cAAc,CAACjuE,MAAjC,IAA2CutE,YAA1E;IACA,MAAMe,kBAAkB,GAAG,KAAKR,WAAL,CAAiBH,YAAjB,EAA+BU,sBAA/B,EAAuDjtB,MAAvD,CAA3B;IACA,MAAMmtB,mBAAmB,GAAGL,WAAW,IAAIA,WAAW,CAACluE,MAA3B,IAAqCutE,YAAjE;IACA,MAAMiB,eAAe,GAAG,KAAKV,WAAL,CAAiBF,SAAjB,EAA4BW,mBAA5B,EAAiDntB,MAAjD,CAAxB;IACA,MAAMksB,eAAe,GAAG,IAAI5W,GAAJ,EAAxB;IACA,MAAM+X,WAAW,GAAG,IAAI7nC,GAAJ,EAApB;IACA,MAAM8nC,YAAY,GAAG,IAAI9nC,GAAJ,EAArB;IACA,MAAM+nC,SAAS,GAAGf,SAAS,KAAK,MAAhC;IACA,MAAMgB,gBAAgB,GAAG;MACrB5uE,MAAM,EAAE6uE,kBAAkB,CAACN,mBAAD,EAAsBH,yBAAtB,CADL;MAErB1uB,KAAK,EAAE,KAAKghB,GAAL,CAAS/5D,OAAT,EAAkB+4C;IAFJ,CAAzB;IAIA,MAAMumB,SAAS,GAAGkI,YAAY,GAC1B,EAD0B,GAE1B9I,uBAAuB,CAACxO,MAAD,EAASjjE,OAAT,EAAkB,KAAK8sE,GAAL,CAASj0B,SAA3B,EAAsC84B,cAAtC,EAAsDC,cAAtD,EAAsE8I,kBAAtE,EAA0FE,eAA1F,EAA2GI,gBAA3G,EAA6HjJ,eAA7H,EAA8IvkB,MAA9I,CAF3B;IAGA,IAAIsQ,SAAS,GAAG,CAAhB;IACAuU,SAAS,CAACj4E,OAAV,CAAkBw6E,EAAE,IAAI;MACpB9W,SAAS,GAAG12D,IAAI,CAAC6iC,GAAL,CAAS2qC,EAAE,CAACzX,QAAH,GAAcyX,EAAE,CAAC9oB,KAA1B,EAAiCgS,SAAjC,CAAZ;IACH,CAFD;;IAGA,IAAItQ,MAAM,CAAC30D,MAAX,EAAmB;MACf,OAAOygF,2BAA2B,CAACt5E,OAAD,EAAU,KAAK65E,YAAf,EAA6BE,YAA7B,EAA2CC,SAA3C,EAAsDe,SAAtD,EAAiEL,kBAAjE,EAAqFE,eAArF,EAAsG,EAAtG,EAA0G,EAA1G,EAA8GC,WAA9G,EAA2HC,YAA3H,EAAyIhd,SAAzI,EAAoJtQ,MAApJ,CAAlC;IACH;;IACD6kB,SAAS,CAACj4E,OAAV,CAAkBw6E,EAAE,IAAI;MACpB,MAAMsG,GAAG,GAAGtG,EAAE,CAAC50E,OAAf;MACA,MAAMw3E,QAAQ,GAAGnT,oBAAoB,CAACwW,WAAD,EAAcK,GAAd,EAAmB,IAAIpY,GAAJ,EAAnB,CAArC;MACA8R,EAAE,CAACjE,aAAH,CAAiBv2E,OAAjB,CAAyB2Z,IAAI,IAAIyjE,QAAQ,CAAC1/D,GAAT,CAAa/D,IAAb,CAAjC;MACA,MAAM0jE,SAAS,GAAGpT,oBAAoB,CAACyW,YAAD,EAAeI,GAAf,EAAoB,IAAIpY,GAAJ,EAApB,CAAtC;MACA8R,EAAE,CAAChE,cAAH,CAAkBx2E,OAAlB,CAA0B2Z,IAAI,IAAI0jE,SAAS,CAAC3/D,GAAV,CAAc/D,IAAd,CAAlC;;MACA,IAAImnE,GAAG,KAAKl7E,OAAZ,EAAqB;QACjB05E,eAAe,CAAC5hE,GAAhB,CAAoBojE,GAApB;MACH;IACJ,CATD;;IAUA,IAAI,OAAOv7D,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/Cw7D,6BAA6B,CAAC9I,SAAD,EAAY,KAAKwH,YAAjB,EAA+B5W,MAA/B,CAA7B;IACH;;IACD,MAAMmY,mBAAmB,GAAGhS,eAAe,CAACsQ,eAAe,CAACppE,MAAhB,EAAD,CAA3C;IACA,OAAOgpE,2BAA2B,CAACt5E,OAAD,EAAU,KAAK65E,YAAf,EAA6BE,YAA7B,EAA2CC,SAA3C,EAAsDe,SAAtD,EAAiEL,kBAAjE,EAAqFE,eAArF,EAAsGvI,SAAtG,EAAiH+I,mBAAjH,EAAsIP,WAAtI,EAAmJC,YAAnJ,EAAiKhd,SAAjK,CAAlC;EACH;;AAxD4B;AA0DjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqd,6BAAT,CAAuC9I,SAAvC,EAAkDnO,WAAlD,EAA+DjB,MAA/D,EAAuE;EACnE,IAAI,CAACA,MAAM,CAACoY,+BAAZ,EAA6C;IACzC;EACH;;EACD,MAAMC,yBAAyB,GAAG,IAAIxY,GAAJ,EAAlC;EACAuP,SAAS,CAACj4E,OAAV,CAAkB,CAAC;IAAEsiE;EAAF,CAAD,KAAmB;IACjC,MAAM6e,+BAA+B,GAAG,IAAIvoC,GAAJ,EAAxC;IACA0pB,SAAS,CAACtiE,OAAV,CAAkBk9E,QAAQ,IAAI;MAC1B,KAAK,MAAM,CAACvjE,IAAD,EAAOta,KAAP,CAAX,IAA4B69E,QAAQ,CAACkE,OAAT,EAA5B,EAAgD;QAC5C,IAAI,CAACvY,MAAM,CAACoY,+BAAP,CAAuCtnE,IAAvC,CAAL,EAAmD;UAC/C,IAAIwnE,+BAA+B,CAAC9V,GAAhC,CAAoC1xD,IAApC,KAA6C,CAACunE,yBAAyB,CAAC7V,GAA1B,CAA8B1xD,IAA9B,CAAlD,EAAuF;YACnF,MAAM0nE,gBAAgB,GAAGF,+BAA+B,CAACtgE,GAAhC,CAAoClH,IAApC,CAAzB;;YACA,IAAI0nE,gBAAgB,KAAKhiF,KAAzB,EAAgC;cAC5B6hF,yBAAyB,CAACxjE,GAA1B,CAA8B/D,IAA9B;YACH;UACJ,CALD,MAMK;YACDwnE,+BAA+B,CAAC36D,GAAhC,CAAoC7M,IAApC,EAA0Cta,KAA1C;UACH;QACJ;MACJ;IACJ,CAdD;EAeH,CAjBD;;EAkBA,IAAI6hF,yBAAyB,CAACz1E,IAA1B,GAAiC,CAArC,EAAwC;IACpCwS,OAAO,CAAC6S,IAAR,CAAc,mCAAkCg5C,WAAY,0CAA/C,GACT,8BADS,GACwBppE,KAAK,CAACM,IAAN,CAAWkgF,yBAAX,EAAsCpzE,IAAtC,CAA2C,IAA3C,CADxB,GAC2E,IAD3E,GAET,iIAFJ;EAGH;AACJ;;AACD,SAAS+xE,yBAAT,CAAmCyB,QAAnC,EAA6C3B,YAA7C,EAA2DC,SAA3D,EAAsEh6E,OAAtE,EAA+EoM,MAA/E,EAAuF;EACnF,OAAOsvE,QAAQ,CAACpuC,IAAT,CAAcxrC,EAAE,IAAIA,EAAE,CAACi4E,YAAD,EAAeC,SAAf,EAA0Bh6E,OAA1B,EAAmCoM,MAAnC,CAAtB,CAAP;AACH;;AACD,SAAS6uE,kBAAT,CAA4BU,UAA5B,EAAwCC,QAAxC,EAAkD;EAC9C,MAAMptE,MAAM,GAAGm5D,OAAO,CAACiU,QAAD,CAAtB;;EACA,KAAK,MAAMxiF,GAAX,IAAkBuiF,UAAlB,EAA8B;IAC1B,IAAIA,UAAU,CAACzsD,cAAX,CAA0B91B,GAA1B,KAAkCuiF,UAAU,CAACviF,GAAD,CAAV,IAAmB,IAAzD,EAA+D;MAC3DoV,MAAM,CAACpV,GAAD,CAAN,GAAcuiF,UAAU,CAACviF,GAAD,CAAxB;IACH;EACJ;;EACD,OAAOoV,MAAP;AACH;;AACD,MAAMqtE,oBAAN,CAA2B;EACvB1jF,WAAW,CAACmJ,MAAD,EAASw6E,aAAT,EAAwB5Y,UAAxB,EAAoC;IAC3C,KAAK5hE,MAAL,GAAcA,MAAd;IACA,KAAKw6E,aAAL,GAAqBA,aAArB;IACA,KAAK5Y,UAAL,GAAkBA,UAAlB;EACH;;EACDgX,WAAW,CAAC9tE,MAAD,EAASohD,MAAT,EAAiB;IACxB,MAAMskB,WAAW,GAAG,IAAI9+B,GAAJ,EAApB;IACA,MAAM+oC,cAAc,GAAGpU,OAAO,CAAC,KAAKmU,aAAN,CAA9B;IACA5iF,MAAM,CAACY,IAAP,CAAYsS,MAAZ,EAAoBhS,OAApB,CAA4BhB,GAAG,IAAI;MAC/B,MAAMK,KAAK,GAAG2S,MAAM,CAAChT,GAAD,CAApB;;MACA,IAAIK,KAAK,KAAK,IAAd,EAAoB;QAChBsiF,cAAc,CAAC3iF,GAAD,CAAd,GAAsBK,KAAtB;MACH;IACJ,CALD;IAMA,KAAK6H,MAAL,CAAYA,MAAZ,CAAmBlH,OAAnB,CAA2BX,KAAK,IAAI;MAChC,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;QAC3BA,KAAK,CAACW,OAAN,CAAc,CAACgG,GAAD,EAAM2T,IAAN,KAAe;UACzB,IAAI3T,GAAJ,EAAS;YACLA,GAAG,GAAG8oE,iBAAiB,CAAC9oE,GAAD,EAAM27E,cAAN,EAAsBvuB,MAAtB,CAAvB;UACH;;UACD,MAAMmW,cAAc,GAAG,KAAKT,UAAL,CAAgBW,qBAAhB,CAAsC9vD,IAAtC,EAA4Cy5C,MAA5C,CAAvB;UACAptD,GAAG,GAAG,KAAK8iE,UAAL,CAAgBY,mBAAhB,CAAoC/vD,IAApC,EAA0C4vD,cAA1C,EAA0DvjE,GAA1D,EAA+DotD,MAA/D,CAAN;UACAskB,WAAW,CAAClxD,GAAZ,CAAgB+iD,cAAhB,EAAgCvjE,GAAhC;QACH,CAPD;MAQH;IACJ,CAXD;IAYA,OAAO0xE,WAAP;EACH;;AA5BsB;;AA+B3B,SAASkK,YAAT,CAAsB51E,IAAtB,EAA4B0mE,GAA5B,EAAiC5J,UAAjC,EAA6C;EACzC,OAAO,IAAI+Y,gBAAJ,CAAqB71E,IAArB,EAA2B0mE,GAA3B,EAAgC5J,UAAhC,CAAP;AACH;;AACD,MAAM+Y,gBAAN,CAAuB;EACnB9jF,WAAW,CAACiO,IAAD,EAAO0mE,GAAP,EAAYoP,WAAZ,EAAyB;IAChC,KAAK91E,IAAL,GAAYA,IAAZ;IACA,KAAK0mE,GAAL,GAAWA,GAAX;IACA,KAAKoP,WAAL,GAAmBA,WAAnB;IACA,KAAKC,mBAAL,GAA2B,EAA3B;IACA,KAAK9O,MAAL,GAAc,IAAIr6B,GAAJ,EAAd;IACA85B,GAAG,CAACO,MAAJ,CAAWjzE,OAAX,CAAmB0yE,GAAG,IAAI;MACtB,MAAMgP,aAAa,GAAIhP,GAAG,CAAC/5D,OAAJ,IAAe+5D,GAAG,CAAC/5D,OAAJ,CAAY3G,MAA5B,IAAuC,EAA7D;MACA,KAAKihE,MAAL,CAAYzsD,GAAZ,CAAgBksD,GAAG,CAAC1mE,IAApB,EAA0B,IAAIy1E,oBAAJ,CAAyB/O,GAAG,CAACvmE,KAA7B,EAAoCu1E,aAApC,EAAmDI,WAAnD,CAA1B;IACH,CAHD;IAIAE,iBAAiB,CAAC,KAAK/O,MAAN,EAAc,MAAd,EAAsB,GAAtB,CAAjB;IACA+O,iBAAiB,CAAC,KAAK/O,MAAN,EAAc,OAAd,EAAuB,GAAvB,CAAjB;IACAP,GAAG,CAACQ,WAAJ,CAAgBlzE,OAAhB,CAAwB0yE,GAAG,IAAI;MAC3B,KAAKqP,mBAAL,CAAyBrgF,IAAzB,CAA8B,IAAI89E,0BAAJ,CAA+BxzE,IAA/B,EAAqC0mE,GAArC,EAA0C,KAAKO,MAA/C,CAA9B;IACH,CAFD;IAGA,KAAKgP,kBAAL,GAA0BC,wBAAwB,CAACl2E,IAAD,EAAO,KAAKinE,MAAZ,EAAoB,KAAK6O,WAAzB,CAAlD;EACH;;EACkB,IAAfK,eAAe,GAAG;IAClB,OAAO,KAAKzP,GAAL,CAASK,UAAT,GAAsB,CAA7B;EACH;;EACDqP,eAAe,CAACzC,YAAD,EAAeC,SAAf,EAA0Bh6E,OAA1B,EAAmCoM,MAAnC,EAA2C;IACtD,MAAMqwE,KAAK,GAAG,KAAKN,mBAAL,CAAyBjgC,IAAzB,CAA8BwgC,CAAC,IAAIA,CAAC,CAAC3qE,KAAF,CAAQgoE,YAAR,EAAsBC,SAAtB,EAAiCh6E,OAAjC,EAA0CoM,MAA1C,CAAnC,CAAd;IACA,OAAOqwE,KAAK,IAAI,IAAhB;EACH;;EACDE,WAAW,CAAC5C,YAAD,EAAe3tE,MAAf,EAAuBohD,MAAvB,EAA+B;IACtC,OAAO,KAAK6uB,kBAAL,CAAwBnC,WAAxB,CAAoCH,YAApC,EAAkD3tE,MAAlD,EAA0DohD,MAA1D,CAAP;EACH;;AA3BkB;;AA6BvB,SAAS8uB,wBAAT,CAAkCpY,WAAlC,EAA+CmJ,MAA/C,EAAuDnK,UAAvD,EAAmE;EAC/D,MAAM2K,QAAQ,GAAG,CAAC,CAAC1J,SAAD,EAAYC,OAAZ,KAAwB,IAAzB,CAAjB;EACA,MAAMvrB,SAAS,GAAG;IAAEtlC,IAAI,EAAE;IAAE;IAAV;IAAgDgpD,KAAK,EAAE,EAAvD;IAA2DxpD,OAAO,EAAE;EAApE,CAAlB;EACA,MAAMuhC,UAAU,GAAG;IACf/gC,IAAI,EAAE;IAAE;IADO;IAEfslC,SAFe;IAGfg1B,QAHe;IAIf96D,OAAO,EAAE,IAJM;IAKfo6D,UAAU,EAAE,CALG;IAMfC,QAAQ,EAAE;EANK,CAAnB;EAQA,OAAO,IAAIwM,0BAAJ,CAA+B1V,WAA/B,EAA4C5vB,UAA5C,EAAwD+4B,MAAxD,CAAP;AACH;;AACD,SAAS+O,iBAAT,CAA2BQ,QAA3B,EAAqCC,IAArC,EAA2CC,IAA3C,EAAiD;EAC7C,IAAIF,QAAQ,CAACnX,GAAT,CAAaoX,IAAb,CAAJ,EAAwB;IACpB,IAAI,CAACD,QAAQ,CAACnX,GAAT,CAAaqX,IAAb,CAAL,EAAyB;MACrBF,QAAQ,CAACh8D,GAAT,CAAak8D,IAAb,EAAmBF,QAAQ,CAAC3hE,GAAT,CAAa4hE,IAAb,CAAnB;IACH;EACJ,CAJD,MAKK,IAAID,QAAQ,CAACnX,GAAT,CAAaqX,IAAb,CAAJ,EAAwB;IACzBF,QAAQ,CAACh8D,GAAT,CAAai8D,IAAb,EAAmBD,QAAQ,CAAC3hE,GAAT,CAAa6hE,IAAb,CAAnB;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,qBAAqB,GAAG,IAAIjM,qBAAJ,EAA9B;;AACA,MAAMkM,uBAAN,CAA8B;EAC1B7kF,WAAW,CAAC8kF,QAAD,EAAWtQ,OAAX,EAAoBuP,WAApB,EAAiC;IACxC,KAAKe,QAAL,GAAgBA,QAAhB;IACA,KAAKtQ,OAAL,GAAeA,OAAf;IACA,KAAKuP,WAAL,GAAmBA,WAAnB;IACA,KAAKgB,WAAL,GAAmB,IAAIlqC,GAAJ,EAAnB;IACA,KAAKmqC,YAAL,GAAoB,IAAInqC,GAAJ,EAApB;IACA,KAAK+rB,OAAL,GAAe,EAAf;EACH;;EACDqe,QAAQ,CAACj2E,EAAD,EAAKoX,QAAL,EAAe;IACnB,MAAMivC,MAAM,GAAG,EAAf;IACA,MAAMqd,QAAQ,GAAG,EAAjB;IACA,MAAMiC,GAAG,GAAGN,iBAAiB,CAAC,KAAKG,OAAN,EAAepuD,QAAf,EAAyBivC,MAAzB,EAAiCqd,QAAjC,CAA7B;;IACA,IAAIrd,MAAM,CAAC30D,MAAX,EAAmB;MACf,MAAMopE,cAAc,CAACzU,MAAD,CAApB;IACH,CAFD,MAGK;MACD,IAAIqd,QAAQ,CAAChyE,MAAb,EAAqB;QACjBoyE,YAAY,CAACJ,QAAD,CAAZ;MACH;;MACD,KAAKqS,WAAL,CAAiBt8D,GAAjB,CAAqBzZ,EAArB,EAAyB2lE,GAAzB;IACH;EACJ;;EACDuQ,YAAY,CAACzkF,CAAD,EAAIuqE,SAAJ,EAAeC,UAAf,EAA2B;IACnC,MAAMpjE,OAAO,GAAGpH,CAAC,CAACoH,OAAlB;IACA,MAAM08D,SAAS,GAAGsG,oBAAoB,CAAC,KAAK2J,OAAN,EAAe,KAAKuP,WAApB,EAAiCl8E,OAAjC,EAA0CpH,CAAC,CAAC8jE,SAA5C,EAAuDyG,SAAvD,EAAkEC,UAAlE,CAAtC;IACA,OAAO,KAAKuJ,OAAL,CAAanvC,OAAb,CAAqBx9B,OAArB,EAA8B08D,SAA9B,EAAyC9jE,CAAC,CAACukE,QAA3C,EAAqDvkE,CAAC,CAACkzD,KAAvD,EAA8DlzD,CAAC,CAACytE,MAAhE,EAAwE,EAAxE,EAA4E,IAA5E,CAAP;EACH;;EACD7wD,MAAM,CAACrO,EAAD,EAAKnH,OAAL,EAAc+S,OAAO,GAAG,EAAxB,EAA4B;IAC9B,MAAMy6C,MAAM,GAAG,EAAf;;IACA,MAAMsf,GAAG,GAAG,KAAKoQ,WAAL,CAAiBjiE,GAAjB,CAAqB9T,EAArB,CAAZ;;IACA,IAAI8pE,YAAJ;IACA,MAAMqM,aAAa,GAAG,IAAItqC,GAAJ,EAAtB;;IACA,IAAI85B,GAAJ,EAAS;MACLmE,YAAY,GAAGQ,uBAAuB,CAAC,KAAK9E,OAAN,EAAe3sE,OAAf,EAAwB8sE,GAAxB,EAA6BlG,eAA7B,EAA8CC,eAA9C,EAA+D,IAAI7zB,GAAJ,EAA/D,EAA0E,IAAIA,GAAJ,EAA1E,EAAqFjgC,OAArF,EAA8FgqE,qBAA9F,EAAqHvvB,MAArH,CAAtC;MACAyjB,YAAY,CAAC72E,OAAb,CAAqBmjF,IAAI,IAAI;QACzB,MAAMj8E,MAAM,GAAG+iE,oBAAoB,CAACiZ,aAAD,EAAgBC,IAAI,CAACv9E,OAArB,EAA8B,IAAIgzC,GAAJ,EAA9B,CAAnC;QACAuqC,IAAI,CAAC3M,cAAL,CAAoBx2E,OAApB,CAA4B2Z,IAAI,IAAIzS,MAAM,CAACsf,GAAP,CAAW7M,IAAX,EAAiB,IAAjB,CAApC;MACH,CAHD;IAIH,CAND,MAOK;MACDy5C,MAAM,CAAC1xD,IAAP,CAAYomE,2BAA2B,EAAvC;MACA+O,YAAY,GAAG,EAAf;IACH;;IACD,IAAIzjB,MAAM,CAAC30D,MAAX,EAAmB;MACf,MAAMspE,qBAAqB,CAAC3U,MAAD,CAA3B;IACH;;IACD8vB,aAAa,CAACljF,OAAd,CAAsB,CAACkH,MAAD,EAAStB,OAAT,KAAqB;MACvCsB,MAAM,CAAClH,OAAP,CAAe,CAACwuE,CAAD,EAAI70D,IAAJ,KAAa;QACxBzS,MAAM,CAACsf,GAAP,CAAW7M,IAAX,EAAiB,KAAK44D,OAAL,CAAavG,YAAb,CAA0BpmE,OAA1B,EAAmC+T,IAAnC,EAAyCsoD,2DAAzC,CAAjB;MACH,CAFD;IAGH,CAJD;IAKA,MAAM0C,OAAO,GAAGkS,YAAY,CAACvxE,GAAb,CAAiB9G,CAAC,IAAI;MAClC,MAAM0I,MAAM,GAAGg8E,aAAa,CAACriE,GAAd,CAAkBriB,CAAC,CAACoH,OAApB,CAAf;MACA,OAAO,KAAKq9E,YAAL,CAAkBzkF,CAAlB,EAAqB,IAAIo6C,GAAJ,EAArB,EAAgC1xC,MAAhC,CAAP;IACH,CAHe,CAAhB;IAIA,MAAM69D,MAAM,GAAG4D,mBAAmB,CAAChE,OAAD,CAAlC;;IACA,KAAKoe,YAAL,CAAkBv8D,GAAlB,CAAsBzZ,EAAtB,EAA0Bg4D,MAA1B;;IACAA,MAAM,CAAClB,SAAP,CAAiB,MAAM,KAAK99B,OAAL,CAAah5B,EAAb,CAAvB;IACA,KAAK43D,OAAL,CAAajjE,IAAb,CAAkBqjE,MAAlB;IACA,OAAOA,MAAP;EACH;;EACDh/B,OAAO,CAACh5B,EAAD,EAAK;IACR,MAAMg4D,MAAM,GAAG,KAAKqe,UAAL,CAAgBr2E,EAAhB,CAAf;;IACAg4D,MAAM,CAACh/B,OAAP;;IACA,KAAKg9C,YAAL,CAAkBvpC,MAAlB,CAAyBzsC,EAAzB;;IACA,MAAM5B,KAAK,GAAG,KAAKw5D,OAAL,CAAaphE,OAAb,CAAqBwhE,MAArB,CAAd;;IACA,IAAI55D,KAAK,IAAI,CAAb,EAAgB;MACZ,KAAKw5D,OAAL,CAAavS,MAAb,CAAoBjnD,KAApB,EAA2B,CAA3B;IACH;EACJ;;EACDi4E,UAAU,CAACr2E,EAAD,EAAK;IACX,MAAMg4D,MAAM,GAAG,KAAKge,YAAL,CAAkBliE,GAAlB,CAAsB9T,EAAtB,CAAf;;IACA,IAAI,CAACg4D,MAAL,EAAa;MACT,MAAMiD,aAAa,CAACj7D,EAAD,CAAnB;IACH;;IACD,OAAOg4D,MAAP;EACH;;EACDl6B,MAAM,CAAC99B,EAAD,EAAKnH,OAAL,EAAcisB,SAAd,EAAyB/oB,QAAzB,EAAmC;IACrC;IACA,MAAMu6E,SAAS,GAAGxZ,kBAAkB,CAACjkE,OAAD,EAAU,EAAV,EAAc,EAAd,EAAkB,EAAlB,CAApC;IACA+jE,cAAc,CAAC,KAAKyZ,UAAL,CAAgBr2E,EAAhB,CAAD,EAAsB8kB,SAAtB,EAAiCwxD,SAAjC,EAA4Cv6E,QAA5C,CAAd;IACA,OAAO,MAAM,CAAG,CAAhB;EACH;;EACDqhE,OAAO,CAACp9D,EAAD,EAAKnH,OAAL,EAAcukE,OAAd,EAAuBl3D,IAAvB,EAA6B;IAChC,IAAIk3D,OAAO,IAAI,UAAf,EAA2B;MACvB,KAAK6Y,QAAL,CAAcj2E,EAAd,EAAkBkG,IAAI,CAAC,CAAD,CAAtB;MACA;IACH;;IACD,IAAIk3D,OAAO,IAAI,QAAf,EAAyB;MACrB,MAAMxxD,OAAO,GAAI1F,IAAI,CAAC,CAAD,CAAJ,IAAW,EAA5B;MACA,KAAKmI,MAAL,CAAYrO,EAAZ,EAAgBnH,OAAhB,EAAyB+S,OAAzB;MACA;IACH;;IACD,MAAMosD,MAAM,GAAG,KAAKqe,UAAL,CAAgBr2E,EAAhB,CAAf;;IACA,QAAQo9D,OAAR;MACI,KAAK,MAAL;QACIpF,MAAM,CAAC/+B,IAAP;QACA;;MACJ,KAAK,OAAL;QACI++B,MAAM,CAACd,KAAP;QACA;;MACJ,KAAK,OAAL;QACIc,MAAM,CAACzkD,KAAP;QACA;;MACJ,KAAK,SAAL;QACIykD,MAAM,CAACb,OAAP;QACA;;MACJ,KAAK,QAAL;QACIa,MAAM,CAACZ,MAAP;QACA;;MACJ,KAAK,MAAL;QACIY,MAAM,CAAC19C,IAAP;QACA;;MACJ,KAAK,aAAL;QACI09C,MAAM,CAACX,WAAP,CAAmBjqD,UAAU,CAAClH,IAAI,CAAC,CAAD,CAAL,CAA7B;QACA;;MACJ,KAAK,SAAL;QACI,KAAK8yB,OAAL,CAAah5B,EAAb;QACA;IAxBR;EA0BH;;AAzHyB;AA4H9B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMu2E,gBAAgB,GAAG,mBAAzB;AACA,MAAMC,eAAe,GAAG,oBAAxB;AACA,MAAMC,kBAAkB,GAAG,qBAA3B;AACA,MAAMC,iBAAiB,GAAG,sBAA1B;AACA,MAAMC,cAAc,GAAG,kBAAvB;AACA,MAAMC,aAAa,GAAG,mBAAtB;AACA,MAAMC,kBAAkB,GAAG,EAA3B;AACA,MAAMC,kBAAkB,GAAG;EACvBC,WAAW,EAAE,EADU;EAEvBC,aAAa,EAAE,KAFQ;EAGvBC,UAAU,EAAE,KAHW;EAIvBC,YAAY,EAAE,KAJS;EAKvBC,oBAAoB,EAAE;AALC,CAA3B;AAOA,MAAMC,0BAA0B,GAAG;EAC/BL,WAAW,EAAE,EADkB;EAE/BE,UAAU,EAAE,KAFmB;EAG/BD,aAAa,EAAE,KAHgB;EAI/BE,YAAY,EAAE,KAJiB;EAK/BC,oBAAoB,EAAE;AALS,CAAnC;AAOA,MAAME,YAAY,GAAG,cAArB;;AACA,MAAMC,UAAN,CAAiB;EACbtmF,WAAW,CAACi5D,KAAD,EAAQ8sB,WAAW,GAAG,EAAtB,EAA0B;IACjC,KAAKA,WAAL,GAAmBA,WAAnB;IACA,MAAMQ,KAAK,GAAGttB,KAAK,IAAIA,KAAK,CAACliC,cAAN,CAAqB,OAArB,CAAvB;IACA,MAAMz1B,KAAK,GAAGilF,KAAK,GAAGttB,KAAK,CAAC,OAAD,CAAR,GAAoBA,KAAvC;IACA,KAAK33D,KAAL,GAAaklF,qBAAqB,CAACllF,KAAD,CAAlC;;IACA,IAAIilF,KAAJ,EAAW;MACP,MAAM3rE,OAAO,GAAG40D,OAAO,CAACvW,KAAD,CAAvB;MACA,OAAOr+C,OAAO,CAAC,OAAD,CAAd;MACA,KAAKA,OAAL,GAAeA,OAAf;IACH,CAJD,MAKK;MACD,KAAKA,OAAL,GAAe,EAAf;IACH;;IACD,IAAI,CAAC,KAAKA,OAAL,CAAa3G,MAAlB,EAA0B;MACtB,KAAK2G,OAAL,CAAa3G,MAAb,GAAsB,EAAtB;IACH;EACJ;;EACS,IAANA,MAAM,GAAG;IACT,OAAO,KAAK2G,OAAL,CAAa3G,MAApB;EACH;;EACDwyE,aAAa,CAAC7rE,OAAD,EAAU;IACnB,MAAM0iE,SAAS,GAAG1iE,OAAO,CAAC3G,MAA1B;;IACA,IAAIqpE,SAAJ,EAAe;MACX,MAAMG,SAAS,GAAG,KAAK7iE,OAAL,CAAa3G,MAA/B;MACAlT,MAAM,CAACY,IAAP,CAAY27E,SAAZ,EAAuBr7E,OAAvB,CAA+B2Z,IAAI,IAAI;QACnC,IAAI6hE,SAAS,CAAC7hE,IAAD,CAAT,IAAmB,IAAvB,EAA6B;UACzB6hE,SAAS,CAAC7hE,IAAD,CAAT,GAAkB0hE,SAAS,CAAC1hE,IAAD,CAA3B;QACH;MACJ,CAJD;IAKH;EACJ;;AA/BY;;AAiCjB,MAAM8qE,UAAU,GAAG,MAAnB;AACA,MAAMC,mBAAmB,GAAG,IAAIL,UAAJ,CAAeI,UAAf,CAA5B;;AACA,MAAME,4BAAN,CAAmC;EAC/B5mF,WAAW,CAACgP,EAAD,EAAKqqC,WAAL,EAAkBwtC,OAAlB,EAA2B;IAClC,KAAK73E,EAAL,GAAUA,EAAV;IACA,KAAKqqC,WAAL,GAAmBA,WAAnB;IACA,KAAKwtC,OAAL,GAAeA,OAAf;IACA,KAAKjgB,OAAL,GAAe,EAAf;IACA,KAAKkgB,SAAL,GAAiB,IAAIjsC,GAAJ,EAAjB;IACA,KAAKksC,MAAL,GAAc,EAAd;IACA,KAAKC,iBAAL,GAAyB,IAAInsC,GAAJ,EAAzB;IACA,KAAKosC,cAAL,GAAsB,YAAYj4E,EAAlC;IACA84B,QAAQ,CAACuR,WAAD,EAAc,KAAK4tC,cAAnB,CAAR;EACH;;EACDn6C,MAAM,CAACjlC,OAAD,EAAUoG,IAAV,EAAgBk8D,KAAhB,EAAuBp/D,QAAvB,EAAiC;IACnC,IAAI,CAAC,KAAK+7E,SAAL,CAAexZ,GAAf,CAAmBr/D,IAAnB,CAAL,EAA+B;MAC3B,MAAMi8D,cAAc,CAACC,KAAD,EAAQl8D,IAAR,CAApB;IACH;;IACD,IAAIk8D,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACzpE,MAAN,IAAgB,CAArC,EAAwC;MACpC,MAAM0pE,YAAY,CAACn8D,IAAD,CAAlB;IACH;;IACD,IAAI,CAACi5E,mBAAmB,CAAC/c,KAAD,CAAxB,EAAiC;MAC7B,MAAME,uBAAuB,CAACF,KAAD,EAAQl8D,IAAR,CAA7B;IACH;;IACD,MAAMo/C,SAAS,GAAG6e,oBAAoB,CAAC,KAAK8a,iBAAN,EAAyBn/E,OAAzB,EAAkC,EAAlC,CAAtC;IACA,MAAMksB,IAAI,GAAG;MAAE9lB,IAAF;MAAQk8D,KAAR;MAAep/D;IAAf,CAAb;IACAsiD,SAAS,CAAC1pD,IAAV,CAAeowB,IAAf;IACA,MAAMozD,kBAAkB,GAAGjb,oBAAoB,CAAC,KAAK2a,OAAL,CAAaO,eAAd,EAA+Bv/E,OAA/B,EAAwC,IAAIgzC,GAAJ,EAAxC,CAA/C;;IACA,IAAI,CAACssC,kBAAkB,CAAC7Z,GAAnB,CAAuBr/D,IAAvB,CAAL,EAAmC;MAC/B65B,QAAQ,CAACjgC,OAAD,EAAU8mE,oBAAV,CAAR;MACA7mC,QAAQ,CAACjgC,OAAD,EAAU8mE,oBAAoB,GAAG,GAAvB,GAA6B1gE,IAAvC,CAAR;MACAk5E,kBAAkB,CAAC1+D,GAAnB,CAAuBxa,IAAvB,EAA6B04E,mBAA7B;IACH;;IACD,OAAO,MAAM;MACT;MACA;MACA;MACA,KAAKE,OAAL,CAAaQ,UAAb,CAAwB,MAAM;QAC1B,MAAMj6E,KAAK,GAAGigD,SAAS,CAAC7nD,OAAV,CAAkBuuB,IAAlB,CAAd;;QACA,IAAI3mB,KAAK,IAAI,CAAb,EAAgB;UACZigD,SAAS,CAACgH,MAAV,CAAiBjnD,KAAjB,EAAwB,CAAxB;QACH;;QACD,IAAI,CAAC,KAAK05E,SAAL,CAAexZ,GAAf,CAAmBr/D,IAAnB,CAAL,EAA+B;UAC3Bk5E,kBAAkB,CAAC1rC,MAAnB,CAA0BxtC,IAA1B;QACH;MACJ,CARD;IASH,CAbD;EAcH;;EACDg3E,QAAQ,CAACh3E,IAAD,EAAO0mE,GAAP,EAAY;IAChB,IAAI,KAAKmS,SAAL,CAAexZ,GAAf,CAAmBr/D,IAAnB,CAAJ,EAA8B;MAC1B;MACA,OAAO,KAAP;IACH,CAHD,MAIK;MACD,KAAK64E,SAAL,CAAer+D,GAAf,CAAmBxa,IAAnB,EAAyB0mE,GAAzB;;MACA,OAAO,IAAP;IACH;EACJ;;EACD2S,WAAW,CAACr5E,IAAD,EAAO;IACd,MAAMiuC,OAAO,GAAG,KAAK4qC,SAAL,CAAehkE,GAAf,CAAmB7U,IAAnB,CAAhB;;IACA,IAAI,CAACiuC,OAAL,EAAc;MACV,MAAMouB,mBAAmB,CAACr8D,IAAD,CAAzB;IACH;;IACD,OAAOiuC,OAAP;EACH;;EACDA,OAAO,CAACr0C,OAAD,EAAUkkE,WAAV,EAAuBzqE,KAAvB,EAA8BimF,iBAAiB,GAAG,IAAlD,EAAwD;IAC3D,MAAMrrC,OAAO,GAAG,KAAKorC,WAAL,CAAiBvb,WAAjB,CAAhB;;IACA,MAAM/E,MAAM,GAAG,IAAIwgB,yBAAJ,CAA8B,KAAKx4E,EAAnC,EAAuC+8D,WAAvC,EAAoDlkE,OAApD,CAAf;;IACA,IAAIs/E,kBAAkB,GAAG,KAAKN,OAAL,CAAaO,eAAb,CAA6BtkE,GAA7B,CAAiCjb,OAAjC,CAAzB;;IACA,IAAI,CAACs/E,kBAAL,EAAyB;MACrBr/C,QAAQ,CAACjgC,OAAD,EAAU8mE,oBAAV,CAAR;MACA7mC,QAAQ,CAACjgC,OAAD,EAAU8mE,oBAAoB,GAAG,GAAvB,GAA6B5C,WAAvC,CAAR;;MACA,KAAK8a,OAAL,CAAaO,eAAb,CAA6B3+D,GAA7B,CAAiC5gB,OAAjC,EAA0Cs/E,kBAAkB,GAAG,IAAItsC,GAAJ,EAA/D;IACH;;IACD,IAAImxB,SAAS,GAAGmb,kBAAkB,CAACrkE,GAAnB,CAAuBipD,WAAvB,CAAhB;IACA,MAAME,OAAO,GAAG,IAAIqa,UAAJ,CAAehlF,KAAf,EAAsB,KAAK0N,EAA3B,CAAhB;IACA,MAAMu3E,KAAK,GAAGjlF,KAAK,IAAIA,KAAK,CAACy1B,cAAN,CAAqB,OAArB,CAAvB;;IACA,IAAI,CAACwvD,KAAD,IAAUva,SAAd,EAAyB;MACrBC,OAAO,CAACwa,aAAR,CAAsBza,SAAS,CAACpxD,OAAhC;IACH;;IACDusE,kBAAkB,CAAC1+D,GAAnB,CAAuBsjD,WAAvB,EAAoCE,OAApC;;IACA,IAAI,CAACD,SAAL,EAAgB;MACZA,SAAS,GAAG2a,mBAAZ;IACH;;IACD,MAAM/D,SAAS,GAAG3W,OAAO,CAAC3qE,KAAR,KAAkBolF,UAApC,CAnB2D,CAoB3D;IACA;IACA;IACA;IACA;IACA;;IACA,IAAI,CAAC9D,SAAD,IAAc5W,SAAS,CAAC1qE,KAAV,KAAoB2qE,OAAO,CAAC3qE,KAA9C,EAAqD;MACjD;MACA;MACA,IAAI,CAACmmF,SAAS,CAACzb,SAAS,CAAC/3D,MAAX,EAAmBg4D,OAAO,CAACh4D,MAA3B,CAAd,EAAkD;QAC9C,MAAMohD,MAAM,GAAG,EAAf;QACA,MAAMgsB,UAAU,GAAGnlC,OAAO,CAACsoC,WAAR,CAAoBxY,SAAS,CAAC1qE,KAA9B,EAAqC0qE,SAAS,CAAC/3D,MAA/C,EAAuDohD,MAAvD,CAAnB;QACA,MAAMisB,QAAQ,GAAGplC,OAAO,CAACsoC,WAAR,CAAoBvY,OAAO,CAAC3qE,KAA5B,EAAmC2qE,OAAO,CAACh4D,MAA3C,EAAmDohD,MAAnD,CAAjB;;QACA,IAAIA,MAAM,CAAC30D,MAAX,EAAmB;UACf,KAAKmmF,OAAL,CAAaa,WAAb,CAAyBryB,MAAzB;QACH,CAFD,MAGK;UACD,KAAKwxB,OAAL,CAAaQ,UAAb,CAAwB,MAAM;YAC1B7W,WAAW,CAAC3oE,OAAD,EAAUw5E,UAAV,CAAX;YACAjqC,SAAS,CAACvvC,OAAD,EAAUy5E,QAAV,CAAT;UACH,CAHD;QAIH;MACJ;;MACD;IACH;;IACD,MAAMqG,gBAAgB,GAAGzb,oBAAoB,CAAC,KAAK2a,OAAL,CAAae,gBAAd,EAAgC//E,OAAhC,EAAyC,EAAzC,CAA7C;IACA8/E,gBAAgB,CAAC1lF,OAAjB,CAAyB+kE,MAAM,IAAI;MAC/B;MACA;MACA;MACA;MACA,IAAIA,MAAM,CAAC+e,WAAP,IAAsB,KAAK/2E,EAA3B,IAAiCg4D,MAAM,CAAC+E,WAAP,IAAsBA,WAAvD,IAAsE/E,MAAM,CAAC6gB,MAAjF,EAAyF;QACrF7gB,MAAM,CAACh/B,OAAP;MACH;IACJ,CARD;IASA,IAAImU,UAAU,GAAGD,OAAO,CAACmoC,eAAR,CAAwBrY,SAAS,CAAC1qE,KAAlC,EAAyC2qE,OAAO,CAAC3qE,KAAjD,EAAwDuG,OAAxD,EAAiEokE,OAAO,CAACh4D,MAAzE,CAAjB;IACA,IAAI6zE,oBAAoB,GAAG,KAA3B;;IACA,IAAI,CAAC3rC,UAAL,EAAiB;MACb,IAAI,CAACorC,iBAAL,EACI;MACJprC,UAAU,GAAGD,OAAO,CAACgoC,kBAArB;MACA4D,oBAAoB,GAAG,IAAvB;IACH;;IACD,KAAKjB,OAAL,CAAakB,kBAAb;;IACA,KAAKhB,MAAL,CAAYpjF,IAAZ,CAAiB;MAAEkE,OAAF;MAAWkkE,WAAX;MAAwB5vB,UAAxB;MAAoC6vB,SAApC;MAA+CC,OAA/C;MAAwDjF,MAAxD;MAAgE8gB;IAAhE,CAAjB;;IACA,IAAI,CAACA,oBAAL,EAA2B;MACvBhgD,QAAQ,CAACjgC,OAAD,EAAU09E,gBAAV,CAAR;MACAve,MAAM,CAACnB,OAAP,CAAe,MAAM;QACjBmiB,WAAW,CAACngF,OAAD,EAAU09E,gBAAV,CAAX;MACH,CAFD;IAGH;;IACDve,MAAM,CAAC9+B,MAAP,CAAc,MAAM;MAChB,IAAI96B,KAAK,GAAG,KAAKw5D,OAAL,CAAaphE,OAAb,CAAqBwhE,MAArB,CAAZ;;MACA,IAAI55D,KAAK,IAAI,CAAb,EAAgB;QACZ,KAAKw5D,OAAL,CAAavS,MAAb,CAAoBjnD,KAApB,EAA2B,CAA3B;MACH;;MACD,MAAMw5D,OAAO,GAAG,KAAKigB,OAAL,CAAae,gBAAb,CAA8B9kE,GAA9B,CAAkCjb,OAAlC,CAAhB;;MACA,IAAI++D,OAAJ,EAAa;QACT,IAAIx5D,KAAK,GAAGw5D,OAAO,CAACphE,OAAR,CAAgBwhE,MAAhB,CAAZ;;QACA,IAAI55D,KAAK,IAAI,CAAb,EAAgB;UACZw5D,OAAO,CAACvS,MAAR,CAAejnD,KAAf,EAAsB,CAAtB;QACH;MACJ;IACJ,CAZD;IAaA,KAAKw5D,OAAL,CAAajjE,IAAb,CAAkBqjE,MAAlB;IACA2gB,gBAAgB,CAAChkF,IAAjB,CAAsBqjE,MAAtB;IACA,OAAOA,MAAP;EACH;;EACDihB,UAAU,CAACh6E,IAAD,EAAO;IACb,KAAK64E,SAAL,CAAerrC,MAAf,CAAsBxtC,IAAtB;;IACA,KAAK44E,OAAL,CAAaO,eAAb,CAA6BnlF,OAA7B,CAAqCwiF,QAAQ,IAAIA,QAAQ,CAAChpC,MAAT,CAAgBxtC,IAAhB,CAAjD;;IACA,KAAK+4E,iBAAL,CAAuB/kF,OAAvB,CAA+B,CAACorD,SAAD,EAAYxlD,OAAZ,KAAwB;MACnD,KAAKm/E,iBAAL,CAAuBv+D,GAAvB,CAA2B5gB,OAA3B,EAAoCwlD,SAAS,CAACvrD,MAAV,CAAiBwiF,KAAK,IAAI;QAC1D,OAAOA,KAAK,CAACr2E,IAAN,IAAcA,IAArB;MACH,CAFmC,CAApC;IAGH,CAJD;EAKH;;EACDi6E,iBAAiB,CAACrgF,OAAD,EAAU;IACvB,KAAKg/E,OAAL,CAAaO,eAAb,CAA6B3rC,MAA7B,CAAoC5zC,OAApC;;IACA,KAAKm/E,iBAAL,CAAuBvrC,MAAvB,CAA8B5zC,OAA9B;;IACA,MAAMsgF,cAAc,GAAG,KAAKtB,OAAL,CAAae,gBAAb,CAA8B9kE,GAA9B,CAAkCjb,OAAlC,CAAvB;;IACA,IAAIsgF,cAAJ,EAAoB;MAChBA,cAAc,CAAClmF,OAAf,CAAuB+kE,MAAM,IAAIA,MAAM,CAACh/B,OAAP,EAAjC;;MACA,KAAK6+C,OAAL,CAAae,gBAAb,CAA8BnsC,MAA9B,CAAqC5zC,OAArC;IACH;EACJ;;EACDugF,8BAA8B,CAAC7O,WAAD,EAAcvwD,OAAd,EAAuB;IACjD,MAAMg1D,QAAQ,GAAG,KAAK6I,OAAL,CAAa/b,MAAb,CAAoBlwC,KAApB,CAA0B2+C,WAA1B,EAAuC3K,mBAAvC,EAA4D,IAA5D,CAAjB,CADiD,CAEjD;IACA;IACA;;;IACAoP,QAAQ,CAAC/7E,OAAT,CAAiB8gF,GAAG,IAAI;MACpB;MACA;MACA,IAAIA,GAAG,CAACsD,YAAD,CAAP,EACI;;MACJ,MAAMgC,UAAU,GAAG,KAAKxB,OAAL,CAAayB,wBAAb,CAAsCvF,GAAtC,CAAnB;;MACA,IAAIsF,UAAU,CAAC36E,IAAf,EAAqB;QACjB26E,UAAU,CAACpmF,OAAX,CAAmBsmF,EAAE,IAAIA,EAAE,CAACC,qBAAH,CAAyBzF,GAAzB,EAA8B/5D,OAA9B,EAAuC,KAAvC,EAA8C,IAA9C,CAAzB;MACH,CAFD,MAGK;QACD,KAAKk/D,iBAAL,CAAuBnF,GAAvB;MACH;IACJ,CAZD,EALiD,CAkBjD;IACA;;IACA,KAAK8D,OAAL,CAAa4B,wBAAb,CAAsC,MAAMzK,QAAQ,CAAC/7E,OAAT,CAAiB8gF,GAAG,IAAI,KAAKmF,iBAAL,CAAuBnF,GAAvB,CAAxB,CAA5C;EACH;;EACDyF,qBAAqB,CAAC3gF,OAAD,EAAUmhB,OAAV,EAAmB0/D,oBAAnB,EAAyCnB,iBAAzC,EAA4D;IAC7E,MAAMoB,aAAa,GAAG,KAAK9B,OAAL,CAAaO,eAAb,CAA6BtkE,GAA7B,CAAiCjb,OAAjC,CAAtB;;IACA,MAAM+gF,sBAAsB,GAAG,IAAI/tC,GAAJ,EAA/B;;IACA,IAAI8tC,aAAJ,EAAmB;MACf,MAAM/hB,OAAO,GAAG,EAAhB;MACA+hB,aAAa,CAAC1mF,OAAd,CAAsB,CAAC0kB,KAAD,EAAQolD,WAAR,KAAwB;QAC1C6c,sBAAsB,CAACngE,GAAvB,CAA2BsjD,WAA3B,EAAwCplD,KAAK,CAACrlB,KAA9C,EAD0C,CAE1C;QACA;;QACA,IAAI,KAAKwlF,SAAL,CAAexZ,GAAf,CAAmBvB,WAAnB,CAAJ,EAAqC;UACjC,MAAM/E,MAAM,GAAG,KAAK9qB,OAAL,CAAar0C,OAAb,EAAsBkkE,WAAtB,EAAmC2a,UAAnC,EAA+Ca,iBAA/C,CAAf;;UACA,IAAIvgB,MAAJ,EAAY;YACRJ,OAAO,CAACjjE,IAAR,CAAaqjE,MAAb;UACH;QACJ;MACJ,CAVD;;MAWA,IAAIJ,OAAO,CAAClmE,MAAZ,EAAoB;QAChB,KAAKmmF,OAAL,CAAagC,oBAAb,CAAkC,KAAK75E,EAAvC,EAA2CnH,OAA3C,EAAoD,IAApD,EAA0DmhB,OAA1D,EAAmE4/D,sBAAnE;;QACA,IAAIF,oBAAJ,EAA0B;UACtB9d,mBAAmB,CAAChE,OAAD,CAAnB,CAA6B1+B,MAA7B,CAAoC,MAAM,KAAK2+C,OAAL,CAAaiC,gBAAb,CAA8BjhF,OAA9B,CAA1C;QACH;;QACD,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;EACDkhF,8BAA8B,CAAClhF,OAAD,EAAU;IACpC,MAAMwlD,SAAS,GAAG,KAAK25B,iBAAL,CAAuBlkE,GAAvB,CAA2Bjb,OAA3B,CAAlB;;IACA,MAAMmhF,aAAa,GAAG,KAAKnC,OAAL,CAAaO,eAAb,CAA6BtkE,GAA7B,CAAiCjb,OAAjC,CAAtB,CAFoC,CAGpC;IACA;;;IACA,IAAIwlD,SAAS,IAAI27B,aAAjB,EAAgC;MAC5B,MAAMC,eAAe,GAAG,IAAIte,GAAJ,EAAxB;MACAtd,SAAS,CAACprD,OAAV,CAAkBuH,QAAQ,IAAI;QAC1B,MAAMuiE,WAAW,GAAGviE,QAAQ,CAACyE,IAA7B;QACA,IAAIg7E,eAAe,CAAC3b,GAAhB,CAAoBvB,WAApB,CAAJ,EACI;QACJkd,eAAe,CAACtpE,GAAhB,CAAoBosD,WAApB;;QACA,MAAM7vB,OAAO,GAAG,KAAK4qC,SAAL,CAAehkE,GAAf,CAAmBipD,WAAnB,CAAhB;;QACA,MAAM5vB,UAAU,GAAGD,OAAO,CAACgoC,kBAA3B;QACA,MAAMlY,SAAS,GAAGgd,aAAa,CAAClmE,GAAd,CAAkBipD,WAAlB,KAAkC4a,mBAApD;QACA,MAAM1a,OAAO,GAAG,IAAIqa,UAAJ,CAAeI,UAAf,CAAhB;QACA,MAAM1f,MAAM,GAAG,IAAIwgB,yBAAJ,CAA8B,KAAKx4E,EAAnC,EAAuC+8D,WAAvC,EAAoDlkE,OAApD,CAAf;QACA,KAAKg/E,OAAL,CAAakB,kBAAb;;QACA,KAAKhB,MAAL,CAAYpjF,IAAZ,CAAiB;UACbkE,OADa;UAEbkkE,WAFa;UAGb5vB,UAHa;UAIb6vB,SAJa;UAKbC,OALa;UAMbjF,MANa;UAOb8gB,oBAAoB,EAAE;QAPT,CAAjB;MASH,CApBD;IAqBH;EACJ;;EACDoB,UAAU,CAACrhF,OAAD,EAAUmhB,OAAV,EAAmB;IACzB,MAAMmgE,MAAM,GAAG,KAAKtC,OAApB;;IACA,IAAIh/E,OAAO,CAACuhF,iBAAZ,EAA+B;MAC3B,KAAKhB,8BAAL,CAAoCvgF,OAApC,EAA6CmhB,OAA7C;IACH,CAJwB,CAKzB;;;IACA,IAAI,KAAKw/D,qBAAL,CAA2B3gF,OAA3B,EAAoCmhB,OAApC,EAA6C,IAA7C,CAAJ,EACI,OAPqB,CAQzB;IACA;;IACA,IAAIqgE,iCAAiC,GAAG,KAAxC;;IACA,IAAIF,MAAM,CAACG,eAAX,EAA4B;MACxB,MAAMC,cAAc,GAAGJ,MAAM,CAACviB,OAAP,CAAelmE,MAAf,GAAwByoF,MAAM,CAACK,uBAAP,CAA+B1mE,GAA/B,CAAmCjb,OAAnC,CAAxB,GAAsE,EAA7F,CADwB,CAExB;MACA;MACA;MACA;;MACA,IAAI0hF,cAAc,IAAIA,cAAc,CAAC7oF,MAArC,EAA6C;QACzC2oF,iCAAiC,GAAG,IAApC;MACH,CAFD,MAGK;QACD,IAAIr+D,MAAM,GAAGnjB,OAAb;;QACA,OAAOmjB,MAAM,GAAGA,MAAM,CAAC7R,UAAvB,EAAmC;UAC/B,MAAM6zB,QAAQ,GAAGm8C,MAAM,CAAC/B,eAAP,CAAuBtkE,GAAvB,CAA2BkI,MAA3B,CAAjB;;UACA,IAAIgiB,QAAJ,EAAc;YACVq8C,iCAAiC,GAAG,IAApC;YACA;UACH;QACJ;MACJ;IACJ,CA9BwB,CA+BzB;IACA;IACA;IACA;;;IACA,KAAKN,8BAAL,CAAoClhF,OAApC,EAnCyB,CAoCzB;IACA;;IACA,IAAIwhF,iCAAJ,EAAuC;MACnCF,MAAM,CAACN,oBAAP,CAA4B,KAAK75E,EAAjC,EAAqCnH,OAArC,EAA8C,KAA9C,EAAqDmhB,OAArD;IACH,CAFD,MAGK;MACD,MAAMygE,WAAW,GAAG5hF,OAAO,CAACw+E,YAAD,CAA3B;;MACA,IAAI,CAACoD,WAAD,IAAgBA,WAAW,KAAK3D,kBAApC,EAAwD;QACpD;QACA;QACAqD,MAAM,CAAC9B,UAAP,CAAkB,MAAM,KAAKa,iBAAL,CAAuBrgF,OAAvB,CAAxB;QACAshF,MAAM,CAACO,sBAAP,CAA8B7hF,OAA9B;;QACAshF,MAAM,CAACQ,kBAAP,CAA0B9hF,OAA1B,EAAmCmhB,OAAnC;MACH;IACJ;EACJ;;EACD4gE,UAAU,CAAC/hF,OAAD,EAAUmjB,MAAV,EAAkB;IACxB8c,QAAQ,CAACjgC,OAAD,EAAU,KAAKo/E,cAAf,CAAR;EACH;;EACD4C,sBAAsB,CAACC,WAAD,EAAc;IAChC,MAAMhR,YAAY,GAAG,EAArB;;IACA,KAAKiO,MAAL,CAAY9kF,OAAZ,CAAoBqiF,KAAK,IAAI;MACzB,MAAMtd,MAAM,GAAGsd,KAAK,CAACtd,MAArB;MACA,IAAIA,MAAM,CAAC+iB,SAAX,EACI;MACJ,MAAMliF,OAAO,GAAGy8E,KAAK,CAACz8E,OAAtB;;MACA,MAAMwlD,SAAS,GAAG,KAAK25B,iBAAL,CAAuBlkE,GAAvB,CAA2Bjb,OAA3B,CAAlB;;MACA,IAAIwlD,SAAJ,EAAe;QACXA,SAAS,CAACprD,OAAV,CAAmBuH,QAAD,IAAc;UAC5B,IAAIA,QAAQ,CAACyE,IAAT,IAAiBq2E,KAAK,CAACvY,WAA3B,EAAwC;YACpC,MAAMuZ,SAAS,GAAGxZ,kBAAkB,CAACjkE,OAAD,EAAUy8E,KAAK,CAACvY,WAAhB,EAA6BuY,KAAK,CAACtY,SAAN,CAAgB1qE,KAA7C,EAAoDgjF,KAAK,CAACrY,OAAN,CAAc3qE,KAAlE,CAApC;YACAgkF,SAAS,CAAC,OAAD,CAAT,GAAqBwE,WAArB;YACAle,cAAc,CAAC0Y,KAAK,CAACtd,MAAP,EAAex9D,QAAQ,CAAC2gE,KAAxB,EAA+Bmb,SAA/B,EAA0C97E,QAAQ,CAACuB,QAAnD,CAAd;UACH;QACJ,CAND;MAOH;;MACD,IAAIi8D,MAAM,CAACgjB,gBAAX,EAA6B;QACzB,KAAKnD,OAAL,CAAaQ,UAAb,CAAwB,MAAM;UAC1B;UACA;UACArgB,MAAM,CAACh/B,OAAP;QACH,CAJD;MAKH,CAND,MAOK;QACD8wC,YAAY,CAACn1E,IAAb,CAAkB2gF,KAAlB;MACH;IACJ,CAzBD;;IA0BA,KAAKyC,MAAL,GAAc,EAAd;IACA,OAAOjO,YAAY,CAAC7jC,IAAb,CAAkB,CAACj/B,CAAD,EAAIC,CAAJ,KAAU;MAC/B;MACA;MACA,MAAMg0E,EAAE,GAAGj0E,CAAC,CAACmmC,UAAF,CAAaw4B,GAAb,CAAiBM,QAA5B;MACA,MAAMiV,EAAE,GAAGj0E,CAAC,CAACkmC,UAAF,CAAaw4B,GAAb,CAAiBM,QAA5B;;MACA,IAAIgV,EAAE,IAAI,CAAN,IAAWC,EAAE,IAAI,CAArB,EAAwB;QACpB,OAAOD,EAAE,GAAGC,EAAZ;MACH;;MACD,OAAO,KAAKrD,OAAL,CAAa/b,MAAb,CAAoByC,eAApB,CAAoCv3D,CAAC,CAACnO,OAAtC,EAA+CoO,CAAC,CAACpO,OAAjD,IAA4D,CAA5D,GAAgE,CAAC,CAAxE;IACH,CATM,CAAP;EAUH;;EACDmgC,OAAO,CAAChf,OAAD,EAAU;IACb,KAAK49C,OAAL,CAAa3kE,OAAb,CAAqBuT,CAAC,IAAIA,CAAC,CAACwyB,OAAF,EAA1B;;IACA,KAAKogD,8BAAL,CAAoC,KAAK/uC,WAAzC,EAAsDrwB,OAAtD;EACH;;EACDmhE,mBAAmB,CAACtiF,OAAD,EAAU;IACzB,IAAIuiF,YAAY,GAAG,KAAnB;IACA,IAAI,KAAKpD,iBAAL,CAAuB1Z,GAAvB,CAA2BzlE,OAA3B,CAAJ,EACIuiF,YAAY,GAAG,IAAf;IACJA,YAAY,GACR,CAAC,KAAKrD,MAAL,CAAYhjC,IAAZ,CAAiBugC,KAAK,IAAIA,KAAK,CAACz8E,OAAN,KAAkBA,OAA5C,IAAuD,IAAvD,GAA8D,KAA/D,KAAyEuiF,YAD7E;IAEA,OAAOA,YAAP;EACH;;AAjW8B;;AAmWnC,MAAMC,yBAAN,CAAgC;EAC5BrqF,WAAW,CAAC8kF,QAAD,EAAWha,MAAX,EAAmBiZ,WAAnB,EAAgC;IACvC,KAAKe,QAAL,GAAgBA,QAAhB;IACA,KAAKha,MAAL,GAAcA,MAAd;IACA,KAAKiZ,WAAL,GAAmBA,WAAnB;IACA,KAAKnd,OAAL,GAAe,EAAf;IACA,KAAK0jB,eAAL,GAAuB,IAAIzvC,GAAJ,EAAvB;IACA,KAAK+sC,gBAAL,GAAwB,IAAI/sC,GAAJ,EAAxB;IACA,KAAK2uC,uBAAL,GAA+B,IAAI3uC,GAAJ,EAA/B;IACA,KAAKusC,eAAL,GAAuB,IAAIvsC,GAAJ,EAAvB;IACA,KAAK0vC,aAAL,GAAqB,IAAI5f,GAAJ,EAArB;IACA,KAAK2e,eAAL,GAAuB,CAAvB;IACA,KAAKvB,kBAAL,GAA0B,CAA1B;IACA,KAAKyC,gBAAL,GAAwB,EAAxB;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,SAAL,GAAiB,EAAjB;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKC,uBAAL,GAA+B,IAAI/vC,GAAJ,EAA/B;IACA,KAAKgwC,sBAAL,GAA8B,EAA9B;IACA,KAAKC,sBAAL,GAA8B,EAA9B,CAlBuC,CAmBvC;;IACA,KAAKC,iBAAL,GAAyB,CAACljF,OAAD,EAAUmhB,OAAV,KAAsB,CAAG,CAAlD;EACH;EACD;;;EACA2gE,kBAAkB,CAAC9hF,OAAD,EAAUmhB,OAAV,EAAmB;IACjC,KAAK+hE,iBAAL,CAAuBljF,OAAvB,EAAgCmhB,OAAhC;EACH;;EACgB,IAAbgiE,aAAa,GAAG;IAChB,MAAMpkB,OAAO,GAAG,EAAhB;;IACA,KAAK6jB,cAAL,CAAoBxoF,OAApB,CAA4BsmF,EAAE,IAAI;MAC9BA,EAAE,CAAC3hB,OAAH,CAAW3kE,OAAX,CAAmB+kE,MAAM,IAAI;QACzB,IAAIA,MAAM,CAAC6gB,MAAX,EAAmB;UACfjhB,OAAO,CAACjjE,IAAR,CAAaqjE,MAAb;QACH;MACJ,CAJD;IAKH,CAND;;IAOA,OAAOJ,OAAP;EACH;;EACDqkB,eAAe,CAAClF,WAAD,EAAc1sC,WAAd,EAA2B;IACtC,MAAMkvC,EAAE,GAAG,IAAI3B,4BAAJ,CAAiCb,WAAjC,EAA8C1sC,WAA9C,EAA2D,IAA3D,CAAX;;IACA,IAAI,KAAKyrC,QAAL,IAAiB,KAAKha,MAAL,CAAYyC,eAAZ,CAA4B,KAAKuX,QAAjC,EAA2CzrC,WAA3C,CAArB,EAA8E;MAC1E,KAAK6xC,qBAAL,CAA2B3C,EAA3B,EAA+BlvC,WAA/B;IACH,CAFD,MAGK;MACD;MACA;MACA;MACA,KAAKixC,eAAL,CAAqB7hE,GAArB,CAAyB4wB,WAAzB,EAAsCkvC,EAAtC,EAJC,CAKD;MACA;MACA;MACA;MACA;;MACA,KAAK4C,mBAAL,CAAyB9xC,WAAzB;IACH;;IACD,OAAO,KAAKmxC,gBAAL,CAAsBzE,WAAtB,IAAqCwC,EAA5C;EACH;;EACD2C,qBAAqB,CAAC3C,EAAD,EAAKlvC,WAAL,EAAkB;IACnC,MAAM+xC,aAAa,GAAG,KAAKX,cAA3B;IACA,MAAMG,uBAAuB,GAAG,KAAKA,uBAArC;IACA,MAAMrT,KAAK,GAAG6T,aAAa,CAAC1qF,MAAd,GAAuB,CAArC;;IACA,IAAI62E,KAAK,IAAI,CAAb,EAAgB;MACZ,IAAI3jE,KAAK,GAAG,KAAZ,CADY,CAEZ;MACA;;MACA,IAAIy3E,QAAQ,GAAG,KAAKvgB,MAAL,CAAY8B,gBAAZ,CAA6BvzB,WAA7B,CAAf;;MACA,OAAOgyC,QAAP,EAAiB;QACb,MAAMC,UAAU,GAAGV,uBAAuB,CAAC9nE,GAAxB,CAA4BuoE,QAA5B,CAAnB;;QACA,IAAIC,UAAJ,EAAgB;UACZ;UACA;UACA,MAAMl+E,KAAK,GAAGg+E,aAAa,CAAC5lF,OAAd,CAAsB8lF,UAAtB,CAAd;UACAF,aAAa,CAAC/2B,MAAd,CAAqBjnD,KAAK,GAAG,CAA7B,EAAgC,CAAhC,EAAmCm7E,EAAnC;UACA30E,KAAK,GAAG,IAAR;UACA;QACH;;QACDy3E,QAAQ,GAAG,KAAKvgB,MAAL,CAAY8B,gBAAZ,CAA6Bye,QAA7B,CAAX;MACH;;MACD,IAAI,CAACz3E,KAAL,EAAY;QACR;QACA;QACA;QACAw3E,aAAa,CAACh8B,OAAd,CAAsBm5B,EAAtB;MACH;IACJ,CAvBD,MAwBK;MACD6C,aAAa,CAACznF,IAAd,CAAmB4kF,EAAnB;IACH;;IACDqC,uBAAuB,CAACniE,GAAxB,CAA4B4wB,WAA5B,EAAyCkvC,EAAzC;IACA,OAAOA,EAAP;EACH;;EACDtD,QAAQ,CAACc,WAAD,EAAc1sC,WAAd,EAA2B;IAC/B,IAAIkvC,EAAE,GAAG,KAAKiC,gBAAL,CAAsBzE,WAAtB,CAAT;;IACA,IAAI,CAACwC,EAAL,EAAS;MACLA,EAAE,GAAG,KAAK0C,eAAL,CAAqBlF,WAArB,EAAkC1sC,WAAlC,CAAL;IACH;;IACD,OAAOkvC,EAAP;EACH;;EACDgD,eAAe,CAACxF,WAAD,EAAc93E,IAAd,EAAoBiuC,OAApB,EAA6B;IACxC,IAAIqsC,EAAE,GAAG,KAAKiC,gBAAL,CAAsBzE,WAAtB,CAAT;;IACA,IAAIwC,EAAE,IAAIA,EAAE,CAACtD,QAAH,CAAYh3E,IAAZ,EAAkBiuC,OAAlB,CAAV,EAAsC;MAClC,KAAKotC,eAAL;IACH;EACJ;;EACDthD,OAAO,CAAC+9C,WAAD,EAAc/8D,OAAd,EAAuB;IAC1B,IAAI,CAAC+8D,WAAL,EACI;;IACJ,MAAMwC,EAAE,GAAG,KAAKiD,eAAL,CAAqBzF,WAArB,CAAX;;IACA,KAAKsB,UAAL,CAAgB,MAAM;MAClB,KAAKuD,uBAAL,CAA6BnvC,MAA7B,CAAoC8sC,EAAE,CAAClvC,WAAvC;MACA,OAAO,KAAKmxC,gBAAL,CAAsBzE,WAAtB,CAAP;;MACA,MAAM34E,KAAK,GAAG,KAAKq9E,cAAL,CAAoBjlF,OAApB,CAA4B+iF,EAA5B,CAAd;;MACA,IAAIn7E,KAAK,IAAI,CAAb,EAAgB;QACZ,KAAKq9E,cAAL,CAAoBp2B,MAApB,CAA2BjnD,KAA3B,EAAkC,CAAlC;MACH;IACJ,CAPD;IAQA,KAAKq7E,wBAAL,CAA8B,MAAMF,EAAE,CAACvgD,OAAH,CAAWhf,OAAX,CAApC;EACH;;EACDwiE,eAAe,CAACx8E,EAAD,EAAK;IAChB,OAAO,KAAKw7E,gBAAL,CAAsBx7E,EAAtB,CAAP;EACH;;EACDs5E,wBAAwB,CAACzgF,OAAD,EAAU;IAC9B;IACA;IACA;IACA;IACA;IACA,MAAMwgF,UAAU,GAAG,IAAI1d,GAAJ,EAAnB;IACA,MAAMqe,aAAa,GAAG,KAAK5B,eAAL,CAAqBtkE,GAArB,CAAyBjb,OAAzB,CAAtB;;IACA,IAAImhF,aAAJ,EAAmB;MACf,KAAK,IAAIyC,UAAT,IAAuBzC,aAAa,CAAC7wE,MAAd,EAAvB,EAA+C;QAC3C,IAAIszE,UAAU,CAAC1F,WAAf,EAA4B;UACxB,MAAMwC,EAAE,GAAG,KAAKiD,eAAL,CAAqBC,UAAU,CAAC1F,WAAhC,CAAX;;UACA,IAAIwC,EAAJ,EAAQ;YACJF,UAAU,CAAC1oE,GAAX,CAAe4oE,EAAf;UACH;QACJ;MACJ;IACJ;;IACD,OAAOF,UAAP;EACH;;EACDnsC,OAAO,CAAC6pC,WAAD,EAAcl+E,OAAd,EAAuBoG,IAAvB,EAA6B3M,KAA7B,EAAoC;IACvC,IAAIoqF,aAAa,CAAC7jF,OAAD,CAAjB,EAA4B;MACxB,MAAM0gF,EAAE,GAAG,KAAKiD,eAAL,CAAqBzF,WAArB,CAAX;;MACA,IAAIwC,EAAJ,EAAQ;QACJA,EAAE,CAACrsC,OAAH,CAAWr0C,OAAX,EAAoBoG,IAApB,EAA0B3M,KAA1B;QACA,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;EACDsoF,UAAU,CAAC7D,WAAD,EAAcl+E,OAAd,EAAuBmjB,MAAvB,EAA+Bnc,YAA/B,EAA6C;IACnD,IAAI,CAAC68E,aAAa,CAAC7jF,OAAD,CAAlB,EACI,OAF+C,CAGnD;IACA;;IACA,MAAM8jF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;;IACA,IAAIsF,OAAO,IAAIA,OAAO,CAAC3F,aAAvB,EAAsC;MAClC2F,OAAO,CAAC3F,aAAR,GAAwB,KAAxB;MACA2F,OAAO,CAAC1F,UAAR,GAAqB,IAArB;MACA,MAAM74E,KAAK,GAAG,KAAK09E,sBAAL,CAA4BtlF,OAA5B,CAAoCqC,OAApC,CAAd;;MACA,IAAIuF,KAAK,IAAI,CAAb,EAAgB;QACZ,KAAK09E,sBAAL,CAA4Bz2B,MAA5B,CAAmCjnD,KAAnC,EAA0C,CAA1C;MACH;IACJ,CAbkD,CAcnD;IACA;IACA;;;IACA,IAAI24E,WAAJ,EAAiB;MACb,MAAMwC,EAAE,GAAG,KAAKiD,eAAL,CAAqBzF,WAArB,CAAX,CADa,CAEb;MACA;MACA;MACA;MACA;MACA;;;MACA,IAAIwC,EAAJ,EAAQ;QACJA,EAAE,CAACqB,UAAH,CAAc/hF,OAAd,EAAuBmjB,MAAvB;MACH;IACJ,CA5BkD,CA6BnD;;;IACA,IAAInc,YAAJ,EAAkB;MACd,KAAKs8E,mBAAL,CAAyBtjF,OAAzB;IACH;EACJ;;EACDsjF,mBAAmB,CAACtjF,OAAD,EAAU;IACzB,KAAKgjF,sBAAL,CAA4BlnF,IAA5B,CAAiCkE,OAAjC;EACH;;EACD+jF,qBAAqB,CAAC/jF,OAAD,EAAUvG,KAAV,EAAiB;IAClC,IAAIA,KAAJ,EAAW;MACP,IAAI,CAAC,KAAKipF,aAAL,CAAmBjd,GAAnB,CAAuBzlE,OAAvB,CAAL,EAAsC;QAClC,KAAK0iF,aAAL,CAAmB5qE,GAAnB,CAAuB9X,OAAvB;QACAigC,QAAQ,CAACjgC,OAAD,EAAU49E,kBAAV,CAAR;MACH;IACJ,CALD,MAMK,IAAI,KAAK8E,aAAL,CAAmBjd,GAAnB,CAAuBzlE,OAAvB,CAAJ,EAAqC;MACtC,KAAK0iF,aAAL,CAAmB9uC,MAAnB,CAA0B5zC,OAA1B;MACAmgF,WAAW,CAACngF,OAAD,EAAU49E,kBAAV,CAAX;IACH;EACJ;;EACDyD,UAAU,CAACnD,WAAD,EAAcl+E,OAAd,EAAuBgkF,aAAvB,EAAsC7iE,OAAtC,EAA+C;IACrD,IAAI0iE,aAAa,CAAC7jF,OAAD,CAAjB,EAA4B;MACxB,MAAM0gF,EAAE,GAAGxC,WAAW,GAAG,KAAKyF,eAAL,CAAqBzF,WAArB,CAAH,GAAuC,IAA7D;;MACA,IAAIwC,EAAJ,EAAQ;QACJA,EAAE,CAACW,UAAH,CAAcrhF,OAAd,EAAuBmhB,OAAvB;MACH,CAFD,MAGK;QACD,KAAK6/D,oBAAL,CAA0B9C,WAA1B,EAAuCl+E,OAAvC,EAAgD,KAAhD,EAAuDmhB,OAAvD;MACH;;MACD,IAAI6iE,aAAJ,EAAmB;QACf,MAAMC,MAAM,GAAG,KAAKlB,uBAAL,CAA6B9nE,GAA7B,CAAiCjb,OAAjC,CAAf;;QACA,IAAIikF,MAAM,IAAIA,MAAM,CAAC98E,EAAP,KAAc+2E,WAA5B,EAAyC;UACrC+F,MAAM,CAAC5C,UAAP,CAAkBrhF,OAAlB,EAA2BmhB,OAA3B;QACH;MACJ;IACJ,CAdD,MAeK;MACD,KAAK2gE,kBAAL,CAAwB9hF,OAAxB,EAAiCmhB,OAAjC;IACH;EACJ;;EACD6/D,oBAAoB,CAAC9C,WAAD,EAAcl+E,OAAd,EAAuBq+E,YAAvB,EAAqCl9D,OAArC,EAA8C4/D,sBAA9C,EAAsE;IACtF,KAAKkC,sBAAL,CAA4BnnF,IAA5B,CAAiCkE,OAAjC;IACAA,OAAO,CAACw+E,YAAD,CAAP,GAAwB;MACpBN,WADoB;MAEpBC,aAAa,EAAEh9D,OAFK;MAGpBk9D,YAHoB;MAIpBC,oBAAoB,EAAE,KAJF;MAKpByC;IALoB,CAAxB;EAOH;;EACD97C,MAAM,CAACi5C,WAAD,EAAcl+E,OAAd,EAAuBoG,IAAvB,EAA6Bk8D,KAA7B,EAAoCp/D,QAApC,EAA8C;IAChD,IAAI2gF,aAAa,CAAC7jF,OAAD,CAAjB,EAA4B;MACxB,OAAO,KAAK2jF,eAAL,CAAqBzF,WAArB,EAAkCj5C,MAAlC,CAAyCjlC,OAAzC,EAAkDoG,IAAlD,EAAwDk8D,KAAxD,EAA+Dp/D,QAA/D,CAAP;IACH;;IACD,OAAO,MAAM,CAAG,CAAhB;EACH;;EACDghF,iBAAiB,CAACzH,KAAD,EAAQ0H,YAAR,EAAsBxS,cAAtB,EAAsCC,cAAtC,EAAsDwS,YAAtD,EAAoE;IACjF,OAAO3H,KAAK,CAACnoC,UAAN,CAAiBhlC,KAAjB,CAAuB,KAAK2zD,MAA5B,EAAoCwZ,KAAK,CAACz8E,OAA1C,EAAmDy8E,KAAK,CAACtY,SAAN,CAAgB1qE,KAAnE,EAA0EgjF,KAAK,CAACrY,OAAN,CAAc3qE,KAAxF,EAA+Fk4E,cAA/F,EAA+GC,cAA/G,EAA+H6K,KAAK,CAACtY,SAAN,CAAgBpxD,OAA/I,EAAwJ0pE,KAAK,CAACrY,OAAN,CAAcrxD,OAAtK,EAA+KoxE,YAA/K,EAA6LC,YAA7L,CAAP;EACH;;EACDvC,sBAAsB,CAACwC,gBAAD,EAAmB;IACrC,IAAIlO,QAAQ,GAAG,KAAKlT,MAAL,CAAYlwC,KAAZ,CAAkBsxD,gBAAlB,EAAoCtd,mBAApC,EAAyD,IAAzD,CAAf;IACAoP,QAAQ,CAAC/7E,OAAT,CAAiB4F,OAAO,IAAI,KAAKskF,iCAAL,CAAuCtkF,OAAvC,CAA5B;IACA,IAAI,KAAK2hF,uBAAL,CAA6B97E,IAA7B,IAAqC,CAAzC,EACI;IACJswE,QAAQ,GAAG,KAAKlT,MAAL,CAAYlwC,KAAZ,CAAkBsxD,gBAAlB,EAAoCpd,qBAApC,EAA2D,IAA3D,CAAX;IACAkP,QAAQ,CAAC/7E,OAAT,CAAiB4F,OAAO,IAAI,KAAKukF,qCAAL,CAA2CvkF,OAA3C,CAA5B;EACH;;EACDskF,iCAAiC,CAACtkF,OAAD,EAAU;IACvC,MAAM++D,OAAO,GAAG,KAAKghB,gBAAL,CAAsB9kE,GAAtB,CAA0Bjb,OAA1B,CAAhB;;IACA,IAAI++D,OAAJ,EAAa;MACTA,OAAO,CAAC3kE,OAAR,CAAgB+kE,MAAM,IAAI;QACtB;QACA;QACA;QACA,IAAIA,MAAM,CAAC6gB,MAAX,EAAmB;UACf7gB,MAAM,CAACgjB,gBAAP,GAA0B,IAA1B;QACH,CAFD,MAGK;UACDhjB,MAAM,CAACh/B,OAAP;QACH;MACJ,CAVD;IAWH;EACJ;;EACDokD,qCAAqC,CAACvkF,OAAD,EAAU;IAC3C,MAAM++D,OAAO,GAAG,KAAK4iB,uBAAL,CAA6B1mE,GAA7B,CAAiCjb,OAAjC,CAAhB;;IACA,IAAI++D,OAAJ,EAAa;MACTA,OAAO,CAAC3kE,OAAR,CAAgB+kE,MAAM,IAAIA,MAAM,CAACZ,MAAP,EAA1B;IACH;EACJ;;EACDimB,iBAAiB,GAAG;IAChB,OAAO,IAAI9+E,OAAJ,CAAYlC,OAAO,IAAI;MAC1B,IAAI,KAAKu7D,OAAL,CAAalmE,MAAjB,EAAyB;QACrB,OAAOkqE,mBAAmB,CAAC,KAAKhE,OAAN,CAAnB,CAAkC1+B,MAAlC,CAAyC,MAAM78B,OAAO,EAAtD,CAAP;MACH,CAFD,MAGK;QACDA,OAAO;MACV;IACJ,CAPM,CAAP;EAQH;;EACDy9E,gBAAgB,CAACjhF,OAAD,EAAU;IACtB,MAAM8jF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;;IACA,IAAIsF,OAAO,IAAIA,OAAO,CAAC3F,aAAvB,EAAsC;MAClC;MACAn+E,OAAO,CAACw+E,YAAD,CAAP,GAAwBP,kBAAxB;;MACA,IAAI6F,OAAO,CAAC5F,WAAZ,EAAyB;QACrB,KAAK2D,sBAAL,CAA4B7hF,OAA5B;;QACA,MAAM0gF,EAAE,GAAG,KAAKiD,eAAL,CAAqBG,OAAO,CAAC5F,WAA7B,CAAX;;QACA,IAAIwC,EAAJ,EAAQ;UACJA,EAAE,CAACL,iBAAH,CAAqBrgF,OAArB;QACH;MACJ;;MACD,KAAK8hF,kBAAL,CAAwB9hF,OAAxB,EAAiC8jF,OAAO,CAAC3F,aAAzC;IACH;;IACD,IAAIn+E,OAAO,CAAC0H,SAAR,EAAmB+hC,QAAnB,CAA4Bm0C,kBAA5B,CAAJ,EAAqD;MACjD,KAAKmG,qBAAL,CAA2B/jF,OAA3B,EAAoC,KAApC;IACH;;IACD,KAAKijE,MAAL,CAAYlwC,KAAZ,CAAkB/yB,OAAlB,EAA2B69E,iBAA3B,EAA8C,IAA9C,EAAoDzjF,OAApD,CAA4DqN,IAAI,IAAI;MAChE,KAAKs8E,qBAAL,CAA2Bt8E,IAA3B,EAAiC,KAAjC;IACH,CAFD;EAGH;;EACD8yD,KAAK,CAAC0nB,WAAW,GAAG,CAAC,CAAhB,EAAmB;IACpB,IAAIljB,OAAO,GAAG,EAAd;;IACA,IAAI,KAAK0jB,eAAL,CAAqB58E,IAAzB,EAA+B;MAC3B,KAAK48E,eAAL,CAAqBroF,OAArB,CAA6B,CAACsmF,EAAD,EAAK1gF,OAAL,KAAiB,KAAKqjF,qBAAL,CAA2B3C,EAA3B,EAA+B1gF,OAA/B,CAA9C;MACA,KAAKyiF,eAAL,CAAqBtR,KAArB;IACH;;IACD,IAAI,KAAKsQ,eAAL,IAAwB,KAAKuB,sBAAL,CAA4BnqF,MAAxD,EAAgE;MAC5D,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKoqF,sBAAL,CAA4BnqF,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;QACzD,MAAMsiF,GAAG,GAAG,KAAK8H,sBAAL,CAA4BpqF,CAA5B,CAAZ;QACAqnC,QAAQ,CAACi7C,GAAD,EAAM4C,cAAN,CAAR;MACH;IACJ;;IACD,IAAI,KAAK8E,cAAL,CAAoB/pF,MAApB,KACC,KAAKqnF,kBAAL,IAA2B,KAAK+C,sBAAL,CAA4BpqF,MADxD,CAAJ,EACqE;MACjE,MAAM4rF,UAAU,GAAG,EAAnB;;MACA,IAAI;QACA1lB,OAAO,GAAG,KAAK2lB,gBAAL,CAAsBD,UAAtB,EAAkCxC,WAAlC,CAAV;MACH,CAFD,SAGQ;QACJ,KAAK,IAAIrpF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6rF,UAAU,CAAC5rF,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;UACxC6rF,UAAU,CAAC7rF,CAAD,CAAV;QACH;MACJ;IACJ,CAXD,MAYK;MACD,KAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKqqF,sBAAL,CAA4BpqF,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;QACzD,MAAMoH,OAAO,GAAG,KAAKijF,sBAAL,CAA4BrqF,CAA5B,CAAhB;QACA,KAAKqoF,gBAAL,CAAsBjhF,OAAtB;MACH;IACJ;;IACD,KAAKkgF,kBAAL,GAA0B,CAA1B;IACA,KAAK8C,sBAAL,CAA4BnqF,MAA5B,GAAqC,CAArC;IACA,KAAKoqF,sBAAL,CAA4BpqF,MAA5B,GAAqC,CAArC;;IACA,KAAKgqF,SAAL,CAAezoF,OAAf,CAAuB0H,EAAE,IAAIA,EAAE,EAA/B;;IACA,KAAK+gF,SAAL,GAAiB,EAAjB;;IACA,IAAI,KAAKC,aAAL,CAAmBjqF,MAAvB,EAA+B;MAC3B;MACA;MACA;MACA,MAAM8rF,QAAQ,GAAG,KAAK7B,aAAtB;MACA,KAAKA,aAAL,GAAqB,EAArB;;MACA,IAAI/jB,OAAO,CAAClmE,MAAZ,EAAoB;QAChBkqE,mBAAmB,CAAChE,OAAD,CAAnB,CAA6B1+B,MAA7B,CAAoC,MAAM;UACtCskD,QAAQ,CAACvqF,OAAT,CAAiB0H,EAAE,IAAIA,EAAE,EAAzB;QACH,CAFD;MAGH,CAJD,MAKK;QACD6iF,QAAQ,CAACvqF,OAAT,CAAiB0H,EAAE,IAAIA,EAAE,EAAzB;MACH;IACJ;EACJ;;EACD+9E,WAAW,CAACryB,MAAD,EAAS;IAChB,MAAMkV,wBAAwB,CAAClV,MAAD,CAA9B;EACH;;EACDk3B,gBAAgB,CAACD,UAAD,EAAaxC,WAAb,EAA0B;IACtC,MAAMkC,YAAY,GAAG,IAAIrT,qBAAJ,EAArB;IACA,MAAM8T,cAAc,GAAG,EAAvB;IACA,MAAMC,iBAAiB,GAAG,IAAI7xC,GAAJ,EAA1B;IACA,MAAM8xC,kBAAkB,GAAG,EAA3B;IACA,MAAMpL,eAAe,GAAG,IAAI1mC,GAAJ,EAAxB;IACA,MAAM+xC,mBAAmB,GAAG,IAAI/xC,GAAJ,EAA5B;IACA,MAAMgyC,oBAAoB,GAAG,IAAIhyC,GAAJ,EAA7B;IACA,MAAMiyC,mBAAmB,GAAG,IAAIniB,GAAJ,EAA5B;IACA,KAAK4f,aAAL,CAAmBtoF,OAAnB,CAA2BqN,IAAI,IAAI;MAC/Bw9E,mBAAmB,CAACntE,GAApB,CAAwBrQ,IAAxB;MACA,MAAMy9E,oBAAoB,GAAG,KAAKjiB,MAAL,CAAYlwC,KAAZ,CAAkBtrB,IAAlB,EAAwBk2E,eAAxB,EAAyC,IAAzC,CAA7B;;MACA,KAAK,IAAI/kF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGssF,oBAAoB,CAACrsF,MAAzC,EAAiDD,CAAC,EAAlD,EAAsD;QAClDqsF,mBAAmB,CAACntE,GAApB,CAAwBotE,oBAAoB,CAACtsF,CAAD,CAA5C;MACH;IACJ,CAND;IAOA,MAAMqkF,QAAQ,GAAG,KAAKA,QAAtB;IACA,MAAMkI,kBAAkB,GAAGrqF,KAAK,CAACM,IAAN,CAAW,KAAKmkF,eAAL,CAAqBzlF,IAArB,EAAX,CAA3B;IACA,MAAMsrF,YAAY,GAAGC,YAAY,CAACF,kBAAD,EAAqB,KAAKnC,sBAA1B,CAAjC,CAlBsC,CAmBtC;IACA;IACA;;IACA,MAAMsC,eAAe,GAAG,IAAItyC,GAAJ,EAAxB;IACA,IAAIp6C,CAAC,GAAG,CAAR;IACAwsF,YAAY,CAAChrF,OAAb,CAAqB,CAAC0nC,KAAD,EAAQpqB,IAAR,KAAiB;MAClC,MAAMg2B,SAAS,GAAGk5B,eAAe,GAAGhuE,CAAC,EAArC;MACA0sF,eAAe,CAAC1kE,GAAhB,CAAoBlJ,IAApB,EAA0Bg2B,SAA1B;MACA5L,KAAK,CAAC1nC,OAAN,CAAcqN,IAAI,IAAIw4B,QAAQ,CAACx4B,IAAD,EAAOimC,SAAP,CAA9B;IACH,CAJD;IAKA,MAAM63C,aAAa,GAAG,EAAtB;IACA,MAAMC,gBAAgB,GAAG,IAAI1iB,GAAJ,EAAzB;IACA,MAAM2iB,2BAA2B,GAAG,IAAI3iB,GAAJ,EAApC;;IACA,KAAK,IAAIlqE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKqqF,sBAAL,CAA4BpqF,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;MACzD,MAAMoH,OAAO,GAAG,KAAKijF,sBAAL,CAA4BrqF,CAA5B,CAAhB;MACA,MAAMkrF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;;MACA,IAAIsF,OAAO,IAAIA,OAAO,CAAC3F,aAAvB,EAAsC;QAClCoH,aAAa,CAACzpF,IAAd,CAAmBkE,OAAnB;QACAwlF,gBAAgB,CAAC1tE,GAAjB,CAAqB9X,OAArB;;QACA,IAAI8jF,OAAO,CAACzF,YAAZ,EAA0B;UACtB,KAAKpb,MAAL,CAAYlwC,KAAZ,CAAkB/yB,OAAlB,EAA2B+9E,aAA3B,EAA0C,IAA1C,EAAgD3jF,OAAhD,CAAwD8gF,GAAG,IAAIsK,gBAAgB,CAAC1tE,GAAjB,CAAqBojE,GAArB,CAA/D;QACH,CAFD,MAGK;UACDuK,2BAA2B,CAAC3tE,GAA5B,CAAgC9X,OAAhC;QACH;MACJ;IACJ;;IACD,MAAM0lF,eAAe,GAAG,IAAI1yC,GAAJ,EAAxB;IACA,MAAM2yC,YAAY,GAAGN,YAAY,CAACF,kBAAD,EAAqBrqF,KAAK,CAACM,IAAN,CAAWoqF,gBAAX,CAArB,CAAjC;IACAG,YAAY,CAACvrF,OAAb,CAAqB,CAAC0nC,KAAD,EAAQpqB,IAAR,KAAiB;MAClC,MAAMg2B,SAAS,GAAGm5B,eAAe,GAAGjuE,CAAC,EAArC;MACA8sF,eAAe,CAAC9kE,GAAhB,CAAoBlJ,IAApB,EAA0Bg2B,SAA1B;MACA5L,KAAK,CAAC1nC,OAAN,CAAcqN,IAAI,IAAIw4B,QAAQ,CAACx4B,IAAD,EAAOimC,SAAP,CAA9B;IACH,CAJD;IAKA+2C,UAAU,CAAC3oF,IAAX,CAAgB,MAAM;MAClBspF,YAAY,CAAChrF,OAAb,CAAqB,CAAC0nC,KAAD,EAAQpqB,IAAR,KAAiB;QAClC,MAAMg2B,SAAS,GAAG43C,eAAe,CAACrqE,GAAhB,CAAoBvD,IAApB,CAAlB;QACAoqB,KAAK,CAAC1nC,OAAN,CAAcqN,IAAI,IAAI04E,WAAW,CAAC14E,IAAD,EAAOimC,SAAP,CAAjC;MACH,CAHD;MAIAi4C,YAAY,CAACvrF,OAAb,CAAqB,CAAC0nC,KAAD,EAAQpqB,IAAR,KAAiB;QAClC,MAAMg2B,SAAS,GAAGg4C,eAAe,CAACzqE,GAAhB,CAAoBvD,IAApB,CAAlB;QACAoqB,KAAK,CAAC1nC,OAAN,CAAcqN,IAAI,IAAI04E,WAAW,CAAC14E,IAAD,EAAOimC,SAAP,CAAjC;MACH,CAHD;MAIA63C,aAAa,CAACnrF,OAAd,CAAsB4F,OAAO,IAAI;QAC7B,KAAKihF,gBAAL,CAAsBjhF,OAAtB;MACH,CAFD;IAGH,CAZD;IAaA,MAAM4lF,UAAU,GAAG,EAAnB;IACA,MAAMC,oBAAoB,GAAG,EAA7B;;IACA,KAAK,IAAIjtF,CAAC,GAAG,KAAKgqF,cAAL,CAAoB/pF,MAApB,GAA6B,CAA1C,EAA6CD,CAAC,IAAI,CAAlD,EAAqDA,CAAC,EAAtD,EAA0D;MACtD,MAAM8nF,EAAE,GAAG,KAAKkC,cAAL,CAAoBhqF,CAApB,CAAX;MACA8nF,EAAE,CAACsB,sBAAH,CAA0BC,WAA1B,EAAuC7nF,OAAvC,CAA+CqiF,KAAK,IAAI;QACpD,MAAMtd,MAAM,GAAGsd,KAAK,CAACtd,MAArB;QACA,MAAMn/D,OAAO,GAAGy8E,KAAK,CAACz8E,OAAtB;QACA4lF,UAAU,CAAC9pF,IAAX,CAAgBqjE,MAAhB;;QACA,IAAI,KAAK6jB,sBAAL,CAA4BnqF,MAAhC,EAAwC;UACpC,MAAMirF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB,CADoC,CAEpC;UACA;;UACA,IAAIsF,OAAO,IAAIA,OAAO,CAAC1F,UAAvB,EAAmC;YAC/B,IAAI0F,OAAO,CAAC/C,sBAAR,IACA+C,OAAO,CAAC/C,sBAAR,CAA+Btb,GAA/B,CAAmCgX,KAAK,CAACvY,WAAzC,CADJ,EAC2D;cACvD,MAAM4hB,aAAa,GAAGhC,OAAO,CAAC/C,sBAAR,CAA+B9lE,GAA/B,CAAmCwhE,KAAK,CAACvY,WAAzC,CAAtB,CADuD,CAEvD;cACA;;cACA,MAAMob,kBAAkB,GAAG,KAAKC,eAAL,CAAqBtkE,GAArB,CAAyBwhE,KAAK,CAACz8E,OAA/B,CAA3B;;cACA,IAAIs/E,kBAAkB,IAAIA,kBAAkB,CAAC7Z,GAAnB,CAAuBgX,KAAK,CAACvY,WAA7B,CAA1B,EAAqE;gBACjE,MAAMplD,KAAK,GAAGwgE,kBAAkB,CAACrkE,GAAnB,CAAuBwhE,KAAK,CAACvY,WAA7B,CAAd;gBACAplD,KAAK,CAACrlB,KAAN,GAAcqsF,aAAd;gBACAxG,kBAAkB,CAAC1+D,GAAnB,CAAuB67D,KAAK,CAACvY,WAA7B,EAA0CplD,KAA1C;cACH;YACJ;;YACDqgD,MAAM,CAACh/B,OAAP;YACA;UACH;QACJ;;QACD,MAAM4lD,cAAc,GAAG,CAAC9I,QAAD,IAAa,CAAC,KAAKha,MAAL,CAAYyC,eAAZ,CAA4BuX,QAA5B,EAAsCj9E,OAAtC,CAArC;QACA,MAAM4xE,cAAc,GAAG8T,eAAe,CAACzqE,GAAhB,CAAoBjb,OAApB,CAAvB;QACA,MAAM2xE,cAAc,GAAG2T,eAAe,CAACrqE,GAAhB,CAAoBjb,OAApB,CAAvB;;QACA,MAAMqzE,WAAW,GAAG,KAAK6Q,iBAAL,CAAuBzH,KAAvB,EAA8B0H,YAA9B,EAA4CxS,cAA5C,EAA4DC,cAA5D,EAA4EmU,cAA5E,CAApB;;QACA,IAAI1S,WAAW,CAAC7lB,MAAZ,IAAsB6lB,WAAW,CAAC7lB,MAAZ,CAAmB30D,MAA7C,EAAqD;UACjDgtF,oBAAoB,CAAC/pF,IAArB,CAA0Bu3E,WAA1B;UACA;QACH,CAhCmD,CAiCpD;QACA;QACA;QACA;;;QACA,IAAI0S,cAAJ,EAAoB;UAChB5mB,MAAM,CAACnB,OAAP,CAAe,MAAM2K,WAAW,CAAC3oE,OAAD,EAAUqzE,WAAW,CAACmG,UAAtB,CAAhC;UACAra,MAAM,CAAClB,SAAP,CAAiB,MAAM1uB,SAAS,CAACvvC,OAAD,EAAUqzE,WAAW,CAACoG,QAAtB,CAAhC;UACAmL,cAAc,CAAC9oF,IAAf,CAAoBqjE,MAApB;UACA;QACH,CA1CmD,CA2CpD;QACA;QACA;;;QACA,IAAIsd,KAAK,CAACwD,oBAAV,EAAgC;UAC5B9gB,MAAM,CAACnB,OAAP,CAAe,MAAM2K,WAAW,CAAC3oE,OAAD,EAAUqzE,WAAW,CAACmG,UAAtB,CAAhC;UACAra,MAAM,CAAClB,SAAP,CAAiB,MAAM1uB,SAAS,CAACvvC,OAAD,EAAUqzE,WAAW,CAACoG,QAAtB,CAAhC;UACAmL,cAAc,CAAC9oF,IAAf,CAAoBqjE,MAApB;UACA;QACH,CAnDmD,CAoDpD;QACA;QACA;QACA;QACA;;;QACA,MAAMkT,SAAS,GAAG,EAAlB;QACAgB,WAAW,CAAChB,SAAZ,CAAsBj4E,OAAtB,CAA8Bw6E,EAAE,IAAI;UAChCA,EAAE,CAACsB,uBAAH,GAA6B,IAA7B;;UACA,IAAI,CAAC,KAAKwM,aAAL,CAAmBjd,GAAnB,CAAuBmP,EAAE,CAAC50E,OAA1B,CAAL,EAAyC;YACrCqyE,SAAS,CAACv2E,IAAV,CAAe84E,EAAf;UACH;QACJ,CALD;QAMAvB,WAAW,CAAChB,SAAZ,GAAwBA,SAAxB;QACA8R,YAAY,CAACnT,MAAb,CAAoBhxE,OAApB,EAA6BqzE,WAAW,CAAChB,SAAzC;QACA,MAAMrD,KAAK,GAAG;UAAEqE,WAAF;UAAelU,MAAf;UAAuBn/D;QAAvB,CAAd;QACA8kF,kBAAkB,CAAChpF,IAAnB,CAAwBkzE,KAAxB;QACAqE,WAAW,CAACqG,eAAZ,CAA4Bt/E,OAA5B,CAAoC4F,OAAO,IAAIqkE,oBAAoB,CAACqV,eAAD,EAAkB15E,OAAlB,EAA2B,EAA3B,CAApB,CAAmDlE,IAAnD,CAAwDqjE,MAAxD,CAA/C;QACAkU,WAAW,CAAC1C,aAAZ,CAA0Bv2E,OAA1B,CAAkC,CAAC4rF,SAAD,EAAYhmF,OAAZ,KAAwB;UACtD,IAAIgmF,SAAS,CAACngF,IAAd,EAAoB;YAChB,IAAIogF,MAAM,GAAGlB,mBAAmB,CAAC9pE,GAApB,CAAwBjb,OAAxB,CAAb;;YACA,IAAI,CAACimF,MAAL,EAAa;cACTlB,mBAAmB,CAACnkE,GAApB,CAAwB5gB,OAAxB,EAAiCimF,MAAM,GAAG,IAAInjB,GAAJ,EAA1C;YACH;;YACDkjB,SAAS,CAAC5rF,OAAV,CAAkB,CAACwuE,CAAD,EAAI70D,IAAJ,KAAakyE,MAAM,CAACnuE,GAAP,CAAW/D,IAAX,CAA/B;UACH;QACJ,CARD;QASAs/D,WAAW,CAACzC,cAAZ,CAA2Bx2E,OAA3B,CAAmC,CAAC4rF,SAAD,EAAYhmF,OAAZ,KAAwB;UACvD,IAAIimF,MAAM,GAAGjB,oBAAoB,CAAC/pE,GAArB,CAAyBjb,OAAzB,CAAb;;UACA,IAAI,CAACimF,MAAL,EAAa;YACTjB,oBAAoB,CAACpkE,GAArB,CAAyB5gB,OAAzB,EAAkCimF,MAAM,GAAG,IAAInjB,GAAJ,EAA3C;UACH;;UACDkjB,SAAS,CAAC5rF,OAAV,CAAkB,CAACwuE,CAAD,EAAI70D,IAAJ,KAAakyE,MAAM,CAACnuE,GAAP,CAAW/D,IAAX,CAA/B;QACH,CAND;MAOH,CArFD;IAsFH;;IACD,IAAI8xE,oBAAoB,CAAChtF,MAAzB,EAAiC;MAC7B,MAAM20D,MAAM,GAAG,EAAf;MACAq4B,oBAAoB,CAACzrF,OAArB,CAA6Bi5E,WAAW,IAAI;QACxC7lB,MAAM,CAAC1xD,IAAP,CAAY8mE,gBAAgB,CAACyQ,WAAW,CAACnP,WAAb,EAA0BmP,WAAW,CAAC7lB,MAAtC,CAA5B;MACH,CAFD;MAGAo4B,UAAU,CAACxrF,OAAX,CAAmB+kE,MAAM,IAAIA,MAAM,CAACh/B,OAAP,EAA7B;MACA,KAAK0/C,WAAL,CAAiBryB,MAAjB;IACH;;IACD,MAAM04B,qBAAqB,GAAG,IAAIlzC,GAAJ,EAA9B,CArKsC,CAsKtC;IACA;IACA;IACA;;IACA,MAAMmzC,mBAAmB,GAAG,IAAInzC,GAAJ,EAA5B;IACA8xC,kBAAkB,CAAC1qF,OAAnB,CAA2BqiF,KAAK,IAAI;MAChC,MAAMz8E,OAAO,GAAGy8E,KAAK,CAACz8E,OAAtB;;MACA,IAAImkF,YAAY,CAAC1e,GAAb,CAAiBzlE,OAAjB,CAAJ,EAA+B;QAC3BmmF,mBAAmB,CAACvlE,GAApB,CAAwB5gB,OAAxB,EAAiCA,OAAjC;;QACA,KAAKomF,qBAAL,CAA2B3J,KAAK,CAACtd,MAAN,CAAa+e,WAAxC,EAAqDzB,KAAK,CAACpJ,WAA3D,EAAwE6S,qBAAxE;MACH;IACJ,CAND;IAOAtB,cAAc,CAACxqF,OAAf,CAAuB+kE,MAAM,IAAI;MAC7B,MAAMn/D,OAAO,GAAGm/D,MAAM,CAACn/D,OAAvB;;MACA,MAAMsmE,eAAe,GAAG,KAAK+f,mBAAL,CAAyBrmF,OAAzB,EAAkC,KAAlC,EAAyCm/D,MAAM,CAAC+e,WAAhD,EAA6D/e,MAAM,CAAC+E,WAApE,EAAiF,IAAjF,CAAxB;;MACAoC,eAAe,CAAClsE,OAAhB,CAAwBksF,UAAU,IAAI;QAClCjiB,oBAAoB,CAAC6hB,qBAAD,EAAwBlmF,OAAxB,EAAiC,EAAjC,CAApB,CAAyDlE,IAAzD,CAA8DwqF,UAA9D;QACAA,UAAU,CAACnmD,OAAX;MACH,CAHD;IAIH,CAPD,EAlLsC,CA0LtC;IACA;IACA;IACA;IACA;IACA;IACA;;IACA,MAAMomD,YAAY,GAAGhB,aAAa,CAACtrF,MAAd,CAAqBwN,IAAI,IAAI;MAC9C,OAAO++E,sBAAsB,CAAC/+E,IAAD,EAAOs9E,mBAAP,EAA4BC,oBAA5B,CAA7B;IACH,CAFoB,CAArB,CAjMsC,CAoMtC;;IACA,MAAMyB,aAAa,GAAG,IAAIzzC,GAAJ,EAAtB;IACA,MAAM0zC,oBAAoB,GAAGC,qBAAqB,CAACF,aAAD,EAAgB,KAAKxjB,MAArB,EAA6BwiB,2BAA7B,EAA0DT,oBAA1D,EAAgF3oB,2DAAhF,CAAlD;IACAqqB,oBAAoB,CAACtsF,OAArB,CAA6BqN,IAAI,IAAI;MACjC,IAAI++E,sBAAsB,CAAC/+E,IAAD,EAAOs9E,mBAAP,EAA4BC,oBAA5B,CAA1B,EAA6E;QACzEuB,YAAY,CAACzqF,IAAb,CAAkB2L,IAAlB;MACH;IACJ,CAJD,EAvMsC,CA4MtC;;IACA,MAAMm/E,YAAY,GAAG,IAAI5zC,GAAJ,EAArB;IACAoyC,YAAY,CAAChrF,OAAb,CAAqB,CAAC0nC,KAAD,EAAQpqB,IAAR,KAAiB;MAClCivE,qBAAqB,CAACC,YAAD,EAAe,KAAK3jB,MAApB,EAA4B,IAAIH,GAAJ,CAAQhhC,KAAR,CAA5B,EAA4CijD,mBAA5C,EAAiEplB,8DAAjE,CAArB;IACH,CAFD;IAGA4mB,YAAY,CAACnsF,OAAb,CAAqBqN,IAAI,IAAI;MACzB,MAAMo/E,IAAI,GAAGJ,aAAa,CAACxrE,GAAd,CAAkBxT,IAAlB,CAAb;MACA,MAAMq/E,GAAG,GAAGF,YAAY,CAAC3rE,GAAb,CAAiBxT,IAAjB,CAAZ;MACAg/E,aAAa,CAAC7lE,GAAd,CAAkBnZ,IAAlB,EAAwB,IAAIurC,GAAJ,CAAQ,CAAC,GAAGl4C,KAAK,CAACM,IAAN,CAAWyrF,IAAI,EAAErL,OAAN,MAAmB,EAA9B,CAAJ,EAAuC,GAAG1gF,KAAK,CAACM,IAAN,CAAW0rF,GAAG,EAAEtL,OAAL,MAAkB,EAA7B,CAA1C,CAAR,CAAxB;IACH,CAJD;IAKA,MAAMuL,WAAW,GAAG,EAApB;IACA,MAAMC,UAAU,GAAG,EAAnB;IACA,MAAMC,oCAAoC,GAAG,EAA7C;IACAnC,kBAAkB,CAAC1qF,OAAnB,CAA2BqiF,KAAK,IAAI;MAChC,MAAM;QAAEz8E,OAAF;QAAWm/D,MAAX;QAAmBkU;MAAnB,IAAmCoJ,KAAzC,CADgC,CAEhC;MACA;;MACA,IAAI0H,YAAY,CAAC1e,GAAb,CAAiBzlE,OAAjB,CAAJ,EAA+B;QAC3B,IAAIilF,mBAAmB,CAACxf,GAApB,CAAwBzlE,OAAxB,CAAJ,EAAsC;UAClCm/D,MAAM,CAAClB,SAAP,CAAiB,MAAM1uB,SAAS,CAACvvC,OAAD,EAAUqzE,WAAW,CAACoG,QAAtB,CAAhC;UACAta,MAAM,CAACzsD,QAAP,GAAkB,IAAlB;UACAysD,MAAM,CAAC+nB,iBAAP,CAAyB7T,WAAW,CAACvV,SAArC;UACA8mB,cAAc,CAAC9oF,IAAf,CAAoBqjE,MAApB;UACA;QACH,CAP0B,CAQ3B;QACA;QACA;QACA;QACA;QACA;;;QACA,IAAIgoB,mBAAmB,GAAGF,oCAA1B;;QACA,IAAId,mBAAmB,CAACtgF,IAApB,GAA2B,CAA/B,EAAkC;UAC9B,IAAIq1E,GAAG,GAAGl7E,OAAV;UACA,MAAMonF,YAAY,GAAG,EAArB;;UACA,OAAOlM,GAAG,GAAGA,GAAG,CAAC5pE,UAAjB,EAA6B;YACzB,MAAM+1E,cAAc,GAAGlB,mBAAmB,CAAClrE,GAApB,CAAwBigE,GAAxB,CAAvB;;YACA,IAAImM,cAAJ,EAAoB;cAChBF,mBAAmB,GAAGE,cAAtB;cACA;YACH;;YACDD,YAAY,CAACtrF,IAAb,CAAkBo/E,GAAlB;UACH;;UACDkM,YAAY,CAAChtF,OAAb,CAAqB+oB,MAAM,IAAIgjE,mBAAmB,CAACvlE,GAApB,CAAwBuC,MAAxB,EAAgCgkE,mBAAhC,CAA/B;QACH;;QACD,MAAMG,WAAW,GAAG,KAAKC,eAAL,CAAqBpoB,MAAM,CAAC+e,WAA5B,EAAyC7K,WAAzC,EAAsD6S,qBAAtD,EAA6ErB,iBAA7E,EAAgG+B,YAAhG,EAA8GH,aAA9G,CAApB;;QACAtnB,MAAM,CAACqoB,aAAP,CAAqBF,WAArB;;QACA,IAAIH,mBAAmB,KAAKF,oCAA5B,EAAkE;UAC9DF,WAAW,CAACjrF,IAAZ,CAAiBqjE,MAAjB;QACH,CAFD,MAGK;UACD,MAAMsoB,aAAa,GAAG,KAAK1H,gBAAL,CAAsB9kE,GAAtB,CAA0BksE,mBAA1B,CAAtB;;UACA,IAAIM,aAAa,IAAIA,aAAa,CAAC5uF,MAAnC,EAA2C;YACvCsmE,MAAM,CAACtB,YAAP,GAAsBkF,mBAAmB,CAAC0kB,aAAD,CAAzC;UACH;;UACD7C,cAAc,CAAC9oF,IAAf,CAAoBqjE,MAApB;QACH;MACJ,CAxCD,MAyCK;QACDwJ,WAAW,CAAC3oE,OAAD,EAAUqzE,WAAW,CAACmG,UAAtB,CAAX;QACAra,MAAM,CAAClB,SAAP,CAAiB,MAAM1uB,SAAS,CAACvvC,OAAD,EAAUqzE,WAAW,CAACoG,QAAtB,CAAhC,EAFC,CAGD;QACA;QACA;;QACAuN,UAAU,CAAClrF,IAAX,CAAgBqjE,MAAhB;;QACA,IAAI8lB,mBAAmB,CAACxf,GAApB,CAAwBzlE,OAAxB,CAAJ,EAAsC;UAClC4kF,cAAc,CAAC9oF,IAAf,CAAoBqjE,MAApB;QACH;MACJ;IACJ,CAxDD,EAzNsC,CAkRtC;;IACA6nB,UAAU,CAAC5sF,OAAX,CAAmB+kE,MAAM,IAAI;MACzB;MACA;MACA,MAAMuoB,iBAAiB,GAAG7C,iBAAiB,CAAC5pE,GAAlB,CAAsBkkD,MAAM,CAACn/D,OAA7B,CAA1B;;MACA,IAAI0nF,iBAAiB,IAAIA,iBAAiB,CAAC7uF,MAA3C,EAAmD;QAC/C,MAAMyuF,WAAW,GAAGvkB,mBAAmB,CAAC2kB,iBAAD,CAAvC;QACAvoB,MAAM,CAACqoB,aAAP,CAAqBF,WAArB;MACH;IACJ,CARD,EAnRsC,CA4RtC;IACA;IACA;;IACA1C,cAAc,CAACxqF,OAAf,CAAuB+kE,MAAM,IAAI;MAC7B,IAAIA,MAAM,CAACtB,YAAX,EAAyB;QACrBsB,MAAM,CAACwoB,gBAAP,CAAwBxoB,MAAM,CAACtB,YAA/B;MACH,CAFD,MAGK;QACDsB,MAAM,CAACh/B,OAAP;MACH;IACJ,CAPD,EA/RsC,CAuStC;IACA;IACA;;IACA,KAAK,IAAIvnC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2sF,aAAa,CAAC1sF,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;MAC3C,MAAMoH,OAAO,GAAGulF,aAAa,CAAC3sF,CAAD,CAA7B;MACA,MAAMkrF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;MACA2B,WAAW,CAACngF,OAAD,EAAU6mE,eAAV,CAAX,CAH2C,CAI3C;MACA;MACA;;MACA,IAAIid,OAAO,IAAIA,OAAO,CAACzF,YAAvB,EACI;MACJ,IAAItf,OAAO,GAAG,EAAd,CAT2C,CAU3C;MACA;MACA;;MACA,IAAI2a,eAAe,CAAC7zE,IAApB,EAA0B;QACtB,IAAI+hF,oBAAoB,GAAGlO,eAAe,CAACz+D,GAAhB,CAAoBjb,OAApB,CAA3B;;QACA,IAAI4nF,oBAAoB,IAAIA,oBAAoB,CAAC/uF,MAAjD,EAAyD;UACrDkmE,OAAO,CAACjjE,IAAR,CAAa,GAAG8rF,oBAAhB;QACH;;QACD,IAAIC,oBAAoB,GAAG,KAAK5kB,MAAL,CAAYlwC,KAAZ,CAAkB/yB,OAAlB,EAA2BinE,qBAA3B,EAAkD,IAAlD,CAA3B;;QACA,KAAK,IAAI6gB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,oBAAoB,CAAChvF,MAAzC,EAAiDivF,CAAC,EAAlD,EAAsD;UAClD,IAAIC,cAAc,GAAGrO,eAAe,CAACz+D,GAAhB,CAAoB4sE,oBAAoB,CAACC,CAAD,CAAxC,CAArB;;UACA,IAAIC,cAAc,IAAIA,cAAc,CAAClvF,MAArC,EAA6C;YACzCkmE,OAAO,CAACjjE,IAAR,CAAa,GAAGisF,cAAhB;UACH;QACJ;MACJ;;MACD,MAAMC,aAAa,GAAGjpB,OAAO,CAAC9kE,MAAR,CAAe0T,CAAC,IAAI,CAACA,CAAC,CAACu0E,SAAvB,CAAtB;;MACA,IAAI8F,aAAa,CAACnvF,MAAlB,EAA0B;QACtBovF,6BAA6B,CAAC,IAAD,EAAOjoF,OAAP,EAAgBgoF,aAAhB,CAA7B;MACH,CAFD,MAGK;QACD,KAAK/G,gBAAL,CAAsBjhF,OAAtB;MACH;IACJ,CA3UqC,CA4UtC;;;IACAulF,aAAa,CAAC1sF,MAAd,GAAuB,CAAvB;IACAkuF,WAAW,CAAC3sF,OAAZ,CAAoB+kE,MAAM,IAAI;MAC1B,KAAKJ,OAAL,CAAajjE,IAAb,CAAkBqjE,MAAlB;MACAA,MAAM,CAAC9+B,MAAP,CAAc,MAAM;QAChB8+B,MAAM,CAACh/B,OAAP;QACA,MAAM56B,KAAK,GAAG,KAAKw5D,OAAL,CAAaphE,OAAb,CAAqBwhE,MAArB,CAAd;QACA,KAAKJ,OAAL,CAAavS,MAAb,CAAoBjnD,KAApB,EAA2B,CAA3B;MACH,CAJD;MAKA45D,MAAM,CAAC/+B,IAAP;IACH,CARD;IASA,OAAO2mD,WAAP;EACH;;EACDzE,mBAAmB,CAACpE,WAAD,EAAcl+E,OAAd,EAAuB;IACtC,IAAIuiF,YAAY,GAAG,KAAnB;IACA,MAAMuB,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;IACA,IAAIsF,OAAO,IAAIA,OAAO,CAAC3F,aAAvB,EACIoE,YAAY,GAAG,IAAf;IACJ,IAAI,KAAKxC,gBAAL,CAAsBta,GAAtB,CAA0BzlE,OAA1B,CAAJ,EACIuiF,YAAY,GAAG,IAAf;IACJ,IAAI,KAAKZ,uBAAL,CAA6Blc,GAA7B,CAAiCzlE,OAAjC,CAAJ,EACIuiF,YAAY,GAAG,IAAf;IACJ,IAAI,KAAKhD,eAAL,CAAqB9Z,GAArB,CAAyBzlE,OAAzB,CAAJ,EACIuiF,YAAY,GAAG,IAAf;IACJ,OAAO,KAAKoB,eAAL,CAAqBzF,WAArB,EAAkCoE,mBAAlC,CAAsDtiF,OAAtD,KAAkEuiF,YAAzE;EACH;;EACD/C,UAAU,CAACt8E,QAAD,EAAW;IACjB,KAAK2/E,SAAL,CAAe/mF,IAAf,CAAoBoH,QAApB;EACH;;EACD09E,wBAAwB,CAAC19E,QAAD,EAAW;IAC/B,KAAK4/E,aAAL,CAAmBhnF,IAAnB,CAAwBoH,QAAxB;EACH;;EACDmjF,mBAAmB,CAACrmF,OAAD,EAAUkoF,gBAAV,EAA4BhK,WAA5B,EAAyCha,WAAzC,EAAsDikB,YAAtD,EAAoE;IACnF,IAAIppB,OAAO,GAAG,EAAd;;IACA,IAAImpB,gBAAJ,EAAsB;MAClB,MAAME,qBAAqB,GAAG,KAAKzG,uBAAL,CAA6B1mE,GAA7B,CAAiCjb,OAAjC,CAA9B;;MACA,IAAIooF,qBAAJ,EAA2B;QACvBrpB,OAAO,GAAGqpB,qBAAV;MACH;IACJ,CALD,MAMK;MACD,MAAM9H,cAAc,GAAG,KAAKP,gBAAL,CAAsB9kE,GAAtB,CAA0Bjb,OAA1B,CAAvB;;MACA,IAAIsgF,cAAJ,EAAoB;QAChB,MAAM+H,kBAAkB,GAAG,CAACF,YAAD,IAAiBA,YAAY,IAAItJ,UAA5D;QACAyB,cAAc,CAAClmF,OAAf,CAAuB+kE,MAAM,IAAI;UAC7B,IAAIA,MAAM,CAAC6gB,MAAX,EACI;UACJ,IAAI,CAACqI,kBAAD,IAAuBlpB,MAAM,CAAC+E,WAAP,IAAsBA,WAAjD,EACI;UACJnF,OAAO,CAACjjE,IAAR,CAAaqjE,MAAb;QACH,CAND;MAOH;IACJ;;IACD,IAAI+e,WAAW,IAAIha,WAAnB,EAAgC;MAC5BnF,OAAO,GAAGA,OAAO,CAAC9kE,MAAR,CAAeklE,MAAM,IAAI;QAC/B,IAAI+e,WAAW,IAAIA,WAAW,IAAI/e,MAAM,CAAC+e,WAAzC,EACI,OAAO,KAAP;QACJ,IAAIha,WAAW,IAAIA,WAAW,IAAI/E,MAAM,CAAC+E,WAAzC,EACI,OAAO,KAAP;QACJ,OAAO,IAAP;MACH,CANS,CAAV;IAOH;;IACD,OAAOnF,OAAP;EACH;;EACDqnB,qBAAqB,CAAClI,WAAD,EAAc7K,WAAd,EAA2B6S,qBAA3B,EAAkD;IACnE,MAAMhiB,WAAW,GAAGmP,WAAW,CAACnP,WAAhC;IACA,MAAMwN,WAAW,GAAG2B,WAAW,CAACrzE,OAAhC,CAFmE,CAGnE;IACA;;IACA,MAAMsoF,iBAAiB,GAAGjV,WAAW,CAACkG,mBAAZ,GAAkC99E,SAAlC,GAA8CyiF,WAAxE;IACA,MAAMqK,iBAAiB,GAAGlV,WAAW,CAACkG,mBAAZ,GAAkC99E,SAAlC,GAA8CyoE,WAAxE;;IACA,KAAK,MAAMskB,mBAAX,IAAkCnV,WAAW,CAAChB,SAA9C,EAAyD;MACrD,MAAMryE,OAAO,GAAGwoF,mBAAmB,CAACxoF,OAApC;MACA,MAAMkoF,gBAAgB,GAAGloF,OAAO,KAAK0xE,WAArC;MACA,MAAM3S,OAAO,GAAGsF,oBAAoB,CAAC6hB,qBAAD,EAAwBlmF,OAAxB,EAAiC,EAAjC,CAApC;;MACA,MAAMsmE,eAAe,GAAG,KAAK+f,mBAAL,CAAyBrmF,OAAzB,EAAkCkoF,gBAAlC,EAAoDI,iBAApD,EAAuEC,iBAAvE,EAA0FlV,WAAW,CAACjP,OAAtG,CAAxB;;MACAkC,eAAe,CAAClsE,OAAhB,CAAwB+kE,MAAM,IAAI;QAC9B,MAAMspB,UAAU,GAAGtpB,MAAM,CAACupB,aAAP,EAAnB;;QACA,IAAID,UAAU,CAAC/oB,aAAf,EAA8B;UAC1B+oB,UAAU,CAAC/oB,aAAX;QACH;;QACDP,MAAM,CAACh/B,OAAP;QACA4+B,OAAO,CAACjjE,IAAR,CAAaqjE,MAAb;MACH,CAPD;IAQH,CApBkE,CAqBnE;IACA;;;IACAwJ,WAAW,CAAC+I,WAAD,EAAc2B,WAAW,CAACmG,UAA1B,CAAX;EACH;;EACD+N,eAAe,CAACrJ,WAAD,EAAc7K,WAAd,EAA2B6S,qBAA3B,EAAkDrB,iBAAlD,EAAqE+B,YAArE,EAAmFH,aAAnF,EAAkG;IAC7G,MAAMviB,WAAW,GAAGmP,WAAW,CAACnP,WAAhC;IACA,MAAMwN,WAAW,GAAG2B,WAAW,CAACrzE,OAAhC,CAF6G,CAG7G;IACA;;IACA,MAAM2oF,iBAAiB,GAAG,EAA1B;IACA,MAAMC,mBAAmB,GAAG,IAAI9lB,GAAJ,EAA5B;IACA,MAAM+lB,cAAc,GAAG,IAAI/lB,GAAJ,EAAvB;IACA,MAAMgmB,aAAa,GAAGzV,WAAW,CAAChB,SAAZ,CAAsB3yE,GAAtB,CAA0B8oF,mBAAmB,IAAI;MACnE,MAAMxoF,OAAO,GAAGwoF,mBAAmB,CAACxoF,OAApC;MACA4oF,mBAAmB,CAAC9wE,GAApB,CAAwB9X,OAAxB,EAFmE,CAGnE;;MACA,MAAM8jF,OAAO,GAAG9jF,OAAO,CAACw+E,YAAD,CAAvB;MACA,IAAIsF,OAAO,IAAIA,OAAO,CAACxF,oBAAvB,EACI,OAAO,IAAIphB,oEAAJ,CAAwBsrB,mBAAmB,CAACrrB,QAA5C,EAAsDqrB,mBAAmB,CAAC18B,KAA1E,CAAP;MACJ,MAAMo8B,gBAAgB,GAAGloF,OAAO,KAAK0xE,WAArC;MACA,MAAMpL,eAAe,GAAGyiB,mBAAmB,CAAC,CAAC7C,qBAAqB,CAACjrE,GAAtB,CAA0Bjb,OAA1B,KAAsCg+E,kBAAvC,EACvCt+E,GADuC,CACnCiO,CAAC,IAAIA,CAAC,CAAC+6E,aAAF,EAD8B,CAAD,CAAnB,CAEnBzuF,MAFmB,CAEZ0T,CAAC,IAAI;QACb;QACA;QACA;QACA;QACA,MAAMq7E,EAAE,GAAGr7E,CAAX;QACA,OAAOq7E,EAAE,CAAChpF,OAAH,GAAagpF,EAAE,CAAChpF,OAAH,KAAeA,OAA5B,GAAsC,KAA7C;MACH,CATuB,CAAxB;MAUA,MAAMmjE,SAAS,GAAGyjB,YAAY,CAAC3rE,GAAb,CAAiBjb,OAAjB,CAAlB;MACA,MAAMojE,UAAU,GAAGqjB,aAAa,CAACxrE,GAAd,CAAkBjb,OAAlB,CAAnB;MACA,MAAM08D,SAAS,GAAGsG,oBAAoB,CAAC,KAAKC,MAAN,EAAc,KAAKiZ,WAAnB,EAAgCl8E,OAAhC,EAAyCwoF,mBAAmB,CAAC9rB,SAA7D,EAAwEyG,SAAxE,EAAmFC,UAAnF,CAAtC;;MACA,MAAMjE,MAAM,GAAG,KAAKke,YAAL,CAAkBmL,mBAAlB,EAAuC9rB,SAAvC,EAAkD4J,eAAlD,CAAf,CArBmE,CAsBnE;MACA;;;MACA,IAAIkiB,mBAAmB,CAAC3X,WAApB,IAAmCgU,iBAAvC,EAA0D;QACtDgE,cAAc,CAAC/wE,GAAf,CAAmB9X,OAAnB;MACH;;MACD,IAAIkoF,gBAAJ,EAAsB;QAClB,MAAMe,aAAa,GAAG,IAAItJ,yBAAJ,CAA8BzB,WAA9B,EAA2Cha,WAA3C,EAAwDlkE,OAAxD,CAAtB;QACAipF,aAAa,CAACzB,aAAd,CAA4BroB,MAA5B;QACAwpB,iBAAiB,CAAC7sF,IAAlB,CAAuBmtF,aAAvB;MACH;;MACD,OAAO9pB,MAAP;IACH,CAjCqB,CAAtB;IAkCAwpB,iBAAiB,CAACvuF,OAAlB,CAA0B+kE,MAAM,IAAI;MAChCkF,oBAAoB,CAAC,KAAKsd,uBAAN,EAA+BxiB,MAAM,CAACn/D,OAAtC,EAA+C,EAA/C,CAApB,CAAuElE,IAAvE,CAA4EqjE,MAA5E;MACAA,MAAM,CAAC9+B,MAAP,CAAc,MAAM6oD,kBAAkB,CAAC,KAAKvH,uBAAN,EAA+BxiB,MAAM,CAACn/D,OAAtC,EAA+Cm/D,MAA/C,CAAtC;IACH,CAHD;IAIAypB,mBAAmB,CAACxuF,OAApB,CAA4B4F,OAAO,IAAIigC,QAAQ,CAACjgC,OAAD,EAAUgnE,sBAAV,CAA/C;IACA,MAAM7H,MAAM,GAAG4D,mBAAmB,CAAC+lB,aAAD,CAAlC;IACA3pB,MAAM,CAAClB,SAAP,CAAiB,MAAM;MACnB2qB,mBAAmB,CAACxuF,OAApB,CAA4B4F,OAAO,IAAImgF,WAAW,CAACngF,OAAD,EAAUgnE,sBAAV,CAAlD;MACAz3B,SAAS,CAACmiC,WAAD,EAAc2B,WAAW,CAACoG,QAA1B,CAAT;IACH,CAHD,EAhD6G,CAoD7G;IACA;;IACAoP,cAAc,CAACzuF,OAAf,CAAuB4F,OAAO,IAAI;MAC9BqkE,oBAAoB,CAACwgB,iBAAD,EAAoB7kF,OAApB,EAA6B,EAA7B,CAApB,CAAqDlE,IAArD,CAA0DqjE,MAA1D;IACH,CAFD;IAGA,OAAOA,MAAP;EACH;;EACDke,YAAY,CAAChK,WAAD,EAAc3W,SAAd,EAAyB4J,eAAzB,EAA0C;IAClD,IAAI5J,SAAS,CAAC7jE,MAAV,GAAmB,CAAvB,EAA0B;MACtB,OAAO,KAAKoqE,MAAL,CAAYzlC,OAAZ,CAAoB61C,WAAW,CAACrzE,OAAhC,EAAyC08D,SAAzC,EAAoD2W,WAAW,CAAClW,QAAhE,EAA0EkW,WAAW,CAACvnB,KAAtF,EAA6FunB,WAAW,CAAChN,MAAzG,EAAiHC,eAAjH,CAAP;IACH,CAHiD,CAIlD;IACA;;;IACA,OAAO,IAAIpJ,oEAAJ,CAAwBmW,WAAW,CAAClW,QAApC,EAA8CkW,WAAW,CAACvnB,KAA1D,CAAP;EACH;;AAz0B2B;;AA20BhC,MAAM6zB,yBAAN,CAAgC;EAC5BxnF,WAAW,CAAC+lF,WAAD,EAAcha,WAAd,EAA2BlkE,OAA3B,EAAoC;IAC3C,KAAKk+E,WAAL,GAAmBA,WAAnB;IACA,KAAKha,WAAL,GAAmBA,WAAnB;IACA,KAAKlkE,OAAL,GAAeA,OAAf;IACA,KAAK0/B,OAAL,GAAe,IAAIw9B,oEAAJ,EAAf;IACA,KAAKisB,mBAAL,GAA2B,KAA3B;IACA,KAAKC,gBAAL,GAAwB,IAAIp2C,GAAJ,EAAxB;IACA,KAAKkvC,SAAL,GAAiB,KAAjB;IACA,KAAKC,gBAAL,GAAwB,KAAxB;IACA,KAAKzvE,QAAL,GAAgB,KAAhB;IACA,KAAKstE,MAAL,GAAc,IAAd;IACA,KAAKliB,SAAL,GAAiB,CAAjB;EACH;;EACD0pB,aAAa,CAACroB,MAAD,EAAS;IAClB,IAAI,KAAKgqB,mBAAT,EACI;IACJ,KAAKzpD,OAAL,GAAey/B,MAAf;;IACA,KAAKiqB,gBAAL,CAAsBhvF,OAAtB,CAA8B,CAACivF,SAAD,EAAY/mB,KAAZ,KAAsB;MAChD+mB,SAAS,CAACjvF,OAAV,CAAkB8I,QAAQ,IAAI6gE,cAAc,CAAC5E,MAAD,EAASmD,KAAT,EAAgB7mE,SAAhB,EAA2ByH,QAA3B,CAA5C;IACH,CAFD;;IAGA,KAAKkmF,gBAAL,CAAsBjY,KAAtB;;IACA,KAAKgY,mBAAL,GAA2B,IAA3B;IACA,KAAKjC,iBAAL,CAAuB/nB,MAAM,CAACrB,SAA9B;IACA,KAAKkiB,MAAL,GAAc,KAAd;EACH;;EACD0I,aAAa,GAAG;IACZ,OAAO,KAAKhpD,OAAZ;EACH;;EACDwnD,iBAAiB,CAACppB,SAAD,EAAY;IACzB,KAAKA,SAAL,GAAiBA,SAAjB;EACH;;EACD6pB,gBAAgB,CAACxoB,MAAD,EAAS;IACrB,MAAMxxD,CAAC,GAAG,KAAK+xB,OAAf;;IACA,IAAI/xB,CAAC,CAAC+wD,eAAN,EAAuB;MACnBS,MAAM,CAACnB,OAAP,CAAe,MAAMrwD,CAAC,CAAC+wD,eAAF,CAAkB,OAAlB,CAArB;IACH;;IACDS,MAAM,CAAC9+B,MAAP,CAAc,MAAM,KAAKk+B,MAAL,EAApB;IACAY,MAAM,CAAClB,SAAP,CAAiB,MAAM,KAAK99B,OAAL,EAAvB;EACH;;EACDmpD,WAAW,CAACljF,IAAD,EAAOlD,QAAP,EAAiB;IACxBmhE,oBAAoB,CAAC,KAAK+kB,gBAAN,EAAwBhjF,IAAxB,EAA8B,EAA9B,CAApB,CAAsDtK,IAAtD,CAA2DoH,QAA3D;EACH;;EACDm9B,MAAM,CAACv+B,EAAD,EAAK;IACP,IAAI,KAAKk+E,MAAT,EAAiB;MACb,KAAKsJ,WAAL,CAAiB,MAAjB,EAAyBxnF,EAAzB;IACH;;IACD,KAAK49B,OAAL,CAAaW,MAAb,CAAoBv+B,EAApB;EACH;;EACDk8D,OAAO,CAACl8D,EAAD,EAAK;IACR,IAAI,KAAKk+E,MAAT,EAAiB;MACb,KAAKsJ,WAAL,CAAiB,OAAjB,EAA0BxnF,EAA1B;IACH;;IACD,KAAK49B,OAAL,CAAas+B,OAAb,CAAqBl8D,EAArB;EACH;;EACDm8D,SAAS,CAACn8D,EAAD,EAAK;IACV,IAAI,KAAKk+E,MAAT,EAAiB;MACb,KAAKsJ,WAAL,CAAiB,SAAjB,EAA4BxnF,EAA5B;IACH;;IACD,KAAK49B,OAAL,CAAau+B,SAAb,CAAuBn8D,EAAvB;EACH;;EACD2f,IAAI,GAAG;IACH,KAAKie,OAAL,CAAaje,IAAb;EACH;;EACDy8C,UAAU,GAAG;IACT,OAAO,KAAK8hB,MAAL,GAAc,KAAd,GAAsB,KAAKtgD,OAAL,CAAaw+B,UAAb,EAA7B;EACH;;EACD99B,IAAI,GAAG;IACH,CAAC,KAAK4/C,MAAN,IAAgB,KAAKtgD,OAAL,CAAaU,IAAb,EAAhB;EACH;;EACDi+B,KAAK,GAAG;IACJ,CAAC,KAAK2hB,MAAN,IAAgB,KAAKtgD,OAAL,CAAa2+B,KAAb,EAAhB;EACH;;EACDC,OAAO,GAAG;IACN,CAAC,KAAK0hB,MAAN,IAAgB,KAAKtgD,OAAL,CAAa4+B,OAAb,EAAhB;EACH;;EACDC,MAAM,GAAG;IACL,KAAK7+B,OAAL,CAAa6+B,MAAb;EACH;;EACDp+B,OAAO,GAAG;IACN,KAAK+hD,SAAL,GAAiB,IAAjB;;IACA,KAAKxiD,OAAL,CAAaS,OAAb;EACH;;EACDzlB,KAAK,GAAG;IACJ,CAAC,KAAKslE,MAAN,IAAgB,KAAKtgD,OAAL,CAAahlB,KAAb,EAAhB;EACH;;EACD8jD,WAAW,CAAC7wD,CAAD,EAAI;IACX,IAAI,CAAC,KAAKqyE,MAAV,EAAkB;MACd,KAAKtgD,OAAL,CAAa8+B,WAAb,CAAyB7wD,CAAzB;IACH;EACJ;;EACD8wD,WAAW,GAAG;IACV,OAAO,KAAKuhB,MAAL,GAAc,CAAd,GAAkB,KAAKtgD,OAAL,CAAa++B,WAAb,EAAzB;EACH;EACD;;;EACAC,eAAe,CAACC,SAAD,EAAY;IACvB,MAAMhxD,CAAC,GAAG,KAAK+xB,OAAf;;IACA,IAAI/xB,CAAC,CAAC+wD,eAAN,EAAuB;MACnB/wD,CAAC,CAAC+wD,eAAF,CAAkBC,SAAlB;IACH;EACJ;;AApG2B;;AAsGhC,SAASuqB,kBAAT,CAA4BxpF,GAA5B,EAAiCtG,GAAjC,EAAsCK,KAAtC,EAA6C;EACzC,IAAI8vF,aAAa,GAAG7pF,GAAG,CAACub,GAAJ,CAAQ7hB,GAAR,CAApB;;EACA,IAAImwF,aAAJ,EAAmB;IACf,IAAIA,aAAa,CAAC1wF,MAAlB,EAA0B;MACtB,MAAM0M,KAAK,GAAGgkF,aAAa,CAAC5rF,OAAd,CAAsBlE,KAAtB,CAAd;MACA8vF,aAAa,CAAC/8B,MAAd,CAAqBjnD,KAArB,EAA4B,CAA5B;IACH;;IACD,IAAIgkF,aAAa,CAAC1wF,MAAd,IAAwB,CAA5B,EAA+B;MAC3B6G,GAAG,CAACk0C,MAAJ,CAAWx6C,GAAX;IACH;EACJ;;EACD,OAAOmwF,aAAP;AACH;;AACD,SAAS5K,qBAAT,CAA+BllF,KAA/B,EAAsC;EAClC;EACA;EACA;EACA,OAAOA,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,IAA/B;AACH;;AACD,SAASoqF,aAAT,CAAuBp8E,IAAvB,EAA6B;EACzB,OAAOA,IAAI,IAAIA,IAAI,CAAC,UAAD,CAAJ,KAAqB,CAApC;AACH;;AACD,SAAS43E,mBAAT,CAA6BpzD,SAA7B,EAAwC;EACpC,OAAOA,SAAS,IAAI,OAAb,IAAwBA,SAAS,IAAI,MAA5C;AACH;;AACD,SAASu9D,YAAT,CAAsBxpF,OAAtB,EAA+BvG,KAA/B,EAAsC;EAClC,MAAMgwF,QAAQ,GAAGzpF,OAAO,CAACuG,KAAR,CAAc64B,OAA/B;EACAp/B,OAAO,CAACuG,KAAR,CAAc64B,OAAd,GAAwB3lC,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,MAAhD;EACA,OAAOgwF,QAAP;AACH;;AACD,SAAS9C,qBAAT,CAA+B+C,SAA/B,EAA0CzmB,MAA1C,EAAkDkT,QAAlD,EAA4DwT,eAA5D,EAA6EC,YAA7E,EAA2F;EACvF,MAAMC,SAAS,GAAG,EAAlB;EACA1T,QAAQ,CAAC/7E,OAAT,CAAiB4F,OAAO,IAAI6pF,SAAS,CAAC/tF,IAAV,CAAe0tF,YAAY,CAACxpF,OAAD,CAA3B,CAA5B;EACA,MAAM8pF,cAAc,GAAG,EAAvB;EACAH,eAAe,CAACvvF,OAAhB,CAAwB,CAACzB,KAAD,EAAQqH,OAAR,KAAoB;IACxC,MAAMsB,MAAM,GAAG,IAAI0xC,GAAJ,EAAf;IACAr6C,KAAK,CAACyB,OAAN,CAAc2Z,IAAI,IAAI;MAClB,MAAMta,KAAK,GAAGwpE,MAAM,CAACmD,YAAP,CAAoBpmE,OAApB,EAA6B+T,IAA7B,EAAmC61E,YAAnC,CAAd;MACAtoF,MAAM,CAACsf,GAAP,CAAW7M,IAAX,EAAiBta,KAAjB,EAFkB,CAGlB;MACA;;MACA,IAAI,CAACA,KAAD,IAAUA,KAAK,CAACZ,MAAN,IAAgB,CAA9B,EAAiC;QAC7BmH,OAAO,CAACw+E,YAAD,CAAP,GAAwBD,0BAAxB;QACAuL,cAAc,CAAChuF,IAAf,CAAoBkE,OAApB;MACH;IACJ,CATD;IAUA0pF,SAAS,CAAC9oE,GAAV,CAAc5gB,OAAd,EAAuBsB,MAAvB;EACH,CAbD,EAJuF,CAkBvF;EACA;;EACA,IAAI1I,CAAC,GAAG,CAAR;EACAu9E,QAAQ,CAAC/7E,OAAT,CAAiB4F,OAAO,IAAIwpF,YAAY,CAACxpF,OAAD,EAAU6pF,SAAS,CAACjxF,CAAC,EAAF,CAAnB,CAAxC;EACA,OAAOkxF,cAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASzE,YAAT,CAAsB0E,KAAtB,EAA6BjoD,KAA7B,EAAoC;EAChC,MAAMkoD,OAAO,GAAG,IAAIh3C,GAAJ,EAAhB;EACA+2C,KAAK,CAAC3vF,OAAN,CAAcsd,IAAI,IAAIsyE,OAAO,CAACppE,GAAR,CAAYlJ,IAAZ,EAAkB,EAAlB,CAAtB;EACA,IAAIoqB,KAAK,CAACjpC,MAAN,IAAgB,CAApB,EACI,OAAOmxF,OAAP;EACJ,MAAMC,SAAS,GAAG,CAAlB;EACA,MAAMC,OAAO,GAAG,IAAIpnB,GAAJ,CAAQhhC,KAAR,CAAhB;EACA,MAAMqoD,YAAY,GAAG,IAAIn3C,GAAJ,EAArB;;EACA,SAASrK,OAAT,CAAiBlhC,IAAjB,EAAuB;IACnB,IAAI,CAACA,IAAL,EACI,OAAOwiF,SAAP;IACJ,IAAIvyE,IAAI,GAAGyyE,YAAY,CAAClvE,GAAb,CAAiBxT,IAAjB,CAAX;IACA,IAAIiQ,IAAJ,EACI,OAAOA,IAAP;IACJ,MAAMyL,MAAM,GAAG1b,IAAI,CAAC6J,UAApB;;IACA,IAAI04E,OAAO,CAACvkB,GAAR,CAAYtiD,MAAZ,CAAJ,EAAyB;MAAE;MACvBzL,IAAI,GAAGyL,MAAP;IACH,CAFD,MAGK,IAAI+mE,OAAO,CAACzkB,GAAR,CAAYtiD,MAAZ,CAAJ,EAAyB;MAAE;MAC5BzL,IAAI,GAAGuyE,SAAP;IACH,CAFI,MAGA;MAAE;MACHvyE,IAAI,GAAGixB,OAAO,CAACxlB,MAAD,CAAd;IACH;;IACDgnE,YAAY,CAACvpE,GAAb,CAAiBnZ,IAAjB,EAAuBiQ,IAAvB;IACA,OAAOA,IAAP;EACH;;EACDoqB,KAAK,CAAC1nC,OAAN,CAAcqN,IAAI,IAAI;IAClB,MAAMiQ,IAAI,GAAGixB,OAAO,CAAClhC,IAAD,CAApB;;IACA,IAAIiQ,IAAI,KAAKuyE,SAAb,EAAwB;MACpBD,OAAO,CAAC/uE,GAAR,CAAYvD,IAAZ,EAAkB5b,IAAlB,CAAuB2L,IAAvB;IACH;EACJ,CALD;EAMA,OAAOuiF,OAAP;AACH;;AACD,SAAS/pD,QAAT,CAAkBjgC,OAAlB,EAA2B0tC,SAA3B,EAAsC;EAClC1tC,OAAO,CAAC0H,SAAR,EAAmBoQ,GAAnB,CAAuB41B,SAAvB;AACH;;AACD,SAASyyC,WAAT,CAAqBngF,OAArB,EAA8B0tC,SAA9B,EAAyC;EACrC1tC,OAAO,CAAC0H,SAAR,EAAmBsQ,MAAnB,CAA0B01B,SAA1B;AACH;;AACD,SAASu6C,6BAAT,CAAuC3G,MAAvC,EAA+CthF,OAA/C,EAAwD++D,OAAxD,EAAiE;EAC7DgE,mBAAmB,CAAChE,OAAD,CAAnB,CAA6B1+B,MAA7B,CAAoC,MAAMihD,MAAM,CAACL,gBAAP,CAAwBjhF,OAAxB,CAA1C;AACH;;AACD,SAAS+oF,mBAAT,CAA6BhqB,OAA7B,EAAsC;EAClC,MAAMqrB,YAAY,GAAG,EAArB;;EACAC,yBAAyB,CAACtrB,OAAD,EAAUqrB,YAAV,CAAzB;;EACA,OAAOA,YAAP;AACH;;AACD,SAASC,yBAAT,CAAmCtrB,OAAnC,EAA4CqrB,YAA5C,EAA0D;EACtD,KAAK,IAAIxxF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmmE,OAAO,CAAClmE,MAA5B,EAAoCD,CAAC,EAArC,EAAyC;IACrC,MAAMumE,MAAM,GAAGJ,OAAO,CAACnmE,CAAD,CAAtB;;IACA,IAAIumE,MAAM,YAAYS,yEAAtB,EAA6C;MACzCyqB,yBAAyB,CAAClrB,MAAM,CAACJ,OAAR,EAAiBqrB,YAAjB,CAAzB;IACH,CAFD,MAGK;MACDA,YAAY,CAACtuF,IAAb,CAAkBqjE,MAAlB;IACH;EACJ;AACJ;;AACD,SAASygB,SAAT,CAAmBzxE,CAAnB,EAAsBC,CAAtB,EAAyB;EACrB,MAAMk8E,EAAE,GAAGpxF,MAAM,CAACY,IAAP,CAAYqU,CAAZ,CAAX;EACA,MAAMo8E,EAAE,GAAGrxF,MAAM,CAACY,IAAP,CAAYsU,CAAZ,CAAX;EACA,IAAIk8E,EAAE,CAACzxF,MAAH,IAAa0xF,EAAE,CAAC1xF,MAApB,EACI,OAAO,KAAP;;EACJ,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0xF,EAAE,CAACzxF,MAAvB,EAA+BD,CAAC,EAAhC,EAAoC;IAChC,MAAMmb,IAAI,GAAGu2E,EAAE,CAAC1xF,CAAD,CAAf;IACA,IAAI,CAACwV,CAAC,CAAC8gB,cAAF,CAAiBnb,IAAjB,CAAD,IAA2B5F,CAAC,CAAC4F,IAAD,CAAD,KAAY3F,CAAC,CAAC2F,IAAD,CAA5C,EACI,OAAO,KAAP;EACP;;EACD,OAAO,IAAP;AACH;;AACD,SAASyyE,sBAAT,CAAgCxmF,OAAhC,EAAyC+kF,mBAAzC,EAA8DC,oBAA9D,EAAoF;EAChF,MAAMwF,SAAS,GAAGxF,oBAAoB,CAAC/pE,GAArB,CAAyBjb,OAAzB,CAAlB;EACA,IAAI,CAACwqF,SAAL,EACI,OAAO,KAAP;EACJ,IAAIC,QAAQ,GAAG1F,mBAAmB,CAAC9pE,GAApB,CAAwBjb,OAAxB,CAAf;;EACA,IAAIyqF,QAAJ,EAAc;IACVD,SAAS,CAACpwF,OAAV,CAAkB8xB,IAAI,IAAIu+D,QAAQ,CAAC3yE,GAAT,CAAaoU,IAAb,CAA1B;EACH,CAFD,MAGK;IACD64D,mBAAmB,CAACnkE,GAApB,CAAwB5gB,OAAxB,EAAiCwqF,SAAjC;EACH;;EACDxF,oBAAoB,CAACpxC,MAArB,CAA4B5zC,OAA5B;EACA,OAAO,IAAP;AACH;;AAED,MAAM0qF,eAAN,CAAsB;EAClBvyF,WAAW,CAAC8kF,QAAD,EAAWtQ,OAAX,EAAoBuP,WAApB,EAAiC;IACxC,KAAKe,QAAL,GAAgBA,QAAhB;IACA,KAAKtQ,OAAL,GAAeA,OAAf;IACA,KAAKuP,WAAL,GAAmBA,WAAnB;IACA,KAAKyO,aAAL,GAAqB,EAArB,CAJwC,CAKxC;;IACA,KAAKzH,iBAAL,GAAyB,CAACljF,OAAD,EAAUmhB,OAAV,KAAsB,CAAG,CAAlD;;IACA,KAAKypE,iBAAL,GAAyB,IAAIpI,yBAAJ,CAA8BvF,QAA9B,EAAwCtQ,OAAxC,EAAiDuP,WAAjD,CAAzB;IACA,KAAK2O,eAAL,GAAuB,IAAI7N,uBAAJ,CAA4BC,QAA5B,EAAsCtQ,OAAtC,EAA+CuP,WAA/C,CAAvB;;IACA,KAAK0O,iBAAL,CAAuB1H,iBAAvB,GAA2C,CAACljF,OAAD,EAAUmhB,OAAV,KAAsB,KAAK+hE,iBAAL,CAAuBljF,OAAvB,EAAgCmhB,OAAhC,CAAjE;EACH;;EACDuiE,eAAe,CAACoH,WAAD,EAAc5M,WAAd,EAA2B1sC,WAA3B,EAAwCprC,IAAxC,EAA8CmY,QAA9C,EAAwD;IACnE,MAAMwsE,QAAQ,GAAGD,WAAW,GAAG,GAAd,GAAoB1kF,IAArC;IACA,IAAIiuC,OAAO,GAAG,KAAKs2C,aAAL,CAAmBI,QAAnB,CAAd;;IACA,IAAI,CAAC12C,OAAL,EAAc;MACV,MAAMmZ,MAAM,GAAG,EAAf;MACA,MAAMqd,QAAQ,GAAG,EAAjB;MACA,MAAMiC,GAAG,GAAGN,iBAAiB,CAAC,KAAKG,OAAN,EAAepuD,QAAf,EAAyBivC,MAAzB,EAAiCqd,QAAjC,CAA7B;;MACA,IAAIrd,MAAM,CAAC30D,MAAX,EAAmB;QACf,MAAMkpE,kBAAkB,CAAC37D,IAAD,EAAOonD,MAAP,CAAxB;MACH;;MACD,IAAIqd,QAAQ,CAAChyE,MAAb,EAAqB;QACjBmyE,gBAAgB,CAAC5kE,IAAD,EAAOykE,QAAP,CAAhB;MACH;;MACDx2B,OAAO,GAAG2nC,YAAY,CAAC51E,IAAD,EAAO0mE,GAAP,EAAY,KAAKoP,WAAjB,CAAtB;MACA,KAAKyO,aAAL,CAAmBI,QAAnB,IAA+B12C,OAA/B;IACH;;IACD,KAAKu2C,iBAAL,CAAuBlH,eAAvB,CAAuCxF,WAAvC,EAAoD93E,IAApD,EAA0DiuC,OAA1D;EACH;;EACD+oC,QAAQ,CAACc,WAAD,EAAc1sC,WAAd,EAA2B;IAC/B,KAAKo5C,iBAAL,CAAuBxN,QAAvB,CAAgCc,WAAhC,EAA6C1sC,WAA7C;EACH;;EACDrR,OAAO,CAAC+9C,WAAD,EAAc/8D,OAAd,EAAuB;IAC1B,KAAKypE,iBAAL,CAAuBzqD,OAAvB,CAA+B+9C,WAA/B,EAA4C/8D,OAA5C;EACH;;EACD6pE,QAAQ,CAAC9M,WAAD,EAAcl+E,OAAd,EAAuBmjB,MAAvB,EAA+Bnc,YAA/B,EAA6C;IACjD,KAAK4jF,iBAAL,CAAuB7I,UAAvB,CAAkC7D,WAAlC,EAA+Cl+E,OAA/C,EAAwDmjB,MAAxD,EAAgEnc,YAAhE;EACH;;EACDikF,QAAQ,CAAC/M,WAAD,EAAcl+E,OAAd,EAAuBmhB,OAAvB,EAAgC6iE,aAAhC,EAA+C;IACnD,KAAK4G,iBAAL,CAAuBvJ,UAAvB,CAAkCnD,WAAlC,EAA+Cl+E,OAA/C,EAAwDgkF,aAAa,IAAI,KAAzE,EAAgF7iE,OAAhF;EACH;;EACD+pE,iBAAiB,CAAClrF,OAAD,EAAUyzC,OAAV,EAAmB;IAChC,KAAKm3C,iBAAL,CAAuB7G,qBAAvB,CAA6C/jF,OAA7C,EAAsDyzC,OAAtD;EACH;;EACDh1C,OAAO,CAACy/E,WAAD,EAAcl+E,OAAd,EAAuBmnC,QAAvB,EAAiC1tC,KAAjC,EAAwC;IAC3C,IAAI0tC,QAAQ,CAAC/U,MAAT,CAAgB,CAAhB,KAAsB,GAA1B,EAA+B;MAC3B,MAAM,CAACjrB,EAAD,EAAK64B,MAAL,IAAeskC,oBAAoB,CAACn9B,QAAD,CAAzC;MACA,MAAM95B,IAAI,GAAG5T,KAAb;;MACA,KAAKoxF,eAAL,CAAqBtmB,OAArB,CAA6Bp9D,EAA7B,EAAiCnH,OAAjC,EAA0CggC,MAA1C,EAAkD3yB,IAAlD;IACH,CAJD,MAKK;MACD,KAAKu9E,iBAAL,CAAuBv2C,OAAvB,CAA+B6pC,WAA/B,EAA4Cl+E,OAA5C,EAAqDmnC,QAArD,EAA+D1tC,KAA/D;IACH;EACJ;;EACDwrC,MAAM,CAACi5C,WAAD,EAAcl+E,OAAd,EAAuBisB,SAAvB,EAAkCk/D,UAAlC,EAA8CjoF,QAA9C,EAAwD;IAC1D;IACA,IAAI+oB,SAAS,CAACmG,MAAV,CAAiB,CAAjB,KAAuB,GAA3B,EAAgC;MAC5B,MAAM,CAACjrB,EAAD,EAAK64B,MAAL,IAAeskC,oBAAoB,CAACr4C,SAAD,CAAzC;MACA,OAAO,KAAK4+D,eAAL,CAAqB5lD,MAArB,CAA4B99B,EAA5B,EAAgCnH,OAAhC,EAAyCggC,MAAzC,EAAiD98B,QAAjD,CAAP;IACH;;IACD,OAAO,KAAK0nF,iBAAL,CAAuB3lD,MAAvB,CAA8Bi5C,WAA9B,EAA2Cl+E,OAA3C,EAAoDisB,SAApD,EAA+Dk/D,UAA/D,EAA2EjoF,QAA3E,CAAP;EACH;;EACDq3D,KAAK,CAAC0nB,WAAW,GAAG,CAAC,CAAhB,EAAmB;IACpB,KAAK2I,iBAAL,CAAuBrwB,KAAvB,CAA6B0nB,WAA7B;EACH;;EACU,IAAPljB,OAAO,GAAG;IACV,OAAO,KAAK6rB,iBAAL,CAAuB7rB,OAAvB,CACF/kE,MADE,CACK,KAAK6wF,eAAL,CAAqB9rB,OAD1B,CAAP;EAEH;;EACDylB,iBAAiB,GAAG;IAChB,OAAO,KAAKoG,iBAAL,CAAuBpG,iBAAvB,EAAP;EACH;;AAxEiB;AA2EtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4G,0BAAT,CAAoCprF,OAApC,EAA6CsB,MAA7C,EAAqD;EACjD,IAAI+pF,WAAW,GAAG,IAAlB;EACA,IAAIC,SAAS,GAAG,IAAhB;;EACA,IAAIxwF,KAAK,CAACC,OAAN,CAAcuG,MAAd,KAAyBA,MAAM,CAACzI,MAApC,EAA4C;IACxCwyF,WAAW,GAAGE,yBAAyB,CAACjqF,MAAM,CAAC,CAAD,CAAP,CAAvC;;IACA,IAAIA,MAAM,CAACzI,MAAP,GAAgB,CAApB,EAAuB;MACnByyF,SAAS,GAAGC,yBAAyB,CAACjqF,MAAM,CAACA,MAAM,CAACzI,MAAP,GAAgB,CAAjB,CAAP,CAArC;IACH;EACJ,CALD,MAMK,IAAIyI,MAAM,YAAY0xC,GAAtB,EAA2B;IAC5Bq4C,WAAW,GAAGE,yBAAyB,CAACjqF,MAAD,CAAvC;EACH;;EACD,OAAQ+pF,WAAW,IAAIC,SAAhB,GAA6B,IAAIE,kBAAJ,CAAuBxrF,OAAvB,EAAgCqrF,WAAhC,EAA6CC,SAA7C,CAA7B,GACH,IADJ;AAEH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,kBAAN,CAAyB;EACrBrzF,WAAW,CAAC+tE,QAAD,EAAWulB,YAAX,EAAyBC,UAAzB,EAAqC;IAC5C,KAAKxlB,QAAL,GAAgBA,QAAhB;IACA,KAAKulB,YAAL,GAAoBA,YAApB;IACA,KAAKC,UAAL,GAAkBA,UAAlB;IACA,KAAK1nF,MAAL,GAAc;IAAE;IAAhB;IACA,IAAI2nF,aAAa,GAAGH,kBAAkB,CAACI,sBAAnB,CAA0C3wE,GAA1C,CAA8CirD,QAA9C,CAApB;;IACA,IAAI,CAACylB,aAAL,EAAoB;MAChBH,kBAAkB,CAACI,sBAAnB,CAA0ChrE,GAA1C,CAA8CslD,QAA9C,EAAwDylB,aAAa,GAAG,IAAI34C,GAAJ,EAAxE;IACH;;IACD,KAAK64C,cAAL,GAAsBF,aAAtB;EACH;;EACDxiD,KAAK,GAAG;IACJ,IAAI,KAAKnlC,MAAL,GAAc;IAAE;IAApB,EAA2D;MACvD,IAAI,KAAKynF,YAAT,EAAuB;QACnBl8C,SAAS,CAAC,KAAK22B,QAAN,EAAgB,KAAKulB,YAArB,EAAmC,KAAKI,cAAxC,CAAT;MACH;;MACD,KAAK7nF,MAAL,GAAc;MAAE;MAAhB;IACH;EACJ;;EACDu6D,MAAM,GAAG;IACL,KAAKp1B,KAAL;;IACA,IAAI,KAAKnlC,MAAL,GAAc;IAAE;IAApB,EAA4D;MACxDurC,SAAS,CAAC,KAAK22B,QAAN,EAAgB,KAAK2lB,cAArB,CAAT;;MACA,IAAI,KAAKH,UAAT,EAAqB;QACjBn8C,SAAS,CAAC,KAAK22B,QAAN,EAAgB,KAAKwlB,UAArB,CAAT;QACA,KAAKA,UAAL,GAAkB,IAAlB;MACH;;MACD,KAAK1nF,MAAL,GAAc;MAAE;MAAhB;IACH;EACJ;;EACDm8B,OAAO,GAAG;IACN,KAAKo+B,MAAL;;IACA,IAAI,KAAKv6D,MAAL,GAAc;IAAE;IAApB,EAA6D;MACzDwnF,kBAAkB,CAACI,sBAAnB,CAA0Ch4C,MAA1C,CAAiD,KAAKsyB,QAAtD;;MACA,IAAI,KAAKulB,YAAT,EAAuB;QACnB9iB,WAAW,CAAC,KAAKzC,QAAN,EAAgB,KAAKulB,YAArB,CAAX;QACA,KAAKC,UAAL,GAAkB,IAAlB;MACH;;MACD,IAAI,KAAKA,UAAT,EAAqB;QACjB/iB,WAAW,CAAC,KAAKzC,QAAN,EAAgB,KAAKwlB,UAArB,CAAX;QACA,KAAKA,UAAL,GAAkB,IAAlB;MACH;;MACDn8C,SAAS,CAAC,KAAK22B,QAAN,EAAgB,KAAK2lB,cAArB,CAAT;MACA,KAAK7nF,MAAL,GAAc;MAAE;MAAhB;IACH;EACJ;;AA9CoB;;AAgDzBwnF,kBAAkB,CAACI,sBAAnB,GAA8C,eAAe,IAAIE,OAAJ,EAA7D;;AACA,SAASP,yBAAT,CAAmCjqF,MAAnC,EAA2C;EACvC,IAAIkN,MAAM,GAAG,IAAb;EACAlN,MAAM,CAAClH,OAAP,CAAe,CAACgG,GAAD,EAAM2T,IAAN,KAAe;IAC1B,IAAIg4E,oBAAoB,CAACh4E,IAAD,CAAxB,EAAgC;MAC5BvF,MAAM,GAAGA,MAAM,IAAI,IAAIwkC,GAAJ,EAAnB;MACAxkC,MAAM,CAACoS,GAAP,CAAW7M,IAAX,EAAiB3T,GAAjB;IACH;EACJ,CALD;EAMA,OAAOoO,MAAP;AACH;;AACD,SAASu9E,oBAAT,CAA8Bh4E,IAA9B,EAAoC;EAChC,OAAOA,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,UAAtC;AACH;;AAED,MAAMi4E,mBAAN,CAA0B;EACtB7zF,WAAW,CAAC6H,OAAD,EAAU08D,SAAV,EAAqB3pD,OAArB,EAA8Bk5E,cAA9B,EAA8C;IACrD,KAAKjsF,OAAL,GAAeA,OAAf;IACA,KAAK08D,SAAL,GAAiBA,SAAjB;IACA,KAAK3pD,OAAL,GAAeA,OAAf;IACA,KAAKk5E,cAAL,GAAsBA,cAAtB;IACA,KAAK7uB,UAAL,GAAkB,EAAlB;IACA,KAAKC,WAAL,GAAmB,EAAnB;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAK4uB,YAAL,GAAoB,KAApB;IACA,KAAKvuB,SAAL,GAAiB,KAAjB;IACA,KAAKF,QAAL,GAAgB,KAAhB;IACA,KAAKC,UAAL,GAAkB,KAAlB,CAXqD,CAYrD;IACA;IACA;;IACA,KAAKH,kBAAL,GAA0B,EAA1B;IACA,KAAKC,mBAAL,GAA2B,EAA3B;IACA,KAAK6B,IAAL,GAAY,CAAZ;IACA,KAAKxB,YAAL,GAAoB,IAApB;IACA,KAAKsuB,eAAL,GAAuB,IAAIn5C,GAAJ,EAAvB;IACA,KAAKo5C,SAAL,GAAiBr5E,OAAO,CAAC,UAAD,CAAxB;IACA,KAAKs5E,MAAL,GAAct5E,OAAO,CAAC,OAAD,CAAP,IAAoB,CAAlC;IACA,KAAKssD,IAAL,GAAY,KAAK+sB,SAAL,GAAiB,KAAKC,MAAlC;EACH;;EACDtuB,SAAS,GAAG;IACR,IAAI,CAAC,KAAKJ,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,IAAjB;;MACA,KAAKP,UAAL,CAAgBhjE,OAAhB,CAAwB0H,EAAE,IAAIA,EAAE,EAAhC;;MACA,KAAKs7D,UAAL,GAAkB,EAAlB;IACH;EACJ;;EACD37C,IAAI,GAAG;IACH,KAAK47D,YAAL;;IACA,KAAKiP,yBAAL;EACH;;EACDjP,YAAY,GAAG;IACX,IAAI,KAAK6O,YAAT,EACI;IACJ,KAAKA,YAAL,GAAoB,IAApB;IACA,MAAMxvB,SAAS,GAAG,KAAKA,SAAvB;IACA,KAAK6vB,SAAL,GACI,KAAKC,oBAAL,CAA0B,KAAKxsF,OAA/B,EAAwC08D,SAAxC,EAAmD,KAAK3pD,OAAxD,CADJ;IAEA,KAAK05E,cAAL,GAAsB/vB,SAAS,CAAC7jE,MAAV,GAAmB6jE,SAAS,CAACA,SAAS,CAAC7jE,MAAV,GAAmB,CAApB,CAA5B,GAAqD,IAAIm6C,GAAJ,EAA3E;IACA,KAAKu5C,SAAL,CAAe/uF,gBAAf,CAAgC,QAAhC,EAA0C,MAAM,KAAKugE,SAAL,EAAhD;EACH;;EACDuuB,yBAAyB,GAAG;IACxB;IACA,IAAI,KAAKD,MAAT,EAAiB;MACb,KAAKK,oBAAL;IACH,CAFD,MAGK;MACD,KAAKH,SAAL,CAAeluB,KAAf;IACH;EACJ;;EACDsuB,yBAAyB,CAACjwB,SAAD,EAAY;IACjC,MAAMkwB,GAAG,GAAG,EAAZ;IACAlwB,SAAS,CAACtiE,OAAV,CAAkBoY,KAAK,IAAI;MACvBo6E,GAAG,CAAC9wF,IAAJ,CAAS5C,MAAM,CAAC2zF,WAAP,CAAmBr6E,KAAnB,CAAT;IACH,CAFD;IAGA,OAAOo6E,GAAP;EACH;EACD;;;EACAJ,oBAAoB,CAACxsF,OAAD,EAAU08D,SAAV,EAAqB3pD,OAArB,EAA8B;IAC9C;IACA;IACA,OAAO/S,OAAO,CAAC,SAAD,CAAP,CAAmB,KAAK2sF,yBAAL,CAA+BjwB,SAA/B,CAAnB,EAA8D3pD,OAA9D,CAAP;EACH;;EACDirD,OAAO,CAACl8D,EAAD,EAAK;IACR,KAAK07D,mBAAL,CAAyB1hE,IAAzB,CAA8BgG,EAA9B;;IACA,KAAKu7D,WAAL,CAAiBvhE,IAAjB,CAAsBgG,EAAtB;EACH;;EACDu+B,MAAM,CAACv+B,EAAD,EAAK;IACP,KAAKy7D,kBAAL,CAAwBzhE,IAAxB,CAA6BgG,EAA7B;;IACA,KAAKs7D,UAAL,CAAgBthE,IAAhB,CAAqBgG,EAArB;EACH;;EACDm8D,SAAS,CAACn8D,EAAD,EAAK;IACV,KAAKw7D,aAAL,CAAmBxhE,IAAnB,CAAwBgG,EAAxB;EACH;;EACDs+B,IAAI,GAAG;IACH,KAAKi9C,YAAL;;IACA,IAAI,CAAC,KAAKnf,UAAL,EAAL,EAAwB;MACpB,KAAKb,WAAL,CAAiBjjE,OAAjB,CAAyB0H,EAAE,IAAIA,EAAE,EAAjC;;MACA,KAAKu7D,WAAL,GAAmB,EAAnB;MACA,KAAKI,QAAL,GAAgB,IAAhB;;MACA,IAAI,KAAKwuB,cAAT,EAAyB;QACrB,KAAKA,cAAL,CAAoB9iD,KAApB;MACH;IACJ;;IACD,KAAKojD,SAAL,CAAensD,IAAf;EACH;;EACDi+B,KAAK,GAAG;IACJ,KAAK58C,IAAL;IACA,KAAK8qE,SAAL,CAAeluB,KAAf;EACH;;EACDE,MAAM,GAAG;IACL,KAAK98C,IAAL;;IACA,IAAI,KAAKwqE,cAAT,EAAyB;MACrB,KAAKA,cAAL,CAAoB1tB,MAApB;IACH;;IACD,KAAKR,SAAL;;IACA,KAAKwuB,SAAL,CAAehuB,MAAf;EACH;;EACD7jD,KAAK,GAAG;IACJ,KAAKgyE,oBAAL;;IACA,KAAKhvB,UAAL,GAAkB,KAAlB;IACA,KAAKC,SAAL,GAAiB,KAAjB;IACA,KAAKF,QAAL,GAAgB,KAAhB;IACA,KAAKJ,WAAL,GAAmB,KAAKG,mBAAxB;IACA,KAAKJ,UAAL,GAAkB,KAAKG,kBAAvB;EACH;;EACDmvB,oBAAoB,GAAG;IACnB,IAAI,KAAKH,SAAT,EAAoB;MAChB,KAAKA,SAAL,CAAeO,MAAf;IACH;EACJ;;EACDxuB,OAAO,GAAG;IACN,KAAK5jD,KAAL;IACA,KAAK0lB,IAAL;EACH;;EACD89B,UAAU,GAAG;IACT,OAAO,KAAKT,QAAZ;EACH;;EACDt9B,OAAO,GAAG;IACN,IAAI,CAAC,KAAKu9B,UAAV,EAAsB;MAClB,KAAKA,UAAL,GAAkB,IAAlB;;MACA,KAAKgvB,oBAAL;;MACA,KAAK3uB,SAAL;;MACA,IAAI,KAAKkuB,cAAT,EAAyB;QACrB,KAAKA,cAAL,CAAoB9rD,OAApB;MACH;;MACD,KAAKm9B,aAAL,CAAmBljE,OAAnB,CAA2B0H,EAAE,IAAIA,EAAE,EAAnC;;MACA,KAAKw7D,aAAL,GAAqB,EAArB;IACH;EACJ;;EACDkB,WAAW,CAAC7wD,CAAD,EAAI;IACX,IAAI,KAAK4+E,SAAL,KAAmB9wF,SAAvB,EAAkC;MAC9B,KAAKgmB,IAAL;IACH;;IACD,KAAK8qE,SAAL,CAAerf,WAAf,GAA6Bv/D,CAAC,GAAG,KAAK0xD,IAAtC;EACH;;EACDZ,WAAW,GAAG;IACV,OAAO,KAAK8tB,SAAL,CAAerf,WAAf,GAA6B,KAAK7N,IAAzC;EACH;;EACY,IAATvB,SAAS,GAAG;IACZ,OAAO,KAAKuuB,MAAL,GAAc,KAAKD,SAA1B;EACH;;EACD1sB,aAAa,GAAG;IACZ,MAAMp+D,MAAM,GAAG,IAAI0xC,GAAJ,EAAf;;IACA,IAAI,KAAKkrB,UAAL,EAAJ,EAAuB;MACnB;MACA;MACA;MACA,MAAMqZ,aAAa,GAAG,KAAKkV,cAA3B;MACAlV,aAAa,CAACn9E,OAAd,CAAsB,CAACgG,GAAD,EAAM2T,IAAN,KAAe;QACjC,IAAIA,IAAI,KAAK,QAAb,EAAuB;UACnBzS,MAAM,CAACsf,GAAP,CAAW7M,IAAX,EAAiB,KAAK4pD,SAAL,GAAiBv9D,GAAjB,GAAuBgmE,YAAY,CAAC,KAAKpmE,OAAN,EAAe+T,IAAf,CAApD;QACH;MACJ,CAJD;IAKH;;IACD,KAAKo4E,eAAL,GAAuB7qF,MAAvB;EACH;EACD;;;EACAo9D,eAAe,CAACC,SAAD,EAAY;IACvB,MAAMC,OAAO,GAAGD,SAAS,KAAK,OAAd,GAAwB,KAAKtB,WAA7B,GAA2C,KAAKD,UAAhE;IACAwB,OAAO,CAACxkE,OAAR,CAAgB0H,EAAE,IAAIA,EAAE,EAAxB;IACA88D,OAAO,CAAC/lE,MAAR,GAAiB,CAAjB;EACH;;AAvKqB;;AA0K1B,MAAMk0F,mBAAN,CAA0B;EACtB1nB,qBAAqB,CAACtxD,IAAD,EAAO;IACxB;IACA,IAAI,OAAO4L,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C,OAAO0lD,qBAAqB,CAACtxD,IAAD,CAA5B;IACH;;IACD,OAAO,IAAP;EACH;;EACDsnE,+BAA+B,CAACtnE,IAAD,EAAO;IAClC;IACA,IAAI,OAAO4L,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;MAC/C,MAAMqtE,OAAO,GAAGxkB,mBAAmB,CAACz0D,IAAD,CAAnC;MACA,OAAOyxD,kCAAkC,CAACwnB,OAAD,CAAzC;IACH;;IACD,OAAO,IAAP;EACH;;EACD/mB,cAAc,CAACC,QAAD,EAAWC,SAAX,EAAsB;IAChC;IACA,OAAO,KAAP;EACH;;EACDT,eAAe,CAAChB,IAAD,EAAOC,IAAP,EAAa;IACxB,OAAOe,eAAe,CAAChB,IAAD,EAAOC,IAAP,CAAtB;EACH;;EACDI,gBAAgB,CAAC/kE,OAAD,EAAU;IACtB,OAAO+kE,gBAAgB,CAAC/kE,OAAD,CAAvB;EACH;;EACD+yB,KAAK,CAAC/yB,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,EAA2B;IAC5B,OAAOc,WAAW,CAAC3lE,OAAD,EAAUw8B,QAAV,EAAoBqoC,KAApB,CAAlB;EACH;;EACDuB,YAAY,CAACpmE,OAAD,EAAU+T,IAAV,EAAgB6zC,YAAhB,EAA8B;IACtC,OAAOrrD,MAAM,CAAC6a,gBAAP,CAAwBpX,OAAxB,EAAiC+T,IAAjC,CAAP;EACH;;EACDypB,OAAO,CAACx9B,OAAD,EAAU08D,SAAV,EAAqBS,QAArB,EAA+BrR,KAA/B,EAAsCua,MAAtC,EAA8CC,eAAe,GAAG,EAAhE,EAAoE;IACvE,MAAMl8D,IAAI,GAAG0hD,KAAK,IAAI,CAAT,GAAa,MAAb,GAAsB,UAAnC;IACA,MAAMmhC,aAAa,GAAG;MAAE9vB,QAAF;MAAYrR,KAAZ;MAAmB1hD;IAAnB,CAAtB,CAFuE,CAGvE;IACA;;IACA,IAAIi8D,MAAJ,EAAY;MACR4mB,aAAa,CAAC,QAAD,CAAb,GAA0B5mB,MAA1B;IACH;;IACD,MAAMoD,cAAc,GAAG,IAAIz2B,GAAJ,EAAvB;IACA,MAAMk6C,2BAA2B,GAAG5mB,eAAe,CAACrsE,MAAhB,CAAuBklE,MAAM,IAAIA,MAAM,YAAY6sB,mBAAnD,CAApC;;IACA,IAAIziB,8BAA8B,CAACpM,QAAD,EAAWrR,KAAX,CAAlC,EAAqD;MACjDohC,2BAA2B,CAAC9yF,OAA5B,CAAoC+kE,MAAM,IAAI;QAC1CA,MAAM,CAACgtB,eAAP,CAAuB/xF,OAAvB,CAA+B,CAACgG,GAAD,EAAM2T,IAAN,KAAe01D,cAAc,CAAC7oD,GAAf,CAAmB7M,IAAnB,EAAyB3T,GAAzB,CAA9C;MACH,CAFD;IAGH;;IACD,IAAIm2E,UAAU,GAAGzO,kBAAkB,CAACpL,SAAD,CAAlB,CAA8Bh9D,GAA9B,CAAkC4B,MAAM,IAAI2mE,UAAU,CAAC3mE,MAAD,CAAtD,CAAjB;;IACAi1E,UAAU,GAAG/M,kCAAkC,CAACxpE,OAAD,EAAUu2E,UAAV,EAAsB9M,cAAtB,CAA/C;IACA,MAAM0jB,aAAa,GAAG/B,0BAA0B,CAACprF,OAAD,EAAUu2E,UAAV,CAAhD;IACA,OAAO,IAAIyV,mBAAJ,CAAwBhsF,OAAxB,EAAiCu2E,UAAjC,EAA6C0W,aAA7C,EAA4DE,aAA5D,CAAP;EACH;;AAnDqB;AAsD1B;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;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjnJA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIoC,IAAI,GAAG,IAAX;;AACA,SAASC,MAAT,GAAkB;EACd,OAAOD,IAAP;AACH;;AACD,SAASE,MAAT,CAAgBC,OAAhB,EAAyB;EACrBH,IAAI,GAAGG,OAAP;AACH;;AACD,SAASC,iBAAT,CAA2BD,OAA3B,EAAoC;EAChC,IAAI,CAACH,IAAL,EAAW;IACPA,IAAI,GAAGG,OAAP;EACH;AACJ;AACD;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,UAAN,CAAiB;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM3yF,QAAQ,GAAG,IAAIixF,yDAAJ,CAAmB,eAAnB,CAAjB;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,MAAM2B,gBAAN,CAAuB;EACnBC,SAAS,CAACC,gBAAD,EAAmB;IACxB,MAAM,IAAIx6E,KAAJ,CAAU,iBAAV,CAAN;EACH;;AAHkB;;AAKvBs6E,gBAAgB,CAAC1wE,IAAjB;EAAA,iBAA6G0wE,gBAA7G;AAAA;;AACAA,gBAAgB,CAACtwE,KAAjB,kBADmGsgD,gEACnG;EAAA,OAAiHgwB,gBAAjH;EAAA;IAAA,OAAuKG,0BAAvK;EAAA;EAAA,YAA+I;AAA/I;;AACA;EAAA,mDAFmGnwB,+DAEnG,CAA2FgwB,gBAA3F,EAAyH,CAAC;IAC9Gt8E,IAAI,EAAEiL,qDADwG;IAE9GnR,IAAI,EAAE,CAAC;MACC4iF,UAAU,EAAE,UADb;MAEC;MACAC,UAAU,EAAEF;IAHb,CAAD;EAFwG,CAAD,CAAzH;AAAA;;AAQA,SAASA,0BAAT,GAAsC;EAClC,OAAO1wE,0DAAQ,CAAC6wE,uBAAD,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAoB,GAAG,IAAIlC,yDAAJ,CAAmB,sBAAnB,CAA7B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMiC,uBAAN,SAAsCN,gBAAtC,CAAuD;EACnD13F,WAAW,CAACk4F,IAAD,EAAO;IACd;IACA,KAAKA,IAAL,GAAYA,IAAZ;;IACA,KAAKC,KAAL;EACH,CALkD,CAMnD;;EACA;;;EACAA,KAAK,GAAG;IACJ,KAAK1uE,QAAL,GAAgBrlB,MAAM,CAACqlB,QAAvB;IACA,KAAK2uE,QAAL,GAAgBh0F,MAAM,CAAC6nB,OAAvB;EACH;;EACDosE,kBAAkB,GAAG;IACjB,OAAOhB,MAAM,GAAGiB,WAAT,CAAqB,KAAKJ,IAA1B,CAAP;EACH;;EACDK,UAAU,CAAC5uF,EAAD,EAAK;IACX,MAAMvF,MAAM,GAAGizF,MAAM,GAAGmB,oBAAT,CAA8B,KAAKN,IAAnC,EAAyC,QAAzC,CAAf;IACA9zF,MAAM,CAACiB,gBAAP,CAAwB,UAAxB,EAAoCsE,EAApC,EAAwC,KAAxC;IACA,OAAO,MAAMvF,MAAM,CAACqF,mBAAP,CAA2B,UAA3B,EAAuCE,EAAvC,CAAb;EACH;;EACD8uF,YAAY,CAAC9uF,EAAD,EAAK;IACb,MAAMvF,MAAM,GAAGizF,MAAM,GAAGmB,oBAAT,CAA8B,KAAKN,IAAnC,EAAyC,QAAzC,CAAf;IACA9zF,MAAM,CAACiB,gBAAP,CAAwB,YAAxB,EAAsCsE,EAAtC,EAA0C,KAA1C;IACA,OAAO,MAAMvF,MAAM,CAACqF,mBAAP,CAA2B,YAA3B,EAAyCE,EAAzC,CAAb;EACH;;EACO,IAAJigB,IAAI,GAAG;IACP,OAAO,KAAKH,QAAL,CAAcG,IAArB;EACH;;EACW,IAAR8uE,QAAQ,GAAG;IACX,OAAO,KAAKjvE,QAAL,CAAcivE,QAArB;EACH;;EACW,IAARC,QAAQ,GAAG;IACX,OAAO,KAAKlvE,QAAL,CAAckvE,QAArB;EACH;;EACO,IAAJC,IAAI,GAAG;IACP,OAAO,KAAKnvE,QAAL,CAAcmvE,IAArB;EACH;;EACW,IAARzsE,QAAQ,GAAG;IACX,OAAO,KAAK1C,QAAL,CAAc0C,QAArB;EACH;;EACS,IAAN2O,MAAM,GAAG;IACT,OAAO,KAAKrR,QAAL,CAAcqR,MAArB;EACH;;EACO,IAAJpR,IAAI,GAAG;IACP,OAAO,KAAKD,QAAL,CAAcC,IAArB;EACH;;EACW,IAARyC,QAAQ,CAAC0sE,OAAD,EAAU;IAClB,KAAKpvE,QAAL,CAAc0C,QAAd,GAAyB0sE,OAAzB;EACH;;EACDC,SAAS,CAACnyE,KAAD,EAAQvS,KAAR,EAAe6T,GAAf,EAAoB;IACzB,IAAI8wE,aAAa,EAAjB,EAAqB;MACjB,KAAKX,QAAL,CAAcU,SAAd,CAAwBnyE,KAAxB,EAA+BvS,KAA/B,EAAsC6T,GAAtC;IACH,CAFD,MAGK;MACD,KAAKwB,QAAL,CAAcC,IAAd,GAAqBzB,GAArB;IACH;EACJ;;EACDiE,YAAY,CAACvF,KAAD,EAAQvS,KAAR,EAAe6T,GAAf,EAAoB;IAC5B,IAAI8wE,aAAa,EAAjB,EAAqB;MACjB,KAAKX,QAAL,CAAclsE,YAAd,CAA2BvF,KAA3B,EAAkCvS,KAAlC,EAAyC6T,GAAzC;IACH,CAFD,MAGK;MACD,KAAKwB,QAAL,CAAcC,IAAd,GAAqBzB,GAArB;IACH;EACJ;;EACD+wE,OAAO,GAAG;IACN,KAAKZ,QAAL,CAAcY,OAAd;EACH;;EACDC,IAAI,GAAG;IACH,KAAKb,QAAL,CAAca,IAAd;EACH;;EACDtB,SAAS,CAACC,gBAAgB,GAAG,CAApB,EAAuB;IAC5B,KAAKQ,QAAL,CAAcc,EAAd,CAAiBtB,gBAAjB;EACH;;EACDuB,QAAQ,GAAG;IACP,OAAO,KAAKf,QAAL,CAAczxE,KAArB;EACH;;AA5EkD;;AA8EvDqxE,uBAAuB,CAAChxE,IAAxB;EAAA,iBAAoHgxE,uBAApH,EAvGmGtwB,sDAuGnG,CAA6J5iE,QAA7J;AAAA;;AACAkzF,uBAAuB,CAAC5wE,KAAxB,kBAxGmGsgD,gEAwGnG;EAAA,OAAwHswB,uBAAxH;EAAA;IAAA,OAAqLoB,6BAArL;EAAA;EAAA,YAA6J;AAA7J;;AACA;EAAA,mDAzGmG1xB,+DAyGnG,CAA2FswB,uBAA3F,EAAgI,CAAC;IACrH58E,IAAI,EAAEiL,qDAD+G;IAErHnR,IAAI,EAAE,CAAC;MACC4iF,UAAU,EAAE,UADb;MAEC;MACAC,UAAU,EAAEqB;IAHb,CAAD;EAF+G,CAAD,CAAhI,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEh+E,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAC9DzK,IAAI,EAAEmzB,iDADwD;QAE9Dr5B,IAAI,EAAE,CAACpQ,QAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CAVxB;AAAA;;AAWA,SAASi0F,aAAT,GAAyB;EACrB,OAAO,CAAC,CAAC30F,MAAM,CAAC6nB,OAAP,CAAe6sE,SAAxB;AACH;;AACD,SAASM,6BAAT,GAAyC;EACrC,OAAO,IAAIpB,uBAAJ,CAA4B7wE,0DAAQ,CAACriB,QAAD,CAApC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu0F,aAAT,CAAuBroD,KAAvB,EAA8Br7B,GAA9B,EAAmC;EAC/B,IAAIq7B,KAAK,CAACtwC,MAAN,IAAgB,CAApB,EAAuB;IACnB,OAAOiV,GAAP;EACH;;EACD,IAAIA,GAAG,CAACjV,MAAJ,IAAc,CAAlB,EAAqB;IACjB,OAAOswC,KAAP;EACH;;EACD,IAAIsoD,OAAO,GAAG,CAAd;;EACA,IAAItoD,KAAK,CAAC6Q,QAAN,CAAe,GAAf,CAAJ,EAAyB;IACrBy3C,OAAO;EACV;;EACD,IAAI3jF,GAAG,CAACw6D,UAAJ,CAAe,GAAf,CAAJ,EAAyB;IACrBmpB,OAAO;EACV;;EACD,IAAIA,OAAO,IAAI,CAAf,EAAkB;IACd,OAAOtoD,KAAK,GAAGr7B,GAAG,CAACwhB,SAAJ,CAAc,CAAd,CAAf;EACH;;EACD,IAAImiE,OAAO,IAAI,CAAf,EAAkB;IACd,OAAOtoD,KAAK,GAAGr7B,GAAf;EACH;;EACD,OAAOq7B,KAAK,GAAG,GAAR,GAAcr7B,GAArB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4jF,kBAAT,CAA4BtxE,GAA5B,EAAiC;EAC7B,MAAMrO,KAAK,GAAGqO,GAAG,CAACrO,KAAJ,CAAU,QAAV,CAAd;EACA,MAAM4/E,UAAU,GAAG5/E,KAAK,IAAIA,KAAK,CAACxM,KAAf,IAAwB6a,GAAG,CAACvnB,MAA/C;EACA,MAAM+4F,eAAe,GAAGD,UAAU,IAAIvxE,GAAG,CAACuxE,UAAU,GAAG,CAAd,CAAH,KAAwB,GAAxB,GAA8B,CAA9B,GAAkC,CAAtC,CAAlC;EACA,OAAOvxE,GAAG,CAACnY,KAAJ,CAAU,CAAV,EAAa2pF,eAAb,IAAgCxxE,GAAG,CAACnY,KAAJ,CAAU0pF,UAAV,CAAvC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,CAA8BzlF,MAA9B,EAAsC;EAClC,OAAOA,MAAM,IAAIA,MAAM,CAAC,CAAD,CAAN,KAAc,GAAxB,GAA8B,MAAMA,MAApC,GAA6CA,MAApD;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,MAAM0lF,gBAAN,CAAuB;EACnBhC,SAAS,CAACC,gBAAD,EAAmB;IACxB,MAAM,IAAIx6E,KAAJ,CAAU,iBAAV,CAAN;EACH;;AAHkB;;AAKvBu8E,gBAAgB,CAAC3yE,IAAjB;EAAA,iBAA6G2yE,gBAA7G;AAAA;;AACAA,gBAAgB,CAACvyE,KAAjB,kBAjOmGsgD,gEAiOnG;EAAA,OAAiHiyB,gBAAjH;EAAA;IAAA,QAAmK,MAAM5vE,qDAAM,CAAC6vE,oBAAD,CAA/K;EAAA;EAAA,YAA+I;AAA/I;;AACA;EAAA,mDAlOmGlyB,+DAkOnG,CAA2FiyB,gBAA3F,EAAyH,CAAC;IAC9Gv+E,IAAI,EAAEiL,qDADwG;IAE9GnR,IAAI,EAAE,CAAC;MAAE4iF,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAE,MAAMhuE,qDAAM,CAAC6vE,oBAAD;IAA9C,CAAD;EAFwG,CAAD,CAAzH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,aAAa,GAAG,IAAI9D,yDAAJ,CAAmB,aAAnB,CAAtB;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,MAAM6D,oBAAN,SAAmCD,gBAAnC,CAAoD;EAChD35F,WAAW,CAAC85F,iBAAD,EAAoBlwE,IAApB,EAA0B;IACjC;IACA,KAAKkwE,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,kBAAL,GAA0B,EAA1B;IACA,KAAKC,SAAL,GAAiBpwE,IAAI,IAAI,KAAKkwE,iBAAL,CAAuBzB,kBAAvB,EAAR,IACbtuE,qDAAM,CAACjlB,QAAD,CAAN,CAAiB2kB,QAAjB,EAA2BwwE,MADd,IACwB,EADzC;EAEH;EACD;;;EACAn0C,WAAW,GAAG;IACV,OAAO,KAAKi0C,kBAAL,CAAwBr5F,MAA/B,EAAuC;MACnC,KAAKq5F,kBAAL,CAAwB16D,GAAxB;IACH;EACJ;;EACDk5D,UAAU,CAAC5uF,EAAD,EAAK;IACX,KAAKowF,kBAAL,CAAwBp2F,IAAxB,CAA6B,KAAKm2F,iBAAL,CAAuBvB,UAAvB,CAAkC5uF,EAAlC,CAA7B,EAAoE,KAAKmwF,iBAAL,CAAuBrB,YAAvB,CAAoC9uF,EAApC,CAApE;EACH;;EACD2uF,WAAW,GAAG;IACV,OAAO,KAAK0B,SAAZ;EACH;;EACDE,kBAAkB,CAACC,QAAD,EAAW;IACzB,OAAOd,aAAa,CAAC,KAAKW,SAAN,EAAiBG,QAAjB,CAApB;EACH;;EACD9oF,IAAI,CAAC+oF,WAAW,GAAG,KAAf,EAAsB;IACtB,MAAMjuE,QAAQ,GAAG,KAAK2tE,iBAAL,CAAuB3tE,QAAvB,GAAkCutE,oBAAoB,CAAC,KAAKI,iBAAL,CAAuBh/D,MAAxB,CAAvE;IACA,MAAMpR,IAAI,GAAG,KAAKowE,iBAAL,CAAuBpwE,IAApC;IACA,OAAOA,IAAI,IAAI0wE,WAAR,GAAuB,GAAEjuE,QAAS,GAAEzC,IAAK,EAAzC,GAA6CyC,QAApD;EACH;;EACD2sE,SAAS,CAACnyE,KAAD,EAAQvS,KAAR,EAAe6T,GAAf,EAAoBoyE,WAApB,EAAiC;IACtC,MAAMC,WAAW,GAAG,KAAKJ,kBAAL,CAAwBjyE,GAAG,GAAGyxE,oBAAoB,CAACW,WAAD,CAAlD,CAApB;;IACA,KAAKP,iBAAL,CAAuBhB,SAAvB,CAAiCnyE,KAAjC,EAAwCvS,KAAxC,EAA+CkmF,WAA/C;EACH;;EACDpuE,YAAY,CAACvF,KAAD,EAAQvS,KAAR,EAAe6T,GAAf,EAAoBoyE,WAApB,EAAiC;IACzC,MAAMC,WAAW,GAAG,KAAKJ,kBAAL,CAAwBjyE,GAAG,GAAGyxE,oBAAoB,CAACW,WAAD,CAAlD,CAApB;;IACA,KAAKP,iBAAL,CAAuB5tE,YAAvB,CAAoCvF,KAApC,EAA2CvS,KAA3C,EAAkDkmF,WAAlD;EACH;;EACDtB,OAAO,GAAG;IACN,KAAKc,iBAAL,CAAuBd,OAAvB;EACH;;EACDC,IAAI,GAAG;IACH,KAAKa,iBAAL,CAAuBb,IAAvB;EACH;;EACDE,QAAQ,GAAG;IACP,OAAO,KAAKW,iBAAL,CAAuBX,QAAvB,EAAP;EACH;;EACDxB,SAAS,CAACC,gBAAgB,GAAG,CAApB,EAAuB;IAC5B,KAAKkC,iBAAL,CAAuBnC,SAAvB,GAAmCC,gBAAnC;EACH;;AA/C+C;;AAiDpDgC,oBAAoB,CAAC5yE,IAArB;EAAA,iBAAiH4yE,oBAAjH,EA9UmGlyB,sDA8UnG,CAAuJgwB,gBAAvJ,GA9UmGhwB,sDA8UnG,CAAoLmyB,aAApL;AAAA;;AACAD,oBAAoB,CAACxyE,KAArB,kBA/UmGsgD,gEA+UnG;EAAA,OAAqHkyB,oBAArH;EAAA,SAAqHA,oBAArH;EAAA,YAAuJ;AAAvJ;;AACA;EAAA,mDAhVmGlyB,+DAgVnG,CAA2FkyB,oBAA3F,EAA6H,CAAC;IAClHx+E,IAAI,EAAEiL,qDAD4G;IAElHnR,IAAI,EAAE,CAAC;MAAE4iF,UAAU,EAAE;IAAd,CAAD;EAF4G,CAAD,CAA7H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE18E,IAAI,EAAEs8E;IAAR,CAAD,EAA6B;MAAEt8E,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAC1FzK,IAAI,EAAE46E,mDAAQA;MAD4E,CAAD,EAE1F;QACC56E,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC2kF,aAAD;MAFP,CAF0F;IAA/B,CAA7B,CAAP;EAKlB,CARxB;AAAA;AAUA;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,MAAMU,oBAAN,SAAmCZ,gBAAnC,CAAoD;EAChD35F,WAAW,CAAC85F,iBAAD,EAAoBE,SAApB,EAA+B;IACtC;IACA,KAAKF,iBAAL,GAAyBA,iBAAzB;IACA,KAAKE,SAAL,GAAiB,EAAjB;IACA,KAAKD,kBAAL,GAA0B,EAA1B;;IACA,IAAIC,SAAS,IAAI,IAAjB,EAAuB;MACnB,KAAKA,SAAL,GAAiBA,SAAjB;IACH;EACJ;EACD;;;EACAl0C,WAAW,GAAG;IACV,OAAO,KAAKi0C,kBAAL,CAAwBr5F,MAA/B,EAAuC;MACnC,KAAKq5F,kBAAL,CAAwB16D,GAAxB;IACH;EACJ;;EACDk5D,UAAU,CAAC5uF,EAAD,EAAK;IACX,KAAKowF,kBAAL,CAAwBp2F,IAAxB,CAA6B,KAAKm2F,iBAAL,CAAuBvB,UAAvB,CAAkC5uF,EAAlC,CAA7B,EAAoE,KAAKmwF,iBAAL,CAAuBrB,YAAvB,CAAoC9uF,EAApC,CAApE;EACH;;EACD2uF,WAAW,GAAG;IACV,OAAO,KAAK0B,SAAZ;EACH;;EACD3oF,IAAI,CAAC+oF,WAAW,GAAG,KAAf,EAAsB;IACtB;IACA;IACA,IAAI/oF,IAAI,GAAG,KAAKyoF,iBAAL,CAAuBpwE,IAAlC;IACA,IAAIrY,IAAI,IAAI,IAAZ,EACIA,IAAI,GAAG,GAAP;IACJ,OAAOA,IAAI,CAAC3Q,MAAL,GAAc,CAAd,GAAkB2Q,IAAI,CAAC8lB,SAAL,CAAe,CAAf,CAAlB,GAAsC9lB,IAA7C;EACH;;EACD6oF,kBAAkB,CAACC,QAAD,EAAW;IACzB,MAAMlyE,GAAG,GAAGoxE,aAAa,CAAC,KAAKW,SAAN,EAAiBG,QAAjB,CAAzB;IACA,OAAOlyE,GAAG,CAACvnB,MAAJ,GAAa,CAAb,GAAkB,MAAMunB,GAAxB,GAA+BA,GAAtC;EACH;;EACD6wE,SAAS,CAACnyE,KAAD,EAAQvS,KAAR,EAAe/C,IAAf,EAAqBgpF,WAArB,EAAkC;IACvC,IAAIpyE,GAAG,GAAG,KAAKiyE,kBAAL,CAAwB7oF,IAAI,GAAGqoF,oBAAoB,CAACW,WAAD,CAAnD,CAAV;;IACA,IAAIpyE,GAAG,CAACvnB,MAAJ,IAAc,CAAlB,EAAqB;MACjBunB,GAAG,GAAG,KAAK6xE,iBAAL,CAAuB3tE,QAA7B;IACH;;IACD,KAAK2tE,iBAAL,CAAuBhB,SAAvB,CAAiCnyE,KAAjC,EAAwCvS,KAAxC,EAA+C6T,GAA/C;EACH;;EACDiE,YAAY,CAACvF,KAAD,EAAQvS,KAAR,EAAe/C,IAAf,EAAqBgpF,WAArB,EAAkC;IAC1C,IAAIpyE,GAAG,GAAG,KAAKiyE,kBAAL,CAAwB7oF,IAAI,GAAGqoF,oBAAoB,CAACW,WAAD,CAAnD,CAAV;;IACA,IAAIpyE,GAAG,CAACvnB,MAAJ,IAAc,CAAlB,EAAqB;MACjBunB,GAAG,GAAG,KAAK6xE,iBAAL,CAAuB3tE,QAA7B;IACH;;IACD,KAAK2tE,iBAAL,CAAuB5tE,YAAvB,CAAoCvF,KAApC,EAA2CvS,KAA3C,EAAkD6T,GAAlD;EACH;;EACD+wE,OAAO,GAAG;IACN,KAAKc,iBAAL,CAAuBd,OAAvB;EACH;;EACDC,IAAI,GAAG;IACH,KAAKa,iBAAL,CAAuBb,IAAvB;EACH;;EACDE,QAAQ,GAAG;IACP,OAAO,KAAKW,iBAAL,CAAuBX,QAAvB,EAAP;EACH;;EACDxB,SAAS,CAACC,gBAAgB,GAAG,CAApB,EAAuB;IAC5B,KAAKkC,iBAAL,CAAuBnC,SAAvB,GAAmCC,gBAAnC;EACH;;AA3D+C;;AA6DpD2C,oBAAoB,CAACvzE,IAArB;EAAA,iBAAiHuzE,oBAAjH,EAhbmG7yB,sDAgbnG,CAAuJgwB,gBAAvJ,GAhbmGhwB,sDAgbnG,CAAoLmyB,aAApL;AAAA;;AACAU,oBAAoB,CAACnzE,KAArB,kBAjbmGsgD,gEAibnG;EAAA,OAAqH6yB,oBAArH;EAAA,SAAqHA,oBAArH;AAAA;;AACA;EAAA,mDAlbmG7yB,+DAkbnG,CAA2F6yB,oBAA3F,EAA6H,CAAC;IAClHn/E,IAAI,EAAEiL,qDAAUA;EADkG,CAAD,CAA7H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEjL,IAAI,EAAEs8E;IAAR,CAAD,EAA6B;MAAEt8E,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAC1FzK,IAAI,EAAE46E,mDAAQA;MAD4E,CAAD,EAE1F;QACC56E,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC2kF,aAAD;MAFP,CAF0F;IAA/B,CAA7B,CAAP;EAKlB,CAPxB;AAAA;AASA;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,MAAM7rC,QAAN,CAAe;EACXhuD,WAAW,CAACw6F,gBAAD,EAAmB;IAC1B;IACA,KAAK1jC,QAAL,GAAgB,IAAIz2B,uDAAJ,EAAhB;IACA;;IACA,KAAKo6D,mBAAL,GAA2B,EAA3B;IACA;;IACA,KAAKC,sBAAL,GAA8B,IAA9B;IACA,KAAKC,iBAAL,GAAyBH,gBAAzB;;IACA,MAAMI,eAAe,GAAG,KAAKD,iBAAL,CAAuBrC,WAAvB,EAAxB;;IACA,KAAK0B,SAAL,GAAiBT,kBAAkB,CAACsB,eAAe,CAACD,eAAD,CAAhB,CAAnC;;IACA,KAAKD,iBAAL,CAAuBpC,UAAvB,CAAmCuC,EAAD,IAAQ;MACtC,KAAKhkC,QAAL,CAActsD,IAAd,CAAmB;QACf,OAAO,KAAK6G,IAAL,CAAU,IAAV,CADQ;QAEf,OAAO,IAFQ;QAGf,SAASypF,EAAE,CAACn0E,KAHG;QAIf,QAAQm0E,EAAE,CAAC1/E;MAJI,CAAnB;IAMH,CAPD;EAQH;EACD;;;EACA0qC,WAAW,GAAG;IACV,KAAK40C,sBAAL,EAA6BjtE,WAA7B;IACA,KAAKgtE,mBAAL,GAA2B,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;EACI;EACA;;;EACAppF,IAAI,CAAC+oF,WAAW,GAAG,KAAf,EAAsB;IACtB,OAAO,KAAKW,SAAL,CAAe,KAAKJ,iBAAL,CAAuBtpF,IAAvB,CAA4B+oF,WAA5B,CAAf,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACIjB,QAAQ,GAAG;IACP,OAAO,KAAKwB,iBAAL,CAAuBxB,QAAvB,EAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI6B,oBAAoB,CAAC3pF,IAAD,EAAOupB,KAAK,GAAG,EAAf,EAAmB;IACnC,OAAO,KAAKvpB,IAAL,MAAe,KAAK0pF,SAAL,CAAe1pF,IAAI,GAAGqoF,oBAAoB,CAAC9+D,KAAD,CAA1C,CAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACImgE,SAAS,CAAC9yE,GAAD,EAAM;IACX,OAAO+lC,QAAQ,CAACurC,kBAAT,CAA4B0B,cAAc,CAAC,KAAKjB,SAAN,EAAiBa,eAAe,CAAC5yE,GAAD,CAAhC,CAA1C,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIiyE,kBAAkB,CAACjyE,GAAD,EAAM;IACpB,IAAIA,GAAG,IAAIA,GAAG,CAAC,CAAD,CAAH,KAAW,GAAtB,EAA2B;MACvBA,GAAG,GAAG,MAAMA,GAAZ;IACH;;IACD,OAAO,KAAK0yE,iBAAL,CAAuBT,kBAAvB,CAA0CjyE,GAA1C,CAAP;EACH,CAjFU,CAkFX;;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIixE,EAAE,CAAC7nF,IAAD,EAAOupB,KAAK,GAAG,EAAf,EAAmBjU,KAAK,GAAG,IAA3B,EAAiC;IAC/B,KAAKg0E,iBAAL,CAAuB7B,SAAvB,CAAiCnyE,KAAjC,EAAwC,EAAxC,EAA4CtV,IAA5C,EAAkDupB,KAAlD;;IACA,KAAKsgE,yBAAL,CAA+B,KAAKhB,kBAAL,CAAwB7oF,IAAI,GAAGqoF,oBAAoB,CAAC9+D,KAAD,CAAnD,CAA/B,EAA4FjU,KAA5F;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIuF,YAAY,CAAC7a,IAAD,EAAOupB,KAAK,GAAG,EAAf,EAAmBjU,KAAK,GAAG,IAA3B,EAAiC;IACzC,KAAKg0E,iBAAL,CAAuBzuE,YAAvB,CAAoCvF,KAApC,EAA2C,EAA3C,EAA+CtV,IAA/C,EAAqDupB,KAArD;;IACA,KAAKsgE,yBAAL,CAA+B,KAAKhB,kBAAL,CAAwB7oF,IAAI,GAAGqoF,oBAAoB,CAAC9+D,KAAD,CAAnD,CAA/B,EAA4FjU,KAA5F;EACH;EACD;AACJ;AACA;;;EACIqyE,OAAO,GAAG;IACN,KAAK2B,iBAAL,CAAuB3B,OAAvB;EACH;EACD;AACJ;AACA;;;EACIC,IAAI,GAAG;IACH,KAAK0B,iBAAL,CAAuB1B,IAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACItB,SAAS,CAACC,gBAAgB,GAAG,CAApB,EAAuB;IAC5B,KAAK+C,iBAAL,CAAuBhD,SAAvB,GAAmCC,gBAAnC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIuD,WAAW,CAACxxF,EAAD,EAAK;IACZ,KAAK8wF,mBAAL,CAAyB92F,IAAzB,CAA8BgG,EAA9B;;IACA,IAAI,CAAC,KAAK+wF,sBAAV,EAAkC;MAC9B,KAAKA,sBAAL,GAA8B,KAAK3tE,SAAL,CAAe5G,CAAC,IAAI;QAC9C,KAAK+0E,yBAAL,CAA+B/0E,CAAC,CAAC8B,GAAjC,EAAsC9B,CAAC,CAACQ,KAAxC;MACH,CAF6B,CAA9B;IAGH;;IACD,OAAO,MAAM;MACT,MAAMy0E,OAAO,GAAG,KAAKX,mBAAL,CAAyBj1F,OAAzB,CAAiCmE,EAAjC,CAAhB;;MACA,KAAK8wF,mBAAL,CAAyBpmC,MAAzB,CAAgC+mC,OAAhC,EAAyC,CAAzC;;MACA,IAAI,KAAKX,mBAAL,CAAyB/5F,MAAzB,KAAoC,CAAxC,EAA2C;QACvC,KAAKg6F,sBAAL,EAA6BjtE,WAA7B;QACA,KAAKitE,sBAAL,GAA8B,IAA9B;MACH;IACJ,CAPD;EAQH;EACD;;;EACAQ,yBAAyB,CAACjzE,GAAG,GAAG,EAAP,EAAWtB,KAAX,EAAkB;IACvC,KAAK8zE,mBAAL,CAAyBx4F,OAAzB,CAAiC0H,EAAE,IAAIA,EAAE,CAACse,GAAD,EAAMtB,KAAN,CAAzC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIoG,SAAS,CAACsuE,MAAD,EAASC,OAAT,EAAkBC,QAAlB,EAA4B;IACjC,OAAO,KAAKzkC,QAAL,CAAc/pC,SAAd,CAAwB;MAAEtpB,IAAI,EAAE43F,MAAR;MAAgBp+E,KAAK,EAAEq+E,OAAvB;MAAgCzqC,QAAQ,EAAE0qC;IAA1C,CAAxB,CAAP;EACH;;AAjLU;AAmLf;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAvtC,QAAQ,CAAC0rC,oBAAT,GAAgCA,oBAAhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA1rC,QAAQ,CAACqrC,aAAT,GAAyBA,aAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACArrC,QAAQ,CAACurC,kBAAT,GAA8BA,kBAA9B;;AACAvrC,QAAQ,CAAChnC,IAAT;EAAA,iBAAqGgnC,QAArG,EA7qBmG0Z,sDA6qBnG,CAA+HiyB,gBAA/H;AAAA;;AACA3rC,QAAQ,CAAC5mC,KAAT,kBA9qBmGsgD,gEA8qBnG;EAAA,OAAyG1Z,QAAzG;EAAA;IAAA,OAAmJwtC,cAAnJ;EAAA;EAAA,YAA+H;AAA/H;;AACA;EAAA,mDA/qBmG9zB,+DA+qBnG,CAA2F1Z,QAA3F,EAAiH,CAAC;IACtG5yC,IAAI,EAAEiL,qDADgG;IAEtGnR,IAAI,EAAE,CAAC;MACC4iF,UAAU,EAAE,MADb;MAEC;MACAC,UAAU,EAAEyD;IAHb,CAAD;EAFgG,CAAD,CAAjH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAEpgF,IAAI,EAAEu+E;IAAR,CAAD,CAAP;EAAsC,CAPhF;AAAA;;AAQA,SAAS6B,cAAT,GAA0B;EACtB,OAAO,IAAIxtC,QAAJ,CAAa7mC,0DAAQ,CAACwyE,gBAAD,CAArB,CAAP;AACH;;AACD,SAASsB,cAAT,CAAwBQ,QAAxB,EAAkCxzE,GAAlC,EAAuC;EACnC,OAAOwzE,QAAQ,IAAIxzE,GAAG,CAACkoD,UAAJ,CAAesrB,QAAf,CAAZ,GAAuCxzE,GAAG,CAACkP,SAAJ,CAAcskE,QAAQ,CAAC/6F,MAAvB,CAAvC,GAAwEunB,GAA/E;AACH;;AACD,SAAS4yE,eAAT,CAAyB5yE,GAAzB,EAA8B;EAC1B,OAAOA,GAAG,CAAC/X,OAAJ,CAAY,eAAZ,EAA6B,EAA7B,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMwrF,aAAa,GAAG;EAAE,OAAO,CAACp4F,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAT;EAAoC,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA3C;EAAgE,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAvE;EAAkG,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAzG;EAA8H,OAAO,CAACA,SAAD,EAAY,IAAZ,CAArI;EAAwJ,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/J;EAAiL,OAAO,CAAC,IAAD,EAAO,GAAP,CAAxL;EAAqM,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA5M;EAA8N,OAAO,CAACA,SAAD,EAAY,IAAZ,CAArO;EAAwP,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/P;EAAiR,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAxR;EAA0S,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAjT;EAA4U,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAnV;EAA8W,OAAO,CAACA,SAAD,EAAY,GAAZ,CAArX;EAAuY,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA9Y;EAAga,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAva;EAA0b,OAAO,CAAC,IAAD,CAAjc;EAAyc,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAhd;EAAke,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAze;EAA2f,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAlgB;EAA6hB,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAApiB;EAA+jB,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAtkB;EAAwlB,OAAO,CAAC,KAAD,EAAQ,GAAR,EAAa,CAAb,CAA/lB;EAAgnB,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAvnB;EAAkpB,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAzpB;EAAorB,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA3rB;EAAgtB,OAAO,CAAC,KAAD,EAAQ,GAAR,CAAvtB;EAAquB,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA5uB;EAAiwB,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAxwB;EAA6xB,OAAO,CAACA,SAAD,EAAY,GAAZ,CAApyB;EAAszB,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA7zB;EAA+0B,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAt1B;EAA42B,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAn3B;EAA84B,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAr5B;EAA26B,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAl7B;EAAo8B,OAAO,CAACA,SAAD,EAAY,IAAZ,CAA38B;EAA89B,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAr+B;EAA0/B,OAAO,CAAC,GAAD,CAAjgC;EAAwgC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/gC;EAAiiC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAxiC;EAA0jC,OAAO,CAAC,GAAD,CAAjkC;EAAwkC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/kC;EAAimC,OAAO,CAACA,SAAD,EAAY,KAAZ,CAAxmC;EAA4nC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAnoC;EAAqpC,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAA5pC;EAAkrC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAzrC;EAA2sC,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAltC;EAAuuC,OAAO,CAAC,KAAD,EAAQ,GAAR,CAA9uC;EAA4vC,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAnwC;EAAqxC,OAAO,CAACA,SAAD,EAAY,IAAZ,CAA5xC;EAA+yC,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAtzC;EAA40C,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAn1C;EAAy2C,OAAO,CAAC,GAAD,CAAh3C;EAAu3C,OAAO,CAAC,GAAD,CAA93C;EAAq4C,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA54C;EAAu6C,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA96C;EAAy8C,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAh9C;EAAs+C,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA7+C;EAAwgD,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/gD;EAAiiD,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAxiD;EAAmkD,OAAO,CAAC,GAAD,EAAMA,SAAN,EAAiB,CAAjB,CAA1kD;EAA+lD,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAtmD;EAAwnD,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAA/nD;EAAqpD,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA5pD;EAAirD,OAAO,CAAC,GAAD,EAAMA,SAAN,EAAiB,CAAjB,CAAxrD;EAA6sD,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAptD;EAA+uD,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAtvD;EAAwwD,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/wD;EAAiyD,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAxyD;EAA6zD,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAp0D;EAA01D,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAj2D;EAAo3D,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA33D;EAA64D,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAp5D;EAAu6D,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA96D;EAAy8D,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAh9D;EAAm+D,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA1+D;EAAqgE,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAA5gE;EAAkiE,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAziE;EAAokE,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA3kE;EAAgmE,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAvmE;EAA4nE,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAnoE;EAA8pE,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAArqE;EAA2rE,OAAO,CAAC,KAAD,EAAQ,GAAR,CAAlsE;EAAgtE,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAvtE;EAA0uE,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAjvE;EAAmwE,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA1wE;EAA4xE,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAnyE;EAAszE,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAA7zE;EAAm1E,OAAO,CAACA,SAAD,EAAY,IAAZ,CAA11E;EAA62E,OAAO,CAAC,KAAD,EAAQ,GAAR,CAAp3E;EAAk4E,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAz4E;EAAo6E,OAAO,CAAC,GAAD,CAA36E;EAAk7E,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAz7E;EAA+8E,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAt9E;EAAy+E,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAAh/E;EAAqgF,OAAO,CAACA,SAAD,EAAY,KAAZ,CAA5gF;EAAgiF,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAviF;EAAkkF,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAzkF;EAA2lF,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAlmF;EAAwnF,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA/nF;EAAipF,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAxpF;EAA8qF,OAAO,CAACA,SAAD,EAAY,GAAZ,CAArrF;EAAusF,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA9sF;EAAguF,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAvuF;EAAkwF,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAzwF;EAAoyF,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA3yF;EAAs0F,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA70F;EAA+1F,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAt2F;EAAw3F,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA/3F;EAA05F,OAAO,CAACA,SAAD,EAAY,IAAZ,CAAj6F;EAAo7F,OAAO,CAACA,SAAD,EAAY,GAAZ,EAAiB,CAAjB,CAA37F;EAAg9F,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAv9F;EAAy+F,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAh/F;EAA2gG,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAlhG;EAA6iG,OAAO,CAACA,SAAD,EAAY,IAAZ,CAApjG;EAAukG,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA9kG;EAAymG,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAhnG;EAAkoG,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAzoG;EAA2pG,OAAO,CAAC,KAAD,EAAQ,GAAR,EAAa,CAAb,CAAlqG;EAAmrG,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA1rG;EAAqtG,OAAO,CAACA,SAAD,EAAY,GAAZ,CAA5tG;EAA8uG,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAArvG;EAAgxG,OAAO,CAAC,GAAD,CAAvxG;EAA8xG,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAryG;EAAg0G,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAv0G;EAAy1G,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAh2G;EAA23G,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAl4G;EAA65G,OAAO,CAACA,SAAD,EAAY,IAAZ,EAAkB,CAAlB,CAAp6G;EAA07G,OAAO,CAAC,GAAD,EAAMA,SAAN,EAAiB,CAAjB,CAAj8G;EAAs9G,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA79G;EAAw/G,OAAO,CAAC,MAAD,EAASA,SAAT,EAAoB,CAApB,CAA//G;EAAuhH,OAAO,CAAC,KAAD,EAAQ,GAAR,CAA9hH;EAA4iH,OAAO,CAAC,OAAD,EAAUA,SAAV,EAAqB,CAArB,CAAnjH;EAA4kH,OAAO,CAAC,MAAD,EAASA,SAAT,EAAoB,CAApB,CAAnlH;EAA2mH,OAAO,CAAC,GAAD,CAAlnH;EAAynH,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAAhoH;EAA2pH,OAAO,CAACA,SAAD,EAAY,GAAZ,CAAlqH;EAAorH,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB,CAA3rH;EAAstH,OAAO,CAACA,SAAD,EAAY,IAAZ,CAA7tH;EAAgvH,OAAO,CAACA,SAAD,EAAYA,SAAZ,EAAuB,CAAvB;AAAvvH,CAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIq4F,iBAAJ;;AACA,CAAC,UAAUA,iBAAV,EAA6B;EAC1BA,iBAAiB,CAACA,iBAAiB,CAAC,SAAD,CAAjB,GAA+B,CAAhC,CAAjB,GAAsD,SAAtD;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,SAAD,CAAjB,GAA+B,CAAhC,CAAjB,GAAsD,SAAtD;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,UAAD,CAAjB,GAAgC,CAAjC,CAAjB,GAAuD,UAAvD;EACAA,iBAAiB,CAACA,iBAAiB,CAAC,YAAD,CAAjB,GAAkC,CAAnC,CAAjB,GAAyD,YAAzD;AACH,CALD,EAKGA,iBAAiB,KAAKA,iBAAiB,GAAG,EAAzB,CALpB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,MAAJ;;AACA,CAAC,UAAUA,MAAV,EAAkB;EACfA,MAAM,CAACA,MAAM,CAAC,MAAD,CAAN,GAAiB,CAAlB,CAAN,GAA6B,MAA7B;EACAA,MAAM,CAACA,MAAM,CAAC,KAAD,CAAN,GAAgB,CAAjB,CAAN,GAA4B,KAA5B;EACAA,MAAM,CAACA,MAAM,CAAC,KAAD,CAAN,GAAgB,CAAjB,CAAN,GAA4B,KAA5B;EACAA,MAAM,CAACA,MAAM,CAAC,KAAD,CAAN,GAAgB,CAAjB,CAAN,GAA4B,KAA5B;EACAA,MAAM,CAACA,MAAM,CAAC,MAAD,CAAN,GAAiB,CAAlB,CAAN,GAA6B,MAA7B;EACAA,MAAM,CAACA,MAAM,CAAC,OAAD,CAAN,GAAkB,CAAnB,CAAN,GAA8B,OAA9B;AACH,CAPD,EAOGA,MAAM,KAAKA,MAAM,GAAG,EAAd,CAPT;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAACA,SAAS,CAAC,QAAD,CAAT,GAAsB,CAAvB,CAAT,GAAqC,QAArC;EACAA,SAAS,CAACA,SAAS,CAAC,YAAD,CAAT,GAA0B,CAA3B,CAAT,GAAyC,YAAzC;AACH,CAHD,EAGGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CAHZ;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,gBAAJ;;AACA,CAAC,UAAUA,gBAAV,EAA4B;EACzB;EACAA,gBAAgB,CAACA,gBAAgB,CAAC,QAAD,CAAhB,GAA6B,CAA9B,CAAhB,GAAmD,QAAnD;EACA;;EACAA,gBAAgB,CAACA,gBAAgB,CAAC,aAAD,CAAhB,GAAkC,CAAnC,CAAhB,GAAwD,aAAxD;EACA;;EACAA,gBAAgB,CAACA,gBAAgB,CAAC,MAAD,CAAhB,GAA2B,CAA5B,CAAhB,GAAiD,MAAjD;EACA;;EACAA,gBAAgB,CAACA,gBAAgB,CAAC,OAAD,CAAhB,GAA4B,CAA7B,CAAhB,GAAkD,OAAlD;AACH,CATD,EASGA,gBAAgB,KAAKA,gBAAgB,GAAG,EAAxB,CATnB;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,WAAJ;;AACA,CAAC,UAAUA,WAAV,EAAuB;EACpB;AACJ;AACA;AACA;EACIA,WAAW,CAACA,WAAW,CAAC,OAAD,CAAX,GAAuB,CAAxB,CAAX,GAAwC,OAAxC;EACA;AACJ;AACA;AACA;;EACIA,WAAW,CAACA,WAAW,CAAC,QAAD,CAAX,GAAwB,CAAzB,CAAX,GAAyC,QAAzC;EACA;AACJ;AACA;AACA;;EACIA,WAAW,CAACA,WAAW,CAAC,MAAD,CAAX,GAAsB,CAAvB,CAAX,GAAuC,MAAvC;EACA;AACJ;AACA;AACA;;EACIA,WAAW,CAACA,WAAW,CAAC,MAAD,CAAX,GAAsB,CAAvB,CAAX,GAAuC,MAAvC;AACH,CArBD,EAqBGA,WAAW,KAAKA,WAAW,GAAG,EAAnB,CArBd;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,YAAJ;;AACA,CAAC,UAAUA,YAAV,EAAwB;EACrB;AACJ;AACA;AACA;AACA;EACIA,YAAY,CAACA,YAAY,CAAC,SAAD,CAAZ,GAA0B,CAA3B,CAAZ,GAA4C,SAA5C;EACA;AACJ;AACA;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,OAAD,CAAZ,GAAwB,CAAzB,CAAZ,GAA0C,OAA1C;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,MAAD,CAAZ,GAAuB,CAAxB,CAAZ,GAAyC,MAAzC;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,aAAD,CAAZ,GAA8B,CAA/B,CAAZ,GAAgD,aAAhD;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,UAAD,CAAZ,GAA2B,CAA5B,CAAZ,GAA6C,UAA7C;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,WAAD,CAAZ,GAA4B,CAA7B,CAAZ,GAA8C,WAA9C;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,aAAD,CAAZ,GAA8B,CAA/B,CAAZ,GAAgD,aAAhD;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,wBAAD,CAAZ,GAAyC,CAA1C,CAAZ,GAA2D,wBAA3D;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,UAAD,CAAZ,GAA2B,CAA5B,CAAZ,GAA6C,UAA7C;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,UAAD,CAAZ,GAA2B,CAA5B,CAAZ,GAA6C,UAA7C;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,KAAD,CAAZ,GAAsB,EAAvB,CAAZ,GAAyC,KAAzC;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,eAAD,CAAZ,GAAgC,EAAjC,CAAZ,GAAmD,eAAnD;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,iBAAD,CAAZ,GAAkC,EAAnC,CAAZ,GAAqD,iBAArD;EACA;AACJ;AACA;AACA;;EACIA,YAAY,CAACA,YAAY,CAAC,eAAD,CAAZ,GAAgC,EAAjC,CAAZ,GAAmD,eAAnD;AACH,CAzED,EAyEGA,YAAY,KAAKA,YAAY,GAAG,EAApB,CAzEf;AA0EA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,OAAJ;;AACA,CAAC,UAAUA,OAAV,EAAmB;EAChBA,OAAO,CAACA,OAAO,CAAC,QAAD,CAAP,GAAoB,CAArB,CAAP,GAAiC,QAAjC;EACAA,OAAO,CAACA,OAAO,CAAC,QAAD,CAAP,GAAoB,CAArB,CAAP,GAAiC,QAAjC;EACAA,OAAO,CAACA,OAAO,CAAC,SAAD,CAAP,GAAqB,CAAtB,CAAP,GAAkC,SAAlC;EACAA,OAAO,CAACA,OAAO,CAAC,WAAD,CAAP,GAAuB,CAAxB,CAAP,GAAoC,WAApC;EACAA,OAAO,CAACA,OAAO,CAAC,UAAD,CAAP,GAAsB,CAAvB,CAAP,GAAmC,UAAnC;EACAA,OAAO,CAACA,OAAO,CAAC,QAAD,CAAP,GAAoB,CAArB,CAAP,GAAiC,QAAjC;EACAA,OAAO,CAACA,OAAO,CAAC,UAAD,CAAP,GAAsB,CAAvB,CAAP,GAAmC,UAAnC;AACH,CARD,EAQGA,OAAO,KAAKA,OAAO,GAAG,EAAf,CARV;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,WAAT,CAAqBC,MAArB,EAA6B;EACzB,OAAOlG,iEAAe,CAACkG,MAAD,CAAf,CAAwBjG,uEAAxB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmG,mBAAT,CAA6BF,MAA7B,EAAqCG,SAArC,EAAgD9qF,KAAhD,EAAuD;EACnD,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAMI,QAAQ,GAAG,CACbxoE,IAAI,CAACmiE,+EAAD,CADS,EAC4BniE,IAAI,CAACmiE,mFAAD,CADhC,CAAjB;EAGA,MAAMwG,IAAI,GAAGC,mBAAmB,CAACJ,QAAD,EAAWD,SAAX,CAAhC;EACA,OAAOK,mBAAmB,CAACD,IAAD,EAAOlrF,KAAP,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASorF,iBAAT,CAA2BT,MAA3B,EAAmCG,SAAnC,EAA8C9qF,KAA9C,EAAqD;EACjD,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAMU,QAAQ,GAAG,CAAC9oE,IAAI,CAACmiE,yEAAD,CAAL,EAAoCniE,IAAI,CAACmiE,6EAAD,CAAxC,CAAjB;EACA,MAAM8G,IAAI,GAAGL,mBAAmB,CAACE,QAAD,EAAWP,SAAX,CAAhC;EACA,OAAOK,mBAAmB,CAACK,IAAD,EAAOxrF,KAAP,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyrF,mBAAT,CAA6Bd,MAA7B,EAAqCG,SAArC,EAAgD9qF,KAAhD,EAAuD;EACnD,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAMe,UAAU,GAAG,CAACnpE,IAAI,CAACmiE,2EAAD,CAAL,EAAsCniE,IAAI,CAACmiE,+EAAD,CAA1C,CAAnB;EACA,MAAMmH,MAAM,GAAGV,mBAAmB,CAACO,UAAD,EAAaZ,SAAb,CAAlC;EACA,OAAOK,mBAAmB,CAACU,MAAD,EAAS7rF,KAAT,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8rF,iBAAT,CAA2BnB,MAA3B,EAAmC3qF,KAAnC,EAA0C;EACtC,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAMoB,QAAQ,GAAGxpE,IAAI,CAACmiE,mEAAD,CAArB;EACA,OAAOyG,mBAAmB,CAACY,QAAD,EAAW/rF,KAAX,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASisF,uBAAT,CAAiCtB,MAAjC,EAAyC;EACrC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,6EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyH,qBAAT,CAA+BxB,MAA/B,EAAuC;EACnC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,2EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2H,mBAAT,CAA6B1B,MAA7B,EAAqC3qF,KAArC,EAA4C;EACxC,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOQ,mBAAmB,CAAC5oE,IAAI,CAACmiE,yEAAD,CAAL,EAAoC1kF,KAApC,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASusF,mBAAT,CAA6B5B,MAA7B,EAAqC3qF,KAArC,EAA4C;EACxC,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOQ,mBAAmB,CAAC5oE,IAAI,CAACmiE,yEAAD,CAAL,EAAoC1kF,KAApC,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASysF,uBAAT,CAAiC9B,MAAjC,EAAyC3qF,KAAzC,EAAgD;EAC5C,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAM+B,kBAAkB,GAAGnqE,IAAI,CAACmiE,6EAAD,CAA/B;EACA,OAAOyG,mBAAmB,CAACuB,kBAAD,EAAqB1sF,KAArB,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4sF,qBAAT,CAA+BjC,MAA/B,EAAuCpoF,MAAvC,EAA+C;EAC3C,MAAMggB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,MAAMkC,GAAG,GAAGtqE,IAAI,CAACmiE,4EAAD,CAAJ,CAAqCniF,MAArC,CAAZ;;EACA,IAAI,OAAOsqF,GAAP,KAAe,WAAnB,EAAgC;IAC5B,IAAItqF,MAAM,KAAKioF,YAAY,CAACuC,eAA5B,EAA6C;MACzC,OAAOxqE,IAAI,CAACmiE,4EAAD,CAAJ,CAAqC8F,YAAY,CAACwC,OAAlD,CAAP;IACH,CAFD,MAGK,IAAIzqF,MAAM,KAAKioF,YAAY,CAACyC,aAA5B,EAA2C;MAC5C,OAAO1qE,IAAI,CAACmiE,4EAAD,CAAJ,CAAqC8F,YAAY,CAAC0C,KAAlD,CAAP;IACH;EACJ;;EACD,OAAOL,GAAP;AACH;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,SAASM,qBAAT,CAA+BxC,MAA/B,EAAuC/gF,IAAvC,EAA6C;EACzC,MAAM2Y,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,4EAAD,CAAJ,CAAqC96E,IAArC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyjF,uBAAT,CAAiC1C,MAAjC,EAAyC;EACrC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,6EAAD,CAAJ,IAAyC,IAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6I,qBAAT,CAA+B5C,MAA/B,EAAuC;EACnC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,2EAAD,CAAJ,IAAuC,IAA9C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+I,qBAAT,CAA+B9C,MAA/B,EAAuC;EACnC,OAAOhG,wEAAsB,CAACgG,MAAD,CAA7B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+C,mBAAT,CAA6B/C,MAA7B,EAAqC;EACjC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,yEAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMkJ,mBAAmB,GAAGhJ,kEAA5B;;AACA,SAASiJ,aAAT,CAAuBtrE,IAAvB,EAA6B;EACzB,IAAI,CAACA,IAAI,CAACmiE,wEAAD,CAAT,EAAuC;IACnC,MAAM,IAAI94E,KAAJ,CAAW,6CAA4C2W,IAAI,CAACmiE,uEAAD,CAClD,gGADT,CAAN;EAEH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqJ,4BAAT,CAAsCpD,MAAtC,EAA8C;EAC1C,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACAkD,aAAa,CAACtrE,IAAD,CAAb;EACA,MAAMyrE,KAAK,GAAGzrE,IAAI,CAACmiE,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,KAAwF,EAAtG;EACA,OAAOsJ,KAAK,CAACj4F,GAAN,CAAWk4F,IAAD,IAAU;IACvB,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC1B,OAAOC,WAAW,CAACD,IAAD,CAAlB;IACH;;IACD,OAAO,CAACC,WAAW,CAACD,IAAI,CAAC,CAAD,CAAL,CAAZ,EAAuBC,WAAW,CAACD,IAAI,CAAC,CAAD,CAAL,CAAlC,CAAP;EACH,CALM,CAAP;AAMH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,wBAAT,CAAkCxD,MAAlC,EAA0CG,SAA1C,EAAqD9qF,KAArD,EAA4D;EACxD,MAAMuiB,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACAkD,aAAa,CAACtrE,IAAD,CAAb;EACA,MAAM6rE,cAAc,GAAG,CACnB7rE,IAAI,CAACmiE,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,CADmB,EAEnBniE,IAAI,CAACmiE,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,CAFmB,CAAvB;EAIA,MAAM2J,UAAU,GAAGlD,mBAAmB,CAACiD,cAAD,EAAiBtD,SAAjB,CAAnB,IAAkD,EAArE;EACA,OAAOK,mBAAmB,CAACkD,UAAD,EAAaruF,KAAb,CAAnB,IAA0C,EAAjD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsuF,kBAAT,CAA4B3D,MAA5B,EAAoC;EAChC,MAAMpoE,IAAI,GAAGkiE,iEAAe,CAACkG,MAAD,CAA5B;EACA,OAAOpoE,IAAI,CAACmiE,6EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyG,mBAAT,CAA6B5oE,IAA7B,EAAmC3mB,KAAnC,EAA0C;EACtC,KAAK,IAAI3M,CAAC,GAAG2M,KAAb,EAAoB3M,CAAC,GAAG,CAAC,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;IAC7B,IAAI,OAAOszB,IAAI,CAACtzB,CAAD,CAAX,KAAmB,WAAvB,EAAoC;MAChC,OAAOszB,IAAI,CAACtzB,CAAD,CAAX;IACH;EACJ;;EACD,MAAM,IAAI2c,KAAJ,CAAU,wCAAV,CAAN;AACH;AACD;AACA;AACA;;;AACA,SAASsiF,WAAT,CAAqBx4B,IAArB,EAA2B;EACvB,MAAM,CAAC84B,CAAD,EAAI7uB,CAAJ,IAASjK,IAAI,CAAC13D,KAAL,CAAW,GAAX,CAAf;EACA,OAAO;IAAEywF,KAAK,EAAE,CAACD,CAAV;IAAaE,OAAO,EAAE,CAAC/uB;EAAvB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgvB,iBAAT,CAA2BC,IAA3B,EAAiCC,MAAjC,EAAyClE,MAAM,GAAG,IAAlD,EAAwD;EACpD,MAAMmE,QAAQ,GAAGpB,mBAAmB,CAAC/C,MAAD,CAAnB,CAA4BiE,IAA5B,KAAqC1E,aAAa,CAAC0E,IAAD,CAAlD,IAA4D,EAA7E;EACA,MAAMG,YAAY,GAAGD,QAAQ,CAAC;EAAE;EAAH,CAA7B;;EACA,IAAID,MAAM,KAAK,QAAX,IAAuB,OAAOE,YAAP,KAAwB,QAAnD,EAA6D;IACzD,OAAOA,YAAP;EACH;;EACD,OAAOD,QAAQ,CAAC;EAAE;EAAH,CAAR,IAA2CF,IAAlD;AACH,EACD;;;AACA,MAAMI,6BAA6B,GAAG,CAAtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,yBAAT,CAAmCL,IAAnC,EAAyC;EACrC,IAAIM,MAAJ;EACA,MAAMJ,QAAQ,GAAG5E,aAAa,CAAC0E,IAAD,CAA9B;;EACA,IAAIE,QAAJ,EAAc;IACVI,MAAM,GAAGJ,QAAQ,CAAC;IAAE;IAAH,CAAjB;EACH;;EACD,OAAO,OAAOI,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCF,6BAA7C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMG,kBAAkB,GAAG,uGAA3B,EACA;;AACA,MAAMC,aAAa,GAAG,EAAtB;AACA,MAAMC,kBAAkB,GAAG,mNAA3B;AACA,IAAIC,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAACA,SAAS,CAAC,OAAD,CAAT,GAAqB,CAAtB,CAAT,GAAoC,OAApC;EACAA,SAAS,CAACA,SAAS,CAAC,UAAD,CAAT,GAAwB,CAAzB,CAAT,GAAuC,UAAvC;EACAA,SAAS,CAACA,SAAS,CAAC,MAAD,CAAT,GAAoB,CAArB,CAAT,GAAmC,MAAnC;EACAA,SAAS,CAACA,SAAS,CAAC,UAAD,CAAT,GAAwB,CAAzB,CAAT,GAAuC,UAAvC;AACH,CALD,EAKGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CALZ;;AAMA,IAAIC,QAAJ;;AACA,CAAC,UAAUA,QAAV,EAAoB;EACjBA,QAAQ,CAACA,QAAQ,CAAC,UAAD,CAAR,GAAuB,CAAxB,CAAR,GAAqC,UAArC;EACAA,QAAQ,CAACA,QAAQ,CAAC,OAAD,CAAR,GAAoB,CAArB,CAAR,GAAkC,OAAlC;EACAA,QAAQ,CAACA,QAAQ,CAAC,MAAD,CAAR,GAAmB,CAApB,CAAR,GAAiC,MAAjC;EACAA,QAAQ,CAACA,QAAQ,CAAC,OAAD,CAAR,GAAoB,CAArB,CAAR,GAAkC,OAAlC;EACAA,QAAQ,CAACA,QAAQ,CAAC,SAAD,CAAR,GAAsB,CAAvB,CAAR,GAAoC,SAApC;EACAA,QAAQ,CAACA,QAAQ,CAAC,SAAD,CAAR,GAAsB,CAAvB,CAAR,GAAoC,SAApC;EACAA,QAAQ,CAACA,QAAQ,CAAC,mBAAD,CAAR,GAAgC,CAAjC,CAAR,GAA8C,mBAA9C;EACAA,QAAQ,CAACA,QAAQ,CAAC,KAAD,CAAR,GAAkB,CAAnB,CAAR,GAAgC,KAAhC;AACH,CATD,EASGA,QAAQ,KAAKA,QAAQ,GAAG,EAAhB,CATX;;AAUA,IAAIC,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAACA,eAAe,CAAC,YAAD,CAAf,GAAgC,CAAjC,CAAf,GAAqD,YAArD;EACAA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;EACAA,eAAe,CAACA,eAAe,CAAC,QAAD,CAAf,GAA4B,CAA7B,CAAf,GAAiD,QAAjD;EACAA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;AACH,CALD,EAKGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CALlB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,UAAT,CAAoB3/F,KAApB,EAA2B++F,MAA3B,EAAmClE,MAAnC,EAA2C+E,QAA3C,EAAqD;EACjD,IAAIC,IAAI,GAAGC,MAAM,CAAC9/F,KAAD,CAAjB;EACA,MAAM+/F,WAAW,GAAGC,cAAc,CAACnF,MAAD,EAASkE,MAAT,CAAlC;EACAA,MAAM,GAAGgB,WAAW,IAAIhB,MAAxB;EACA,IAAI1wF,KAAK,GAAG,EAAZ;EACA,IAAIiK,KAAJ;;EACA,OAAOymF,MAAP,EAAe;IACXzmF,KAAK,GAAGinF,kBAAkB,CAACvmE,IAAnB,CAAwB+lE,MAAxB,CAAR;;IACA,IAAIzmF,KAAJ,EAAW;MACPjK,KAAK,GAAGA,KAAK,CAAC9N,MAAN,CAAa+X,KAAK,CAAC9J,KAAN,CAAY,CAAZ,CAAb,CAAR;MACA,MAAMyxF,IAAI,GAAG5xF,KAAK,CAAC0vB,GAAN,EAAb;;MACA,IAAI,CAACkiE,IAAL,EAAW;QACP;MACH;;MACDlB,MAAM,GAAGkB,IAAT;IACH,CAPD,MAQK;MACD5xF,KAAK,CAAChM,IAAN,CAAW08F,MAAX;MACA;IACH;EACJ;;EACD,IAAImB,kBAAkB,GAAGL,IAAI,CAACM,iBAAL,EAAzB;;EACA,IAAIP,QAAJ,EAAc;IACVM,kBAAkB,GAAGE,gBAAgB,CAACR,QAAD,EAAWM,kBAAX,CAArC;IACAL,IAAI,GAAGQ,sBAAsB,CAACR,IAAD,EAAOD,QAAP,EAAiB,IAAjB,CAA7B;EACH;;EACD,IAAIx8E,IAAI,GAAG,EAAX;EACA/U,KAAK,CAAC1N,OAAN,CAAcX,KAAK,IAAI;IACnB,MAAMsgG,aAAa,GAAGC,gBAAgB,CAACvgG,KAAD,CAAtC;IACAojB,IAAI,IAAIk9E,aAAa,GAAGA,aAAa,CAACT,IAAD,EAAOhF,MAAP,EAAeqF,kBAAf,CAAhB,GACjBlgG,KAAK,KAAK,MAAV,GAAmB,IAAnB,GACIA,KAAK,CAAC4O,OAAN,CAAc,UAAd,EAA0B,EAA1B,EAA8BA,OAA9B,CAAsC,KAAtC,EAA6C,IAA7C,CAFR;EAGH,CALD;EAMA,OAAOwU,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo9E,UAAT,CAAoBC,IAApB,EAA0BC,KAA1B,EAAiCb,IAAjC,EAAuC;EACnC;EACA;EACA;EACA;EACA,MAAMc,OAAO,GAAG,IAAI90E,IAAJ,CAAS,CAAT,CAAhB,CALmC,CAMnC;EACA;EACA;EACA;EACA;;EACA80E,OAAO,CAACC,WAAR,CAAoBH,IAApB,EAA0BC,KAA1B,EAAiCb,IAAjC,EAXmC,CAYnC;EACA;EACA;;EACAc,OAAO,CAACE,QAAR,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB;EACA,OAAOF,OAAP;AACH;;AACD,SAASX,cAAT,CAAwBnF,MAAxB,EAAgCkE,MAAhC,EAAwC;EACpC,MAAM+B,QAAQ,GAAGlG,WAAW,CAACC,MAAD,CAA5B;EACAyE,aAAa,CAACwB,QAAD,CAAb,GAA0BxB,aAAa,CAACwB,QAAD,CAAb,IAA2B,EAArD;;EACA,IAAIxB,aAAa,CAACwB,QAAD,CAAb,CAAwB/B,MAAxB,CAAJ,EAAqC;IACjC,OAAOO,aAAa,CAACwB,QAAD,CAAb,CAAwB/B,MAAxB,CAAP;EACH;;EACD,IAAIgC,WAAW,GAAG,EAAlB;;EACA,QAAQhC,MAAR;IACI,KAAK,WAAL;MACIgC,WAAW,GAAGxE,mBAAmB,CAAC1B,MAAD,EAASJ,WAAW,CAACuG,KAArB,CAAjC;MACA;;IACJ,KAAK,YAAL;MACID,WAAW,GAAGxE,mBAAmB,CAAC1B,MAAD,EAASJ,WAAW,CAACwG,MAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIF,WAAW,GAAGxE,mBAAmB,CAAC1B,MAAD,EAASJ,WAAW,CAACyG,IAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIH,WAAW,GAAGxE,mBAAmB,CAAC1B,MAAD,EAASJ,WAAW,CAAC0G,IAArB,CAAjC;MACA;;IACJ,KAAK,WAAL;MACIJ,WAAW,GAAGtE,mBAAmB,CAAC5B,MAAD,EAASJ,WAAW,CAACuG,KAArB,CAAjC;MACA;;IACJ,KAAK,YAAL;MACID,WAAW,GAAGtE,mBAAmB,CAAC5B,MAAD,EAASJ,WAAW,CAACwG,MAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIF,WAAW,GAAGtE,mBAAmB,CAAC5B,MAAD,EAASJ,WAAW,CAACyG,IAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIH,WAAW,GAAGtE,mBAAmB,CAAC5B,MAAD,EAASJ,WAAW,CAAC0G,IAArB,CAAjC;MACA;;IACJ,KAAK,OAAL;MACI,MAAMC,SAAS,GAAGpB,cAAc,CAACnF,MAAD,EAAS,WAAT,CAAhC;MACA,MAAMwG,SAAS,GAAGrB,cAAc,CAACnF,MAAD,EAAS,WAAT,CAAhC;MACAkG,WAAW,GAAGO,cAAc,CAAC3E,uBAAuB,CAAC9B,MAAD,EAASJ,WAAW,CAACuG,KAArB,CAAxB,EAAqD,CAACI,SAAD,EAAYC,SAAZ,CAArD,CAA5B;MACA;;IACJ,KAAK,QAAL;MACI,MAAME,UAAU,GAAGvB,cAAc,CAACnF,MAAD,EAAS,YAAT,CAAjC;MACA,MAAM2G,UAAU,GAAGxB,cAAc,CAACnF,MAAD,EAAS,YAAT,CAAjC;MACAkG,WAAW,GAAGO,cAAc,CAAC3E,uBAAuB,CAAC9B,MAAD,EAASJ,WAAW,CAACwG,MAArB,CAAxB,EAAsD,CAACM,UAAD,EAAaC,UAAb,CAAtD,CAA5B;MACA;;IACJ,KAAK,MAAL;MACI,MAAMC,QAAQ,GAAGzB,cAAc,CAACnF,MAAD,EAAS,UAAT,CAA/B;MACA,MAAM6G,QAAQ,GAAG1B,cAAc,CAACnF,MAAD,EAAS,UAAT,CAA/B;MACAkG,WAAW,GACPO,cAAc,CAAC3E,uBAAuB,CAAC9B,MAAD,EAASJ,WAAW,CAACyG,IAArB,CAAxB,EAAoD,CAACO,QAAD,EAAWC,QAAX,CAApD,CADlB;MAEA;;IACJ,KAAK,MAAL;MACI,MAAMC,QAAQ,GAAG3B,cAAc,CAACnF,MAAD,EAAS,UAAT,CAA/B;MACA,MAAM+G,QAAQ,GAAG5B,cAAc,CAACnF,MAAD,EAAS,UAAT,CAA/B;MACAkG,WAAW,GACPO,cAAc,CAAC3E,uBAAuB,CAAC9B,MAAD,EAASJ,WAAW,CAAC0G,IAArB,CAAxB,EAAoD,CAACQ,QAAD,EAAWC,QAAX,CAApD,CADlB;MAEA;EA9CR;;EAgDA,IAAIb,WAAJ,EAAiB;IACbzB,aAAa,CAACwB,QAAD,CAAb,CAAwB/B,MAAxB,IAAkCgC,WAAlC;EACH;;EACD,OAAOA,WAAP;AACH;;AACD,SAASO,cAAT,CAAwB3yF,GAAxB,EAA6BkzF,UAA7B,EAAyC;EACrC,IAAIA,UAAJ,EAAgB;IACZlzF,GAAG,GAAGA,GAAG,CAACC,OAAJ,CAAY,aAAZ,EAA2B,UAAU0J,KAAV,EAAiB3Y,GAAjB,EAAsB;MACnD,OAAQkiG,UAAU,IAAI,IAAd,IAAsBliG,GAAG,IAAIkiG,UAA9B,GAA4CA,UAAU,CAACliG,GAAD,CAAtD,GAA8D2Y,KAArE;IACH,CAFK,CAAN;EAGH;;EACD,OAAO3J,GAAP;AACH;;AACD,SAASmzF,SAAT,CAAmBC,GAAnB,EAAwB3C,MAAxB,EAAgC4C,SAAS,GAAG,GAA5C,EAAiD9yF,IAAjD,EAAuD+yF,OAAvD,EAAgE;EAC5D,IAAIC,GAAG,GAAG,EAAV;;EACA,IAAIH,GAAG,GAAG,CAAN,IAAYE,OAAO,IAAIF,GAAG,IAAI,CAAlC,EAAsC;IAClC,IAAIE,OAAJ,EAAa;MACTF,GAAG,GAAG,CAACA,GAAD,GAAO,CAAb;IACH,CAFD,MAGK;MACDA,GAAG,GAAG,CAACA,GAAP;MACAG,GAAG,GAAGF,SAAN;IACH;EACJ;;EACD,IAAIG,MAAM,GAAGlrE,MAAM,CAAC8qE,GAAD,CAAnB;;EACA,OAAOI,MAAM,CAAC/iG,MAAP,GAAgBggG,MAAvB,EAA+B;IAC3B+C,MAAM,GAAG,MAAMA,MAAf;EACH;;EACD,IAAIjzF,IAAJ,EAAU;IACNizF,MAAM,GAAGA,MAAM,CAAC3zF,KAAP,CAAa2zF,MAAM,CAAC/iG,MAAP,GAAgBggG,MAA7B,CAAT;EACH;;EACD,OAAO8C,GAAG,GAAGC,MAAb;AACH;;AACD,SAASC,uBAAT,CAAiCC,YAAjC,EAA+CjD,MAA/C,EAAuD;EACnD,MAAMkD,KAAK,GAAGR,SAAS,CAACO,YAAD,EAAe,CAAf,CAAvB;EACA,OAAOC,KAAK,CAACzsE,SAAN,CAAgB,CAAhB,EAAmBupE,MAAnB,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASmD,UAAT,CAAoB51F,IAApB,EAA0BP,IAA1B,EAAgCmG,MAAM,GAAG,CAAzC,EAA4CrD,IAAI,GAAG,KAAnD,EAA0D+yF,OAAO,GAAG,KAApE,EAA2E;EACvE,OAAO,UAAUpC,IAAV,EAAgBhF,MAAhB,EAAwB;IAC3B,IAAIoF,IAAI,GAAGuC,WAAW,CAAC71F,IAAD,EAAOkzF,IAAP,CAAtB;;IACA,IAAIttF,MAAM,GAAG,CAAT,IAAc0tF,IAAI,GAAG,CAAC1tF,MAA1B,EAAkC;MAC9B0tF,IAAI,IAAI1tF,MAAR;IACH;;IACD,IAAI5F,IAAI,KAAK8yF,QAAQ,CAACgD,KAAtB,EAA6B;MACzB,IAAIxC,IAAI,KAAK,CAAT,IAAc1tF,MAAM,KAAK,CAAC,EAA9B,EAAkC;QAC9B0tF,IAAI,GAAG,EAAP;MACH;IACJ,CAJD,MAKK,IAAItzF,IAAI,KAAK8yF,QAAQ,CAACiD,iBAAtB,EAAyC;MAC1C,OAAON,uBAAuB,CAACnC,IAAD,EAAO7zF,IAAP,CAA9B;IACH;;IACD,MAAMu2F,WAAW,GAAG7F,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAAzC;IACA,OAAOd,SAAS,CAAC7B,IAAD,EAAO7zF,IAAP,EAAau2F,WAAb,EAA0BzzF,IAA1B,EAAgC+yF,OAAhC,CAAhB;EACH,CAfD;AAgBH;;AACD,SAASO,WAAT,CAAqBvC,IAArB,EAA2BJ,IAA3B,EAAiC;EAC7B,QAAQI,IAAR;IACI,KAAKR,QAAQ,CAACoD,QAAd;MACI,OAAOhD,IAAI,CAACiD,WAAL,EAAP;;IACJ,KAAKrD,QAAQ,CAACsD,KAAd;MACI,OAAOlD,IAAI,CAACmD,QAAL,EAAP;;IACJ,KAAKvD,QAAQ,CAAC5zE,IAAd;MACI,OAAOg0E,IAAI,CAACoD,OAAL,EAAP;;IACJ,KAAKxD,QAAQ,CAACgD,KAAd;MACI,OAAO5C,IAAI,CAACqD,QAAL,EAAP;;IACJ,KAAKzD,QAAQ,CAAC0D,OAAd;MACI,OAAOtD,IAAI,CAACuD,UAAL,EAAP;;IACJ,KAAK3D,QAAQ,CAAC4D,OAAd;MACI,OAAOxD,IAAI,CAACyD,UAAL,EAAP;;IACJ,KAAK7D,QAAQ,CAACiD,iBAAd;MACI,OAAO7C,IAAI,CAAC0D,eAAL,EAAP;;IACJ,KAAK9D,QAAQ,CAAC+D,GAAd;MACI,OAAO3D,IAAI,CAAC4D,MAAL,EAAP;;IACJ;MACI,MAAM,IAAI3nF,KAAJ,CAAW,2BAA0BmkF,IAAK,IAA1C,CAAN;EAlBR;AAoBH;AACD;AACA;AACA;;;AACA,SAASyD,aAAT,CAAuB/2F,IAAvB,EAA6BuD,KAA7B,EAAoCyzF,IAAI,GAAGpJ,SAAS,CAACqJ,MAArD,EAA6DC,QAAQ,GAAG,KAAxE,EAA+E;EAC3E,OAAO,UAAUhE,IAAV,EAAgBhF,MAAhB,EAAwB;IAC3B,OAAOiJ,kBAAkB,CAACjE,IAAD,EAAOhF,MAAP,EAAeluF,IAAf,EAAqBuD,KAArB,EAA4ByzF,IAA5B,EAAkCE,QAAlC,CAAzB;EACH,CAFD;AAGH;AACD;AACA;AACA;;;AACA,SAASC,kBAAT,CAA4BjE,IAA5B,EAAkChF,MAAlC,EAA0CluF,IAA1C,EAAgDuD,KAAhD,EAAuDyzF,IAAvD,EAA6DE,QAA7D,EAAuE;EACnE,QAAQl3F,IAAR;IACI,KAAK+yF,eAAe,CAACqE,MAArB;MACI,OAAOpI,mBAAmB,CAACd,MAAD,EAAS8I,IAAT,EAAezzF,KAAf,CAAnB,CAAyC2vF,IAAI,CAACmD,QAAL,EAAzC,CAAP;;IACJ,KAAKtD,eAAe,CAACsE,IAArB;MACI,OAAO1I,iBAAiB,CAACT,MAAD,EAAS8I,IAAT,EAAezzF,KAAf,CAAjB,CAAuC2vF,IAAI,CAAC4D,MAAL,EAAvC,CAAP;;IACJ,KAAK/D,eAAe,CAACuE,UAArB;MACI,MAAMC,YAAY,GAAGrE,IAAI,CAACqD,QAAL,EAArB;MACA,MAAMiB,cAAc,GAAGtE,IAAI,CAACuD,UAAL,EAAvB;;MACA,IAAIS,QAAJ,EAAc;QACV,MAAM3F,KAAK,GAAGD,4BAA4B,CAACpD,MAAD,CAA1C;QACA,MAAM0D,UAAU,GAAGF,wBAAwB,CAACxD,MAAD,EAAS8I,IAAT,EAAezzF,KAAf,CAA3C;QACA,MAAMpE,KAAK,GAAGoyF,KAAK,CAACjwC,SAAN,CAAgBkwC,IAAI,IAAI;UAClC,IAAI98F,KAAK,CAACC,OAAN,CAAc68F,IAAd,CAAJ,EAAyB;YACrB;YACA,MAAM,CAACx8F,IAAD,EAAOqoC,EAAP,IAAam0D,IAAnB;YACA,MAAMiG,SAAS,GAAGF,YAAY,IAAIviG,IAAI,CAACg9F,KAArB,IAA8BwF,cAAc,IAAIxiG,IAAI,CAACi9F,OAAvE;YACA,MAAMyF,QAAQ,GAAIH,YAAY,GAAGl6D,EAAE,CAAC20D,KAAlB,IACbuF,YAAY,KAAKl6D,EAAE,CAAC20D,KAApB,IAA6BwF,cAAc,GAAGn6D,EAAE,CAAC40D,OADtD,CAJqB,CAMrB;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;;YACA,IAAIj9F,IAAI,CAACg9F,KAAL,GAAa30D,EAAE,CAAC20D,KAApB,EAA2B;cACvB,IAAIyF,SAAS,IAAIC,QAAjB,EAA2B;gBACvB,OAAO,IAAP;cACH;YACJ,CAJD,MAKK,IAAID,SAAS,IAAIC,QAAjB,EAA2B;cAC5B,OAAO,IAAP;YACH;UACJ,CAxBD,MAyBK;YAAE;YACH,IAAIlG,IAAI,CAACQ,KAAL,KAAeuF,YAAf,IAA+B/F,IAAI,CAACS,OAAL,KAAiBuF,cAApD,EAAoE;cAChE,OAAO,IAAP;YACH;UACJ;;UACD,OAAO,KAAP;QACH,CAhCa,CAAd;;QAiCA,IAAIr4F,KAAK,KAAK,CAAC,CAAf,EAAkB;UACd,OAAOyyF,UAAU,CAACzyF,KAAD,CAAjB;QACH;MACJ,CA1CL,CA2CI;;;MACA,OAAOivF,mBAAmB,CAACF,MAAD,EAAS8I,IAAT,EAAezzF,KAAf,CAAnB,CAAyCg0F,YAAY,GAAG,EAAf,GAAoB,CAApB,GAAwB,CAAjE,CAAP;;IACJ,KAAKxE,eAAe,CAACxD,IAArB;MACI,OAAOF,iBAAiB,CAACnB,MAAD,EAAS3qF,KAAT,CAAjB,CAAiC2vF,IAAI,CAACiD,WAAL,MAAsB,CAAtB,GAA0B,CAA1B,GAA8B,CAA/D,CAAP;;IACJ;MACI;MACA;MACA;MACA;MACA,MAAMwB,UAAU,GAAG33F,IAAnB;MACA,MAAM,IAAImP,KAAJ,CAAW,+BAA8BwoF,UAAW,EAApD,CAAN;EA1DR;AA4DH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwBr0F,KAAxB,EAA+B;EAC3B,OAAO,UAAU2vF,IAAV,EAAgBhF,MAAhB,EAAwBtoF,MAAxB,EAAgC;IACnC,MAAMiyF,IAAI,GAAG,CAAC,CAAD,GAAKjyF,MAAlB;IACA,MAAMyvF,SAAS,GAAGlF,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAAvC;IACA,MAAMjE,KAAK,GAAG6F,IAAI,GAAG,CAAP,GAAW72F,IAAI,CAACuvB,KAAL,CAAWsnE,IAAI,GAAG,EAAlB,CAAX,GAAmC72F,IAAI,CAAC0F,IAAL,CAAUmxF,IAAI,GAAG,EAAjB,CAAjD;;IACA,QAAQt0F,KAAR;MACI,KAAKsvF,SAAS,CAACwB,KAAf;QACI,OAAO,CAAEwD,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAArB,IAA2B1C,SAAS,CAACnD,KAAD,EAAQ,CAAR,EAAWqD,SAAX,CAApC,GACHF,SAAS,CAACn0F,IAAI,CAACytE,GAAL,CAASopB,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyBxC,SAAzB,CADb;;MAEJ,KAAKxC,SAAS,CAACiF,QAAf;QACI,OAAO,SAAUD,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAA7B,IAAmC1C,SAAS,CAACnD,KAAD,EAAQ,CAAR,EAAWqD,SAAX,CAAnD;;MACJ,KAAKxC,SAAS,CAAC0B,IAAf;QACI,OAAO,SAAUsD,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAA7B,IAAmC1C,SAAS,CAACnD,KAAD,EAAQ,CAAR,EAAWqD,SAAX,CAA5C,GAAoE,GAApE,GACHF,SAAS,CAACn0F,IAAI,CAACytE,GAAL,CAASopB,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyBxC,SAAzB,CADb;;MAEJ,KAAKxC,SAAS,CAACkF,QAAf;QACI,IAAInyF,MAAM,KAAK,CAAf,EAAkB;UACd,OAAO,GAAP;QACH,CAFD,MAGK;UACD,OAAO,CAAEiyF,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAArB,IAA2B1C,SAAS,CAACnD,KAAD,EAAQ,CAAR,EAAWqD,SAAX,CAApC,GAA4D,GAA5D,GACHF,SAAS,CAACn0F,IAAI,CAACytE,GAAL,CAASopB,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyBxC,SAAzB,CADb;QAEH;;MACL;QACI,MAAM,IAAIlmF,KAAJ,CAAW,uBAAsB5L,KAAM,GAAvC,CAAN;IAlBR;EAoBH,CAxBD;AAyBH;;AACD,MAAMy0F,OAAO,GAAG,CAAhB;AACA,MAAMC,QAAQ,GAAG,CAAjB;;AACA,SAASC,sBAAT,CAAgCpE,IAAhC,EAAsC;EAClC,MAAMqE,cAAc,GAAGtE,UAAU,CAACC,IAAD,EAAOkE,OAAP,EAAgB,CAAhB,CAAV,CAA6BlB,MAA7B,EAAvB;EACA,OAAOjD,UAAU,CAACC,IAAD,EAAO,CAAP,EAAU,KAAMqE,cAAc,IAAIF,QAAnB,GAA+BA,QAA/B,GAA0CA,QAAQ,GAAG,CAA1D,IAA+DE,cAAzE,CAAjB;AACH;;AACD,SAASC,mBAAT,CAA6BC,QAA7B,EAAuC;EACnC,OAAOxE,UAAU,CAACwE,QAAQ,CAAClC,WAAT,EAAD,EAAyBkC,QAAQ,CAAChC,QAAT,EAAzB,EAA8CgC,QAAQ,CAAC/B,OAAT,MAAsB2B,QAAQ,GAAGI,QAAQ,CAACvB,MAAT,EAAjC,CAA9C,CAAjB;AACH;;AACD,SAASwB,UAAT,CAAoB74F,IAApB,EAA0B84F,UAAU,GAAG,KAAvC,EAA8C;EAC1C,OAAO,UAAUrF,IAAV,EAAgBhF,MAAhB,EAAwB;IAC3B,IAAI9lF,MAAJ;;IACA,IAAImwF,UAAJ,EAAgB;MACZ,MAAMC,yBAAyB,GAAG,IAAIt5E,IAAJ,CAASg0E,IAAI,CAACiD,WAAL,EAAT,EAA6BjD,IAAI,CAACmD,QAAL,EAA7B,EAA8C,CAA9C,EAAiDS,MAAjD,KAA4D,CAA9F;MACA,MAAM2B,KAAK,GAAGvF,IAAI,CAACoD,OAAL,EAAd;MACAluF,MAAM,GAAG,IAAIpH,IAAI,CAACuvB,KAAL,CAAW,CAACkoE,KAAK,GAAGD,yBAAT,IAAsC,CAAjD,CAAb;IACH,CAJD,MAKK;MACD,MAAME,SAAS,GAAGN,mBAAmB,CAAClF,IAAD,CAArC,CADC,CAED;MACA;;MACA,MAAMyF,UAAU,GAAGT,sBAAsB,CAACQ,SAAS,CAACvC,WAAV,EAAD,CAAzC;MACA,MAAMyC,IAAI,GAAGF,SAAS,CAACv5E,OAAV,KAAsBw5E,UAAU,CAACx5E,OAAX,EAAnC;MACA/W,MAAM,GAAG,IAAIpH,IAAI,CAACie,KAAL,CAAW25E,IAAI,GAAG,OAAlB,CAAb,CANC,CAMwC;IAC5C;;IACD,OAAOzD,SAAS,CAAC/sF,MAAD,EAAS3I,IAAT,EAAe0wF,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAApC,CAAhB;EACH,CAhBD;AAiBH;AACD;AACA;AACA;;;AACA,SAAS4C,uBAAT,CAAiCp5F,IAAjC,EAAuC8C,IAAI,GAAG,KAA9C,EAAqD;EACjD,OAAO,UAAU2wF,IAAV,EAAgBhF,MAAhB,EAAwB;IAC3B,MAAMwK,SAAS,GAAGN,mBAAmB,CAAClF,IAAD,CAArC;IACA,MAAM4F,iBAAiB,GAAGJ,SAAS,CAACvC,WAAV,EAA1B;IACA,OAAOhB,SAAS,CAAC2D,iBAAD,EAAoBr5F,IAApB,EAA0B0wF,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAA/C,EAAiF1zF,IAAjF,CAAhB;EACH,CAJD;AAKH;;AACD,MAAMw2F,YAAY,GAAG,EAArB,EACA;AACA;AACA;AACA;;AACA,SAASnF,gBAAT,CAA0BxB,MAA1B,EAAkC;EAC9B,IAAI2G,YAAY,CAAC3G,MAAD,CAAhB,EAA0B;IACtB,OAAO2G,YAAY,CAAC3G,MAAD,CAAnB;EACH;;EACD,IAAI4G,SAAJ;;EACA,QAAQ5G,MAAR;IACI;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACI4G,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACxD,IAAjB,EAAuB1B,gBAAgB,CAACoL,WAAxC,CAAzB;MACA;;IACJ,KAAK,MAAL;MACID,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACxD,IAAjB,EAAuB1B,gBAAgB,CAACqL,IAAxC,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIF,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACxD,IAAjB,EAAuB1B,gBAAgB,CAACsL,MAAxC,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;MACIH,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACoD,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,IAAL;MACI8C,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACoD,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,IAA1B,EAAgC,IAAhC,CAAtB;MACA;IACJ;;IACA,KAAK,KAAL;MACI8C,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACoD,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,MAAL;MACI8C,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACoD,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI8C,SAAS,GAAGH,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;IACA;;IACA,KAAK,IAAL;MACIG,SAAS,GAAGH,uBAAuB,CAAC,CAAD,EAAI,IAAJ,CAAnC;MACA;IACJ;IACA;;IACA,KAAK,KAAL;MACIG,SAAS,GAAGH,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;;IACA,KAAK,MAAL;MACIG,SAAS,GAAGH,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,GAAL;MACIG,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACsD,KAAV,EAAiB,CAAjB,EAAoB,CAApB,CAAtB;MACA;;IACJ,KAAK,IAAL;IACA,KAAK,IAAL;MACI4C,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACsD,KAAV,EAAiB,CAAjB,EAAoB,CAApB,CAAtB;MACA;IACJ;;IACA,KAAK,KAAL;MACI4C,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACoL,WAA1C,CAAzB;MACA;;IACJ,KAAK,MAAL;MACID,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACqL,IAA1C,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIF,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACsL,MAA1C,CAAzB;MACA;IACJ;;IACA,KAAK,KAAL;MACIH,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACoL,WAA1C,EAAuDrL,SAAS,CAACwL,UAAjE,CADjB;MAEA;;IACJ,KAAK,MAAL;MACIJ,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACqL,IAA1C,EAAgDtL,SAAS,CAACwL,UAA1D,CADjB;MAEA;;IACJ,KAAK,OAAL;MACIJ,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACqE,MAAjB,EAAyBvJ,gBAAgB,CAACsL,MAA1C,EAAkDvL,SAAS,CAACwL,UAA5D,CADjB;MAEA;IACJ;;IACA,KAAK,GAAL;MACIJ,SAAS,GAAGV,UAAU,CAAC,CAAD,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIU,SAAS,GAAGV,UAAU,CAAC,CAAD,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIU,SAAS,GAAGV,UAAU,CAAC,CAAD,EAAI,IAAJ,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIU,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC5zE,IAAV,EAAgB,CAAhB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACI85E,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC5zE,IAAV,EAAgB,CAAhB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;MACI85E,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC+D,GAAV,EAAe,CAAf,CAAtB;MACA;;IACJ,KAAK,KAAL;MACImC,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACoL,WAAxC,EAAqDrL,SAAS,CAACwL,UAA/D,CADjB;MAEA;;IACJ,KAAK,MAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACqL,IAAxC,EAA8CtL,SAAS,CAACwL,UAAxD,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIJ,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACsL,MAAxC,EAAgDvL,SAAS,CAACwL,UAA1D,CADjB;MAEA;;IACJ,KAAK,QAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACwG,KAAxC,EAA+CzG,SAAS,CAACwL,UAAzD,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACoL,WAAxC,CAAzB;MACA;;IACJ,KAAK,MAAL;MACID,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACqL,IAAxC,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIF,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACsL,MAAxC,CAAzB;MACA;;IACJ,KAAK,QAAL;MACIH,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACsE,IAAjB,EAAuBxJ,gBAAgB,CAACwG,KAAxC,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACI2E,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACoL,WAA9C,CAAzB;MACA;;IACJ,KAAK,MAAL;MACID,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACqL,IAA9C,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIF,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACsL,MAA9C,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIH,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACoL,WAA9C,EAA2DrL,SAAS,CAACwL,UAArE,EAAiF,IAAjF,CAAzB;MACA;;IACJ,KAAK,MAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACqL,IAA9C,EAAoDtL,SAAS,CAACwL,UAA9D,EAA0E,IAA1E,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACsL,MAA9C,EAAsDvL,SAAS,CAACwL,UAAhE,EAA4E,IAA5E,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIJ,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACoL,WAA9C,EAA2DrL,SAAS,CAACqJ,MAArE,EAA6E,IAA7E,CAAzB;MACA;;IACJ,KAAK,MAAL;MACI+B,SAAS,GACLjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACqL,IAA9C,EAAoDtL,SAAS,CAACqJ,MAA9D,EAAsE,IAAtE,CADjB;MAEA;;IACJ,KAAK,OAAL;MACI+B,SAAS,GAAGjC,aAAa,CAAChE,eAAe,CAACuE,UAAjB,EAA6BzJ,gBAAgB,CAACsL,MAA9C,EAAsDvL,SAAS,CAACqJ,MAAhE,EAAwE,IAAxE,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;MACI+B,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACgD,KAAV,EAAiB,CAAjB,EAAoB,CAAC,EAArB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIkD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACgD,KAAV,EAAiB,CAAjB,EAAoB,CAAC,EAArB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIkD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACgD,KAAV,EAAiB,CAAjB,CAAtB;MACA;IACJ;;IACA,KAAK,IAAL;MACIkD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACgD,KAAV,EAAiB,CAAjB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIkD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC0D,OAAV,EAAmB,CAAnB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIwC,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC0D,OAAV,EAAmB,CAAnB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIwC,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC4D,OAAV,EAAmB,CAAnB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIsC,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAAC4D,OAAV,EAAmB,CAAnB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIsC,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACiD,iBAAV,EAA6B,CAA7B,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIiD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACiD,iBAAV,EAA6B,CAA7B,CAAtB;MACA;;IACJ,KAAK,KAAL;MACIiD,SAAS,GAAGpD,UAAU,CAAC9C,QAAQ,CAACiD,iBAAV,EAA6B,CAA7B,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIiD,SAAS,GAAGpB,cAAc,CAAC/E,SAAS,CAACwB,KAAX,CAA1B;MACA;IACJ;;IACA,KAAK,OAAL;MACI2E,SAAS,GAAGpB,cAAc,CAAC/E,SAAS,CAACkF,QAAX,CAA1B;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL,CA5NJ,CA6NI;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIiB,SAAS,GAAGpB,cAAc,CAAC/E,SAAS,CAACiF,QAAX,CAA1B;MACA;IACJ;;IACA,KAAK,MAAL;IACA,KAAK,MAAL,CArOJ,CAsOI;;IACA,KAAK,MAAL;MACIkB,SAAS,GAAGpB,cAAc,CAAC/E,SAAS,CAAC0B,IAAX,CAA1B;MACA;;IACJ;MACI,OAAO,IAAP;EA3OR;;EA6OAwE,YAAY,CAAC3G,MAAD,CAAZ,GAAuB4G,SAAvB;EACA,OAAOA,SAAP;AACH;;AACD,SAASvF,gBAAT,CAA0BR,QAA1B,EAAoCoG,QAApC,EAA8C;EAC1C;EACA;EACApG,QAAQ,GAAGA,QAAQ,CAAChxF,OAAT,CAAiB,IAAjB,EAAuB,EAAvB,CAAX;EACA,MAAMq3F,uBAAuB,GAAGp6E,IAAI,CAACnJ,KAAL,CAAW,2BAA2Bk9E,QAAtC,IAAkD,KAAlF;EACA,OAAO7kF,KAAK,CAACkrF,uBAAD,CAAL,GAAiCD,QAAjC,GAA4CC,uBAAnD;AACH;;AACD,SAASC,cAAT,CAAwBrG,IAAxB,EAA8BjB,OAA9B,EAAuC;EACnCiB,IAAI,GAAG,IAAIh0E,IAAJ,CAASg0E,IAAI,CAAC/zE,OAAL,EAAT,CAAP;EACA+zE,IAAI,CAACsG,UAAL,CAAgBtG,IAAI,CAACuD,UAAL,KAAoBxE,OAApC;EACA,OAAOiB,IAAP;AACH;;AACD,SAASQ,sBAAT,CAAgCR,IAAhC,EAAsCD,QAAtC,EAAgD51C,OAAhD,EAAyD;EACrD,MAAMo8C,YAAY,GAAGp8C,OAAO,GAAG,CAAC,CAAJ,GAAQ,CAApC;EACA,MAAMk2C,kBAAkB,GAAGL,IAAI,CAACM,iBAAL,EAA3B;EACA,MAAMkG,cAAc,GAAGjG,gBAAgB,CAACR,QAAD,EAAWM,kBAAX,CAAvC;EACA,OAAOgG,cAAc,CAACrG,IAAD,EAAOuG,YAAY,IAAIC,cAAc,GAAGnG,kBAArB,CAAnB,CAArB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASJ,MAAT,CAAgB9/F,KAAhB,EAAuB;EACnB,IAAIsmG,MAAM,CAACtmG,KAAD,CAAV,EAAmB;IACf,OAAOA,KAAP;EACH;;EACD,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAAC+a,KAAK,CAAC/a,KAAD,CAAvC,EAAgD;IAC5C,OAAO,IAAI6rB,IAAJ,CAAS7rB,KAAT,CAAP;EACH;;EACD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC3BA,KAAK,GAAGA,KAAK,CAACkP,IAAN,EAAR;;IACA,IAAI,kCAAkC3G,IAAlC,CAAuCvI,KAAvC,CAAJ,EAAmD;MAC/C;AACZ;AACA;AACA;AACA;AACA;AACA;MACY,MAAM,CAACsM,CAAD,EAAIujE,CAAC,GAAG,CAAR,EAAW3jE,CAAC,GAAG,CAAf,IAAoBlM,KAAK,CAACkO,KAAN,CAAY,GAAZ,EAAiBjI,GAAjB,CAAsBU,GAAD,IAAS,CAACA,GAA/B,CAA1B;MACA,OAAO65F,UAAU,CAACl0F,CAAD,EAAIujE,CAAC,GAAG,CAAR,EAAW3jE,CAAX,CAAjB;IACH;;IACD,MAAMq6F,QAAQ,GAAGzrF,UAAU,CAAC9a,KAAD,CAA3B,CAb2B,CAc3B;;IACA,IAAI,CAAC+a,KAAK,CAAC/a,KAAK,GAAGumG,QAAT,CAAV,EAA8B;MAC1B,OAAO,IAAI16E,IAAJ,CAAS06E,QAAT,CAAP;IACH;;IACD,IAAIjuF,KAAJ;;IACA,IAAIA,KAAK,GAAGtY,KAAK,CAACsY,KAAN,CAAY+mF,kBAAZ,CAAZ,EAA6C;MACzC,OAAOmH,eAAe,CAACluF,KAAD,CAAtB;IACH;EACJ;;EACD,MAAMunF,IAAI,GAAG,IAAIh0E,IAAJ,CAAS7rB,KAAT,CAAb;;EACA,IAAI,CAACsmG,MAAM,CAACzG,IAAD,CAAX,EAAmB;IACf,MAAM,IAAI/jF,KAAJ,CAAW,sBAAqB9b,KAAM,eAAtC,CAAN;EACH;;EACD,OAAO6/F,IAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS2G,eAAT,CAAyBluF,KAAzB,EAAgC;EAC5B,MAAMunF,IAAI,GAAG,IAAIh0E,IAAJ,CAAS,CAAT,CAAb;EACA,IAAI46E,MAAM,GAAG,CAAb;EACA,IAAIC,KAAK,GAAG,CAAZ,CAH4B,CAI5B;;EACA,MAAMC,UAAU,GAAGruF,KAAK,CAAC,CAAD,CAAL,GAAWunF,IAAI,CAAC+G,cAAhB,GAAiC/G,IAAI,CAACe,WAAzD;EACA,MAAMiG,UAAU,GAAGvuF,KAAK,CAAC,CAAD,CAAL,GAAWunF,IAAI,CAACiH,WAAhB,GAA8BjH,IAAI,CAACgB,QAAtD,CAN4B,CAO5B;;EACA,IAAIvoF,KAAK,CAAC,CAAD,CAAT,EAAc;IACVmuF,MAAM,GAAG/zD,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,EAAD,CAAjB,CAAf;IACAouF,KAAK,GAAGh0D,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,EAAD,CAAjB,CAAd;EACH;;EACDquF,UAAU,CAACjlG,IAAX,CAAgBm+F,IAAhB,EAAsBntD,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAN,CAA5B,EAAwCo6B,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAN,CAAN,GAAmB,CAA3D,EAA8Do6B,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAN,CAApE;EACA,MAAMomF,CAAC,GAAGhsD,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAN,GAAwBmuF,MAAlC;EACA,MAAM52B,CAAC,GAAGn9B,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAN,GAAwBouF,KAAlC;EACA,MAAMpmF,CAAC,GAAGoyB,MAAM,CAACp6B,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAhB,CAf4B,CAgB5B;EACA;EACA;;EACA,MAAMyuF,EAAE,GAAGp5F,IAAI,CAACuvB,KAAL,CAAWpiB,UAAU,CAAC,QAAQxC,KAAK,CAAC,CAAD,CAAL,IAAY,CAApB,CAAD,CAAV,GAAqC,IAAhD,CAAX;EACAuuF,UAAU,CAACnlG,IAAX,CAAgBm+F,IAAhB,EAAsBnB,CAAtB,EAAyB7uB,CAAzB,EAA4BvvD,CAA5B,EAA+BymF,EAA/B;EACA,OAAOlH,IAAP;AACH;;AACD,SAASyG,MAAT,CAAgBtmG,KAAhB,EAAuB;EACnB,OAAOA,KAAK,YAAY6rB,IAAjB,IAAyB,CAAC9Q,KAAK,CAAC/a,KAAK,CAACgnG,OAAN,EAAD,CAAtC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAoB,GAAG,6BAA7B;AACA,MAAMC,UAAU,GAAG,EAAnB;AACA,MAAMC,WAAW,GAAG,GAApB;AACA,MAAMC,SAAS,GAAG,GAAlB;AACA,MAAMC,WAAW,GAAG,GAApB;AACA,MAAMC,SAAS,GAAG,GAAlB;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA,MAAMC,aAAa,GAAG,GAAtB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA;AACA;AACA;;AACA,SAASC,0BAAT,CAAoC1nG,KAApC,EAA2C2nG,OAA3C,EAAoD9M,MAApD,EAA4D+M,WAA5D,EAAyEC,aAAzE,EAAwFC,UAAxF,EAAoGC,SAAS,GAAG,KAAhH,EAAuH;EACnH,IAAIC,aAAa,GAAG,EAApB;EACA,IAAIC,MAAM,GAAG,KAAb;;EACA,IAAI,CAACxyD,QAAQ,CAACz1C,KAAD,CAAb,EAAsB;IAClBgoG,aAAa,GAAGlL,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACwN,QAAtB,CAArC;EACH,CAFD,MAGK;IACD,IAAIC,YAAY,GAAGC,WAAW,CAACpoG,KAAD,CAA9B;;IACA,IAAI+nG,SAAJ,EAAe;MACXI,YAAY,GAAGE,SAAS,CAACF,YAAD,CAAxB;IACH;;IACD,IAAIG,MAAM,GAAGX,OAAO,CAACW,MAArB;IACA,IAAIC,WAAW,GAAGZ,OAAO,CAACa,OAA1B;IACA,IAAIC,WAAW,GAAGd,OAAO,CAACe,OAA1B;;IACA,IAAIZ,UAAJ,EAAgB;MACZ,MAAMz5F,KAAK,GAAGy5F,UAAU,CAACxvF,KAAX,CAAiB2uF,oBAAjB,CAAd;;MACA,IAAI54F,KAAK,KAAK,IAAd,EAAoB;QAChB,MAAM,IAAIyN,KAAJ,CAAW,GAAEgsF,UAAW,4BAAxB,CAAN;MACH;;MACD,MAAMa,UAAU,GAAGt6F,KAAK,CAAC,CAAD,CAAxB;MACA,MAAMu6F,eAAe,GAAGv6F,KAAK,CAAC,CAAD,CAA7B;MACA,MAAMw6F,eAAe,GAAGx6F,KAAK,CAAC,CAAD,CAA7B;;MACA,IAAIs6F,UAAU,IAAI,IAAlB,EAAwB;QACpBL,MAAM,GAAGQ,iBAAiB,CAACH,UAAD,CAA1B;MACH;;MACD,IAAIC,eAAe,IAAI,IAAvB,EAA6B;QACzBL,WAAW,GAAGO,iBAAiB,CAACF,eAAD,CAA/B;MACH;;MACD,IAAIC,eAAe,IAAI,IAAvB,EAA6B;QACzBJ,WAAW,GAAGK,iBAAiB,CAACD,eAAD,CAA/B;MACH,CAFD,MAGK,IAAID,eAAe,IAAI,IAAnB,IAA2BL,WAAW,GAAGE,WAA7C,EAA0D;QAC3DA,WAAW,GAAGF,WAAd;MACH;IACJ;;IACDQ,WAAW,CAACZ,YAAD,EAAeI,WAAf,EAA4BE,WAA5B,CAAX;IACA,IAAIrJ,MAAM,GAAG+I,YAAY,CAAC/I,MAA1B;IACA,IAAI4J,UAAU,GAAGb,YAAY,CAACa,UAA9B;IACA,MAAMC,QAAQ,GAAGd,YAAY,CAACc,QAA9B;IACA,IAAIC,QAAQ,GAAG,EAAf;IACAjB,MAAM,GAAG7I,MAAM,CAACpxC,KAAP,CAAa9hD,CAAC,IAAI,CAACA,CAAnB,CAAT,CAlCC,CAmCD;;IACA,OAAO88F,UAAU,GAAGV,MAApB,EAA4BU,UAAU,EAAtC,EAA0C;MACtC5J,MAAM,CAACtxC,OAAP,CAAe,CAAf;IACH,CAtCA,CAuCD;;;IACA,OAAOk7C,UAAU,GAAG,CAApB,EAAuBA,UAAU,EAAjC,EAAqC;MACjC5J,MAAM,CAACtxC,OAAP,CAAe,CAAf;IACH,CA1CA,CA2CD;;;IACA,IAAIk7C,UAAU,GAAG,CAAjB,EAAoB;MAChBE,QAAQ,GAAG9J,MAAM,CAACrsC,MAAP,CAAci2C,UAAd,EAA0B5J,MAAM,CAAChgG,MAAjC,CAAX;IACH,CAFD,MAGK;MACD8pG,QAAQ,GAAG9J,MAAX;MACAA,MAAM,GAAG,CAAC,CAAD,CAAT;IACH,CAlDA,CAmDD;;;IACA,MAAMt1C,MAAM,GAAG,EAAf;;IACA,IAAIs1C,MAAM,CAAChgG,MAAP,IAAiBuoG,OAAO,CAACwB,MAA7B,EAAqC;MACjCr/C,MAAM,CAACgE,OAAP,CAAesxC,MAAM,CAACrsC,MAAP,CAAc,CAAC40C,OAAO,CAACwB,MAAvB,EAA+B/J,MAAM,CAAChgG,MAAtC,EAA8CqP,IAA9C,CAAmD,EAAnD,CAAf;IACH;;IACD,OAAO2wF,MAAM,CAAChgG,MAAP,GAAgBuoG,OAAO,CAACyB,KAA/B,EAAsC;MAClCt/C,MAAM,CAACgE,OAAP,CAAesxC,MAAM,CAACrsC,MAAP,CAAc,CAAC40C,OAAO,CAACyB,KAAvB,EAA8BhK,MAAM,CAAChgG,MAArC,EAA6CqP,IAA7C,CAAkD,EAAlD,CAAf;IACH;;IACD,IAAI2wF,MAAM,CAAChgG,MAAX,EAAmB;MACf0qD,MAAM,CAACgE,OAAP,CAAesxC,MAAM,CAAC3wF,IAAP,CAAY,EAAZ,CAAf;IACH;;IACDu5F,aAAa,GAAGl+C,MAAM,CAACr7C,IAAP,CAAYquF,qBAAqB,CAACjC,MAAD,EAAS+M,WAAT,CAAjC,CAAhB,CA9DC,CA+DD;;IACA,IAAIsB,QAAQ,CAAC9pG,MAAb,EAAqB;MACjB4oG,aAAa,IAAIlL,qBAAqB,CAACjC,MAAD,EAASgN,aAAT,CAArB,GAA+CqB,QAAQ,CAACz6F,IAAT,CAAc,EAAd,CAAhE;IACH;;IACD,IAAIw6F,QAAJ,EAAc;MACVjB,aAAa,IAAIlL,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAAC2O,WAAtB,CAArB,GAA0D,GAA1D,GAAgEJ,QAAjF;IACH;EACJ;;EACD,IAAIjpG,KAAK,GAAG,CAAR,IAAa,CAACioG,MAAlB,EAA0B;IACtBD,aAAa,GAAGL,OAAO,CAAC2B,MAAR,GAAiBtB,aAAjB,GAAiCL,OAAO,CAAC4B,MAAzD;EACH,CAFD,MAGK;IACDvB,aAAa,GAAGL,OAAO,CAAC6B,MAAR,GAAiBxB,aAAjB,GAAiCL,OAAO,CAAC8B,MAAzD;EACH;;EACD,OAAOzB,aAAP;AACH;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,SAAS0B,cAAT,CAAwB1pG,KAAxB,EAA+B66F,MAA/B,EAAuCmE,QAAvC,EAAiD2K,YAAjD,EAA+D7B,UAA/D,EAA2E;EACvE,MAAM/I,MAAM,GAAG1B,qBAAqB,CAACxC,MAAD,EAASR,iBAAiB,CAACuP,QAA3B,CAApC;EACA,MAAMjC,OAAO,GAAGkC,iBAAiB,CAAC9K,MAAD,EAASjC,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAA9B,CAAjC;EACA+E,OAAO,CAACa,OAAR,GAAkBrJ,yBAAyB,CAACwK,YAAD,CAA3C;EACAhC,OAAO,CAACe,OAAR,GAAkBf,OAAO,CAACa,OAA1B;EACA,MAAMzL,GAAG,GAAG2K,0BAA0B,CAAC1nG,KAAD,EAAQ2nG,OAAR,EAAiB9M,MAAjB,EAAyBH,YAAY,CAACyC,aAAtC,EAAqDzC,YAAY,CAACuC,eAAlE,EAAmF6K,UAAnF,CAAtC;EACA,OAAO/K,GAAG,CACLnuF,OADE,CACM44F,aADN,EACqBxI,QADrB,EAEH;EAFG,CAGFpwF,OAHE,CAGM44F,aAHN,EAGqB,EAHrB,EAIH;EACA;EACA;EACA;EAPG,CAQFt4F,IARE,EAAP;AASH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS46F,aAAT,CAAuB9pG,KAAvB,EAA8B66F,MAA9B,EAAsCiN,UAAtC,EAAkD;EAC9C,MAAM/I,MAAM,GAAG1B,qBAAqB,CAACxC,MAAD,EAASR,iBAAiB,CAAC0P,OAA3B,CAApC;EACA,MAAMpC,OAAO,GAAGkC,iBAAiB,CAAC9K,MAAD,EAASjC,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAA9B,CAAjC;EACA,MAAM7F,GAAG,GAAG2K,0BAA0B,CAAC1nG,KAAD,EAAQ2nG,OAAR,EAAiB9M,MAAjB,EAAyBH,YAAY,CAAC0C,KAAtC,EAA6C1C,YAAY,CAACwC,OAA1D,EAAmE4K,UAAnE,EAA+E,IAA/E,CAAtC;EACA,OAAO/K,GAAG,CAACnuF,OAAJ,CAAY,IAAIwJ,MAAJ,CAAWqvF,YAAX,EAAyB,GAAzB,CAAZ,EAA2C3K,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACsP,WAAtB,CAAhE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAsBjqG,KAAtB,EAA6B66F,MAA7B,EAAqCiN,UAArC,EAAiD;EAC7C,MAAM/I,MAAM,GAAG1B,qBAAqB,CAACxC,MAAD,EAASR,iBAAiB,CAAC6C,OAA3B,CAApC;EACA,MAAMyK,OAAO,GAAGkC,iBAAiB,CAAC9K,MAAD,EAASjC,qBAAqB,CAACjC,MAAD,EAASH,YAAY,CAACkI,SAAtB,CAA9B,CAAjC;EACA,OAAO8E,0BAA0B,CAAC1nG,KAAD,EAAQ2nG,OAAR,EAAiB9M,MAAjB,EAAyBH,YAAY,CAAC0C,KAAtC,EAA6C1C,YAAY,CAACwC,OAA1D,EAAmE4K,UAAnE,CAAjC;AACH;;AACD,SAAS+B,iBAAT,CAA2B9K,MAA3B,EAAmCiD,SAAS,GAAG,GAA/C,EAAoD;EAChD,MAAM9tF,CAAC,GAAG;IACNo0F,MAAM,EAAE,CADF;IAENE,OAAO,EAAE,CAFH;IAGNE,OAAO,EAAE,CAHH;IAINc,MAAM,EAAE,EAJF;IAKNC,MAAM,EAAE,EALF;IAMNH,MAAM,EAAE,EANF;IAONC,MAAM,EAAE,EAPF;IAQNH,KAAK,EAAE,CARD;IASND,MAAM,EAAE;EATF,CAAV;EAWA,MAAMe,YAAY,GAAGnL,MAAM,CAAC7wF,KAAP,CAAam5F,WAAb,CAArB;EACA,MAAM8C,QAAQ,GAAGD,YAAY,CAAC,CAAD,CAA7B;EACA,MAAME,QAAQ,GAAGF,YAAY,CAAC,CAAD,CAA7B;EACA,MAAMG,aAAa,GAAGF,QAAQ,CAACjmG,OAAT,CAAiBijG,WAAjB,MAAkC,CAAC,CAAnC,GAClBgD,QAAQ,CAACj8F,KAAT,CAAei5F,WAAf,CADkB,GAElB,CACIgD,QAAQ,CAACt0E,SAAT,CAAmB,CAAnB,EAAsBs0E,QAAQ,CAACG,WAAT,CAAqBlD,SAArB,IAAkC,CAAxD,CADJ,EAEI+C,QAAQ,CAACt0E,SAAT,CAAmBs0E,QAAQ,CAACG,WAAT,CAAqBlD,SAArB,IAAkC,CAArD,CAFJ,CAFJ;EAAA,MAKOmD,OAAO,GAAGF,aAAa,CAAC,CAAD,CAL9B;EAAA,MAKmCG,QAAQ,GAAGH,aAAa,CAAC,CAAD,CAAb,IAAoB,EALlE;EAMAn2F,CAAC,CAACs1F,MAAF,GAAWe,OAAO,CAAC10E,SAAR,CAAkB,CAAlB,EAAqB00E,OAAO,CAACrmG,OAAR,CAAgBqjG,UAAhB,CAArB,CAAX;;EACA,KAAK,IAAIpoG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqrG,QAAQ,CAACprG,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;IACtC,MAAMsrG,EAAE,GAAGD,QAAQ,CAAC7xE,MAAT,CAAgBx5B,CAAhB,CAAX;;IACA,IAAIsrG,EAAE,KAAKrD,SAAX,EAAsB;MAClBlzF,CAAC,CAACs0F,OAAF,GAAYt0F,CAAC,CAACw0F,OAAF,GAAYvpG,CAAC,GAAG,CAA5B;IACH,CAFD,MAGK,IAAIsrG,EAAE,KAAKlD,UAAX,EAAuB;MACxBrzF,CAAC,CAACw0F,OAAF,GAAYvpG,CAAC,GAAG,CAAhB;IACH,CAFI,MAGA;MACD+U,CAAC,CAACu1F,MAAF,IAAYgB,EAAZ;IACH;EACJ;;EACD,MAAM3gD,MAAM,GAAGygD,OAAO,CAACr8F,KAAR,CAAco5F,SAAd,CAAf;EACApzF,CAAC,CAACk1F,KAAF,GAAUt/C,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAN,CAAU1qD,MAAtB,GAA+B,CAAzC;EACA8U,CAAC,CAACi1F,MAAF,GAAYr/C,MAAM,CAAC,CAAD,CAAN,IAAaA,MAAM,CAAC,CAAD,CAApB,GAA2B,CAACA,MAAM,CAAC,CAAD,CAAN,IAAaA,MAAM,CAAC,CAAD,CAApB,EAAyB1qD,MAApD,GAA6D,CAAxE;;EACA,IAAIgrG,QAAJ,EAAc;IACV,MAAMM,QAAQ,GAAGP,QAAQ,CAAC/qG,MAAT,GAAkB8U,CAAC,CAACs1F,MAAF,CAASpqG,MAA3B,GAAoC8U,CAAC,CAACu1F,MAAF,CAASrqG,MAA9D;IAAA,MAAsEurG,GAAG,GAAGP,QAAQ,CAAClmG,OAAT,CAAiBqjG,UAAjB,CAA5E;IACArzF,CAAC,CAACo1F,MAAF,GAAWc,QAAQ,CAACv0E,SAAT,CAAmB,CAAnB,EAAsB80E,GAAtB,EAA2B/7F,OAA3B,CAAmC,IAAnC,EAAyC,EAAzC,CAAX;IACAsF,CAAC,CAACq1F,MAAF,GAAWa,QAAQ,CAAC57F,KAAT,CAAem8F,GAAG,GAAGD,QAArB,EAA+B97F,OAA/B,CAAuC,IAAvC,EAA6C,EAA7C,CAAX;EACH,CAJD,MAKK;IACDsF,CAAC,CAACo1F,MAAF,GAAWtH,SAAS,GAAG9tF,CAAC,CAACs1F,MAAzB;IACAt1F,CAAC,CAACq1F,MAAF,GAAWr1F,CAAC,CAACu1F,MAAb;EACH;;EACD,OAAOv1F,CAAP;AACH,EACD;;;AACA,SAASm0F,SAAT,CAAmBF,YAAnB,EAAiC;EAC7B;EACA,IAAIA,YAAY,CAAC/I,MAAb,CAAoB,CAApB,MAA2B,CAA/B,EAAkC;IAC9B,OAAO+I,YAAP;EACH,CAJ4B,CAK7B;;;EACA,MAAMyC,WAAW,GAAGzC,YAAY,CAAC/I,MAAb,CAAoBhgG,MAApB,GAA6B+oG,YAAY,CAACa,UAA9D;;EACA,IAAIb,YAAY,CAACc,QAAjB,EAA2B;IACvBd,YAAY,CAACc,QAAb,IAAyB,CAAzB;EACH,CAFD,MAGK;IACD,IAAI2B,WAAW,KAAK,CAApB,EAAuB;MACnBzC,YAAY,CAAC/I,MAAb,CAAoB/8F,IAApB,CAAyB,CAAzB,EAA4B,CAA5B;IACH,CAFD,MAGK,IAAIuoG,WAAW,KAAK,CAApB,EAAuB;MACxBzC,YAAY,CAAC/I,MAAb,CAAoB/8F,IAApB,CAAyB,CAAzB;IACH;;IACD8lG,YAAY,CAACa,UAAb,IAA2B,CAA3B;EACH;;EACD,OAAOb,YAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASC,WAAT,CAAqBrG,GAArB,EAA0B;EACtB,IAAI8I,MAAM,GAAGl9F,IAAI,CAACytE,GAAL,CAAS2mB,GAAT,IAAgB,EAA7B;EACA,IAAIkH,QAAQ,GAAG,CAAf;EAAA,IAAkB7J,MAAlB;EAAA,IAA0B4J,UAA1B;EACA,IAAI7pG,CAAJ,EAAOkvF,CAAP,EAAUyc,KAAV,CAHsB,CAItB;;EACA,IAAI,CAAC9B,UAAU,GAAG6B,MAAM,CAAC3mG,OAAP,CAAeijG,WAAf,CAAd,IAA6C,CAAC,CAAlD,EAAqD;IACjD0D,MAAM,GAAGA,MAAM,CAACj8F,OAAP,CAAeu4F,WAAf,EAA4B,EAA5B,CAAT;EACH,CAPqB,CAQtB;;;EACA,IAAI,CAAChoG,CAAC,GAAG0rG,MAAM,CAACrxE,MAAP,CAAc,IAAd,CAAL,IAA4B,CAAhC,EAAmC;IAC/B;IACA,IAAIwvE,UAAU,GAAG,CAAjB,EACIA,UAAU,GAAG7pG,CAAb;IACJ6pG,UAAU,IAAI,CAAC6B,MAAM,CAACr8F,KAAP,CAAarP,CAAC,GAAG,CAAjB,CAAf;IACA0rG,MAAM,GAAGA,MAAM,CAACh1E,SAAP,CAAiB,CAAjB,EAAoB12B,CAApB,CAAT;EACH,CAND,MAOK,IAAI6pG,UAAU,GAAG,CAAjB,EAAoB;IACrB;IACAA,UAAU,GAAG6B,MAAM,CAACzrG,MAApB;EACH,CAnBqB,CAoBtB;;;EACA,KAAKD,CAAC,GAAG,CAAT,EAAY0rG,MAAM,CAAClyE,MAAP,CAAcx5B,CAAd,MAAqBioG,SAAjC,EAA4CjoG,CAAC,EAA7C,EAAiD;IAAE;EAClD;;EACD,IAAIA,CAAC,MAAM2rG,KAAK,GAAGD,MAAM,CAACzrG,MAArB,CAAL,EAAmC;IAC/B;IACAggG,MAAM,GAAG,CAAC,CAAD,CAAT;IACA4J,UAAU,GAAG,CAAb;EACH,CAJD,MAKK;IACD;IACA8B,KAAK;;IACL,OAAOD,MAAM,CAAClyE,MAAP,CAAcmyE,KAAd,MAAyB1D,SAAhC,EACI0D,KAAK,GAJR,CAKD;;;IACA9B,UAAU,IAAI7pG,CAAd;IACAigG,MAAM,GAAG,EAAT,CAPC,CAQD;;IACA,KAAK/Q,CAAC,GAAG,CAAT,EAAYlvF,CAAC,IAAI2rG,KAAjB,EAAwB3rG,CAAC,IAAIkvF,CAAC,EAA9B,EAAkC;MAC9B+Q,MAAM,CAAC/Q,CAAD,CAAN,GAAY37C,MAAM,CAACm4D,MAAM,CAAClyE,MAAP,CAAcx5B,CAAd,CAAD,CAAlB;IACH;EACJ,CAxCqB,CAyCtB;;;EACA,IAAI6pG,UAAU,GAAG9B,UAAjB,EAA6B;IACzB9H,MAAM,GAAGA,MAAM,CAACrsC,MAAP,CAAc,CAAd,EAAiBm0C,UAAU,GAAG,CAA9B,CAAT;IACA+B,QAAQ,GAAGD,UAAU,GAAG,CAAxB;IACAA,UAAU,GAAG,CAAb;EACH;;EACD,OAAO;IAAE5J,MAAF;IAAU6J,QAAV;IAAoBD;EAApB,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASD,WAAT,CAAqBZ,YAArB,EAAmCK,OAAnC,EAA4CE,OAA5C,EAAqD;EACjD,IAAIF,OAAO,GAAGE,OAAd,EAAuB;IACnB,MAAM,IAAI5sF,KAAJ,CAAW,gDAA+C0sF,OAAQ,iCAAgCE,OAAQ,IAA1G,CAAN;EACH;;EACD,IAAItJ,MAAM,GAAG+I,YAAY,CAAC/I,MAA1B;EACA,IAAIwL,WAAW,GAAGxL,MAAM,CAAChgG,MAAP,GAAgB+oG,YAAY,CAACa,UAA/C;EACA,MAAM+B,YAAY,GAAGp9F,IAAI,CAACqpC,GAAL,CAASrpC,IAAI,CAAC6iC,GAAL,CAASg4D,OAAT,EAAkBoC,WAAlB,CAAT,EAAyClC,OAAzC,CAArB,CANiD,CAOjD;;EACA,IAAIsC,OAAO,GAAGD,YAAY,GAAG5C,YAAY,CAACa,UAA1C;EACA,IAAIiC,KAAK,GAAG7L,MAAM,CAAC4L,OAAD,CAAlB;;EACA,IAAIA,OAAO,GAAG,CAAd,EAAiB;IACb;IACA5L,MAAM,CAACrsC,MAAP,CAAcplD,IAAI,CAAC6iC,GAAL,CAAS23D,YAAY,CAACa,UAAtB,EAAkCgC,OAAlC,CAAd,EAFa,CAGb;;IACA,KAAK,IAAI3c,CAAC,GAAG2c,OAAb,EAAsB3c,CAAC,GAAG+Q,MAAM,CAAChgG,MAAjC,EAAyCivF,CAAC,EAA1C,EAA8C;MAC1C+Q,MAAM,CAAC/Q,CAAD,CAAN,GAAY,CAAZ;IACH;EACJ,CAPD,MAQK;IACD;IACAuc,WAAW,GAAGj9F,IAAI,CAAC6iC,GAAL,CAAS,CAAT,EAAYo6D,WAAZ,CAAd;IACAzC,YAAY,CAACa,UAAb,GAA0B,CAA1B;IACA5J,MAAM,CAAChgG,MAAP,GAAgBuO,IAAI,CAAC6iC,GAAL,CAAS,CAAT,EAAYw6D,OAAO,GAAGD,YAAY,GAAG,CAArC,CAAhB;IACA3L,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;;IACA,KAAK,IAAIjgG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6rG,OAApB,EAA6B7rG,CAAC,EAA9B,EACIigG,MAAM,CAACjgG,CAAD,CAAN,GAAY,CAAZ;EACP;;EACD,IAAI8rG,KAAK,IAAI,CAAb,EAAgB;IACZ,IAAID,OAAO,GAAG,CAAV,GAAc,CAAlB,EAAqB;MACjB,KAAK,IAAIpmF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGomF,OAApB,EAA6BpmF,CAAC,EAA9B,EAAkC;QAC9Bw6E,MAAM,CAACtxC,OAAP,CAAe,CAAf;QACAq6C,YAAY,CAACa,UAAb;MACH;;MACD5J,MAAM,CAACtxC,OAAP,CAAe,CAAf;MACAq6C,YAAY,CAACa,UAAb;IACH,CAPD,MAQK;MACD5J,MAAM,CAAC4L,OAAO,GAAG,CAAX,CAAN;IACH;EACJ,CAvCgD,CAwCjD;;;EACA,OAAOJ,WAAW,GAAGj9F,IAAI,CAAC6iC,GAAL,CAAS,CAAT,EAAYu6D,YAAZ,CAArB,EAAgDH,WAAW,EAA3D,EACIxL,MAAM,CAAC/8F,IAAP,CAAY,CAAZ;;EACJ,IAAI6oG,iBAAiB,GAAGH,YAAY,KAAK,CAAzC,CA3CiD,CA4CjD;EACA;;EACA,MAAMI,MAAM,GAAG3C,OAAO,GAAGL,YAAY,CAACa,UAAtC,CA9CiD,CA+CjD;;EACA,MAAMoC,KAAK,GAAGhM,MAAM,CAACiM,WAAP,CAAmB,UAAUD,KAAV,EAAiBl/F,CAAjB,EAAoB/M,CAApB,EAAuBigG,MAAvB,EAA+B;IAC5DlzF,CAAC,GAAGA,CAAC,GAAGk/F,KAAR;IACAhM,MAAM,CAACjgG,CAAD,CAAN,GAAY+M,CAAC,GAAG,EAAJ,GAASA,CAAT,GAAaA,CAAC,GAAG,EAA7B,CAF4D,CAE3B;;IACjC,IAAIg/F,iBAAJ,EAAuB;MACnB;MACA,IAAI9L,MAAM,CAACjgG,CAAD,CAAN,KAAc,CAAd,IAAmBA,CAAC,IAAIgsG,MAA5B,EAAoC;QAChC/L,MAAM,CAACrhE,GAAP;MACH,CAFD,MAGK;QACDmtE,iBAAiB,GAAG,KAApB;MACH;IACJ;;IACD,OAAOh/F,CAAC,IAAI,EAAL,GAAU,CAAV,GAAc,CAArB,CAZ4D,CAYpC;EAC3B,CAba,EAaX,CAbW,CAAd;;EAcA,IAAIk/F,KAAJ,EAAW;IACPhM,MAAM,CAACtxC,OAAP,CAAes9C,KAAf;IACAjD,YAAY,CAACa,UAAb;EACH;AACJ;;AACD,SAASF,iBAAT,CAA2B1lF,IAA3B,EAAiC;EAC7B,MAAMrO,MAAM,GAAG2I,QAAQ,CAAC0F,IAAD,CAAvB;;EACA,IAAIrI,KAAK,CAAChG,MAAD,CAAT,EAAmB;IACf,MAAM,IAAI+G,KAAJ,CAAU,0CAA0CsH,IAApD,CAAN;EACH;;EACD,OAAOrO,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMu2F,cAAN,CAAqB;;AAErBA,cAAc,CAAC5lF,IAAf;EAAA,iBAA2G4lF,cAA3G;AAAA;;AACAA,cAAc,CAACxlF,KAAf,kBAx8EmGsgD,gEAw8EnG;EAAA,OAA+GklC,cAA/G;EAAA;IAAA;;IAAA;MAAA;IAAA;MAAA,KAAgKzQ,MAAD,IAAY,IAAI0Q,oBAAJ,CAAyB1Q,MAAzB,CAA3K,EAx8EmGz0B,sDAw8EnG,CAA6N2uB,oDAA7N;IAAA;;IAAA;EAAA;EAAA,YAA2I;AAA3I;;AACA;EAAA,mDAz8EmG3uB,+DAy8EnG,CAA2FklC,cAA3F,EAAuH,CAAC;IAC5GxxF,IAAI,EAAEiL,qDADsG;IAE5GnR,IAAI,EAAE,CAAC;MACC4iF,UAAU,EAAE,MADb;MAECC,UAAU,EAAGoE,MAAD,IAAY,IAAI0Q,oBAAJ,CAAyB1Q,MAAzB,CAFzB;MAGC2Q,IAAI,EAAE,CAACzW,oDAAD;IAHP,CAAD;EAFsG,CAAD,CAAvH;AAAA;AAQA;AACA;AACA;AACA;AACA;;;AACA,SAAS0W,iBAAT,CAA2BzrG,KAA3B,EAAkC0rG,KAAlC,EAAyCC,cAAzC,EAAyD9Q,MAAzD,EAAiE;EAC7D,IAAIl7F,GAAG,GAAI,IAAGK,KAAM,EAApB;;EACA,IAAI0rG,KAAK,CAACxnG,OAAN,CAAcvE,GAAd,IAAqB,CAAC,CAA1B,EAA6B;IACzB,OAAOA,GAAP;EACH;;EACDA,GAAG,GAAGgsG,cAAc,CAACF,iBAAf,CAAiCzrG,KAAjC,EAAwC66F,MAAxC,CAAN;;EACA,IAAI6Q,KAAK,CAACxnG,OAAN,CAAcvE,GAAd,IAAqB,CAAC,CAA1B,EAA6B;IACzB,OAAOA,GAAP;EACH;;EACD,IAAI+rG,KAAK,CAACxnG,OAAN,CAAc,OAAd,IAAyB,CAAC,CAA9B,EAAiC;IAC7B,OAAO,OAAP;EACH;;EACD,MAAM,IAAI4X,KAAJ,CAAW,sCAAqC9b,KAAM,GAAtD,CAAN;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMurG,oBAAN,SAAmCD,cAAnC,CAAkD;EAC9C5sG,WAAW,CAACm8F,MAAD,EAAS;IAChB;IACA,KAAKA,MAAL,GAAcA,MAAd;EACH;;EACD4Q,iBAAiB,CAACzrG,KAAD,EAAQ66F,MAAR,EAAgB;IAC7B,MAAM+Q,MAAM,GAAG9N,mBAAmB,CAACjD,MAAM,IAAI,KAAKA,MAAhB,CAAnB,CAA2C76F,KAA3C,CAAf;;IACA,QAAQ4rG,MAAR;MACI,KAAKtR,MAAM,CAACuR,IAAZ;QACI,OAAO,MAAP;;MACJ,KAAKvR,MAAM,CAACwR,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAKxR,MAAM,CAACyR,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAKzR,MAAM,CAAC0R,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAK1R,MAAM,CAAC2R,IAAZ;QACI,OAAO,MAAP;;MACJ;QACI,OAAO,OAAP;IAZR;EAcH;;AArB6C;;AAuBlDV,oBAAoB,CAAC7lF,IAArB;EAAA,iBAAiH6lF,oBAAjH,EAhgFmGnlC,sDAggFnG,CAAuJ2uB,oDAAvJ;AAAA;;AACAwW,oBAAoB,CAACzlF,KAArB,kBAjgFmGsgD,gEAigFnG;EAAA,OAAqHmlC,oBAArH;EAAA,SAAqHA,oBAArH;AAAA;;AACA;EAAA,mDAlgFmGnlC,+DAkgFnG,CAA2FmlC,oBAA3F,EAA6H,CAAC;IAClHzxF,IAAI,EAAEiL,qDAAUA;EADkG,CAAD,CAA7H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEjL,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAC9DzK,IAAI,EAAEmzB,iDADwD;QAE9Dr5B,IAAI,EAAE,CAACmhF,oDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CALxB;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmX,kBAAT,CAA4Bz5E,IAA5B,EAAkCquE,QAAlC,EAA4CqL,SAA5C,EAAuD;EACnD,OAAOnX,qEAAmB,CAACviE,IAAD,EAAOquE,QAAP,EAAiBqL,SAAjB,CAA1B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,CAA0BC,SAA1B,EAAqC1/F,IAArC,EAA2C;EACvCA,IAAI,GAAGwjB,kBAAkB,CAACxjB,IAAD,CAAzB;;EACA,KAAK,MAAMkxB,MAAX,IAAqBwuE,SAAS,CAACn+F,KAAV,CAAgB,GAAhB,CAArB,EAA2C;IACvC,MAAMo+F,OAAO,GAAGzuE,MAAM,CAAC35B,OAAP,CAAe,GAAf,CAAhB;IACA,MAAM,CAACqoG,UAAD,EAAaC,WAAb,IAA4BF,OAAO,IAAI,CAAC,CAAZ,GAAgB,CAACzuE,MAAD,EAAS,EAAT,CAAhB,GAA+B,CAACA,MAAM,CAACrvB,KAAP,CAAa,CAAb,EAAgB89F,OAAhB,CAAD,EAA2BzuE,MAAM,CAACrvB,KAAP,CAAa89F,OAAO,GAAG,CAAvB,CAA3B,CAAjE;;IACA,IAAIC,UAAU,CAACr9F,IAAX,OAAsBvC,IAA1B,EAAgC;MAC5B,OAAOmrB,kBAAkB,CAAC00E,WAAD,CAAzB;IACH;EACJ;;EACD,OAAO,IAAP;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,MAAM9pE,OAAN,CAAc;EACVhkC,WAAW,CAAC+tG,gBAAD,EAAmBC,gBAAnB,EAAqCC,KAArC,EAA4CjoE,SAA5C,EAAuD;IAC9D,KAAK+nE,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAKjoE,SAAL,GAAiBA,SAAjB;IACA,KAAKkoE,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,EAAvB;IACA,KAAKC,SAAL,GAAiB,IAAjB;EACH;;EACQ,IAALC,KAAK,CAAChtG,KAAD,EAAQ;IACb,KAAKitG,cAAL,CAAoB,KAAKH,eAAzB;;IACA,KAAKA,eAAL,GAAuB,OAAO9sG,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACkO,KAAN,CAAY,KAAZ,CAA5B,GAAiD,EAAxE;;IACA,KAAKg/F,aAAL,CAAmB,KAAKJ,eAAxB;;IACA,KAAKI,aAAL,CAAmB,KAAKH,SAAxB;EACH;;EACU,IAAPI,OAAO,CAACntG,KAAD,EAAQ;IACf,KAAKitG,cAAL,CAAoB,KAAKF,SAAzB;;IACA,KAAKG,aAAL,CAAmB,KAAKJ,eAAxB;;IACA,KAAKF,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,IAAvB;IACA,KAAKE,SAAL,GAAiB,OAAO/sG,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACkO,KAAN,CAAY,KAAZ,CAA5B,GAAiDlO,KAAlE;;IACA,IAAI,KAAK+sG,SAAT,EAAoB;MAChB,IAAI9X,qEAAmB,CAAC,KAAK8X,SAAN,CAAvB,EAAyC;QACrC,KAAKH,eAAL,GAAuB,KAAKH,gBAAL,CAAsBhqD,IAAtB,CAA2B,KAAKsqD,SAAhC,EAA2ChxF,MAA3C,EAAvB;MACH,CAFD,MAGK;QACD,KAAK8wF,eAAL,GAAuB,KAAKH,gBAAL,CAAsBjqD,IAAtB,CAA2B,KAAKsqD,SAAhC,EAA2ChxF,MAA3C,EAAvB;MACH;IACJ;EACJ;;EACDqxF,SAAS,GAAG;IACR,IAAI,KAAKR,eAAT,EAA0B;MACtB,MAAMS,eAAe,GAAG,KAAKT,eAAL,CAAqBrH,IAArB,CAA0B,KAAKwH,SAA/B,CAAxB;;MACA,IAAIM,eAAJ,EAAqB;QACjB,KAAKC,qBAAL,CAA2BD,eAA3B;MACH;IACJ,CALD,MAMK,IAAI,KAAKR,eAAT,EAA0B;MAC3B,MAAMU,eAAe,GAAG,KAAKV,eAAL,CAAqBtH,IAArB,CAA0B,KAAKwH,SAA/B,CAAxB;;MACA,IAAIQ,eAAJ,EAAqB;QACjB,KAAKC,qBAAL,CAA2BD,eAA3B;MACH;IACJ;EACJ;;EACDC,qBAAqB,CAACC,OAAD,EAAU;IAC3BA,OAAO,CAACC,gBAAR,CAA0BC,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAAChuG,GAAzB,EAA8BguG,MAAM,CAACE,YAArC,CAArC;IACAJ,OAAO,CAACK,kBAAR,CAA4BH,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAAChuG,GAAzB,EAA8BguG,MAAM,CAACE,YAArC,CAAvC;IACAJ,OAAO,CAACM,kBAAR,CAA4BJ,MAAD,IAAY;MACnC,IAAIA,MAAM,CAACthB,aAAX,EAA0B;QACtB,KAAKuhB,YAAL,CAAkBD,MAAM,CAAChuG,GAAzB,EAA8B,KAA9B;MACH;IACJ,CAJD;EAKH;;EACD2tG,qBAAqB,CAACG,OAAD,EAAU;IAC3BA,OAAO,CAACC,gBAAR,CAA0BC,MAAD,IAAY;MACjC,IAAI,OAAOA,MAAM,CAACpxD,IAAd,KAAuB,QAA3B,EAAqC;QACjC,KAAKqxD,YAAL,CAAkBD,MAAM,CAACpxD,IAAzB,EAA+B,IAA/B;MACH,CAFD,MAGK;QACD,MAAM,IAAIzgC,KAAJ,CAAW,iEAAgEo5E,4DAAU,CAACyY,MAAM,CAACpxD,IAAR,CAAc,EAAnG,CAAN;MACH;IACJ,CAPD;IAQAkxD,OAAO,CAACM,kBAAR,CAA4BJ,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAACpxD,IAAzB,EAA+B,KAA/B,CAAvC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2wD,aAAa,CAACc,WAAD,EAAc;IACvB,IAAIA,WAAJ,EAAiB;MACb,IAAI3sG,KAAK,CAACC,OAAN,CAAc0sG,WAAd,KAA8BA,WAAW,YAAY3kC,GAAzD,EAA8D;QAC1D2kC,WAAW,CAACrtG,OAAZ,CAAqBqsG,KAAD,IAAW,KAAKY,YAAL,CAAkBZ,KAAlB,EAAyB,IAAzB,CAA/B;MACH,CAFD,MAGK;QACDvtG,MAAM,CAACY,IAAP,CAAY2tG,WAAZ,EAAyBrtG,OAAzB,CAAiCqsG,KAAK,IAAI,KAAKY,YAAL,CAAkBZ,KAAlB,EAAyB,CAAC,CAACgB,WAAW,CAAChB,KAAD,CAAtC,CAA1C;MACH;IACJ;EACJ;EACD;AACJ;AACA;AACA;;;EACIC,cAAc,CAACe,WAAD,EAAc;IACxB,IAAIA,WAAJ,EAAiB;MACb,IAAI3sG,KAAK,CAACC,OAAN,CAAc0sG,WAAd,KAA8BA,WAAW,YAAY3kC,GAAzD,EAA8D;QAC1D2kC,WAAW,CAACrtG,OAAZ,CAAqBqsG,KAAD,IAAW,KAAKY,YAAL,CAAkBZ,KAAlB,EAAyB,KAAzB,CAA/B;MACH,CAFD,MAGK;QACDvtG,MAAM,CAACY,IAAP,CAAY2tG,WAAZ,EAAyBrtG,OAAzB,CAAiCqsG,KAAK,IAAI,KAAKY,YAAL,CAAkBZ,KAAlB,EAAyB,KAAzB,CAA1C;MACH;IACJ;EACJ;;EACDY,YAAY,CAACZ,KAAD,EAAQz3D,OAAR,EAAiB;IACzBy3D,KAAK,GAAGA,KAAK,CAAC99F,IAAN,EAAR;;IACA,IAAI89F,KAAJ,EAAW;MACPA,KAAK,CAAC9+F,KAAN,CAAY,MAAZ,EAAoBvN,OAApB,CAA4BqsG,KAAK,IAAI;QACjC,IAAIz3D,OAAJ,EAAa;UACT,KAAK7Q,SAAL,CAAe8B,QAAf,CAAwB,KAAKmmE,KAAL,CAAW9mE,aAAnC,EAAkDmnE,KAAlD;QACH,CAFD,MAGK;UACD,KAAKtoE,SAAL,CAAegiD,WAAf,CAA2B,KAAKimB,KAAL,CAAW9mE,aAAtC,EAAqDmnE,KAArD;QACH;MACJ,CAPD;IAQH;EACJ;;AA9GS;;AAgHdtqE,OAAO,CAAChd,IAAR;EAAA,iBAAoGgd,OAApG,EAnsFmG0jC,+DAmsFnG,CAA6HA,0DAA7H,GAnsFmGA,+DAmsFnG,CAA4JA,0DAA5J,GAnsFmGA,+DAmsFnG,CAA2LA,qDAA3L,GAnsFmGA,+DAmsFnG,CAAqNA,oDAArN;AAAA;;AACA1jC,OAAO,CAACoE,IAAR,kBApsFmGs/B,+DAosFnG;EAAA,MAAwF1jC,OAAxF;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDArsFmG0jC,+DAqsFnG,CAA2F1jC,OAA3F,EAAgH,CAAC;IACrG5oB,IAAI,EAAEmqB,oDAD+F;IAErGrwB,IAAI,EAAE,CAAC;MACCmvB,QAAQ,EAAE,WADX;MAECorE,UAAU,EAAE;IAFb,CAAD;EAF+F,CAAD,CAAhH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAEr0F,IAAI,EAAEssD,0DAAkB6nC;IAA1B,CAAD,EAA+B;MAAEn0F,IAAI,EAAEssD,0DAAkB8nC;IAA1B,CAA/B,EAA6D;MAAEp0F,IAAI,EAAEssD,qDAAaliC;IAArB,CAA7D,EAAsF;MAAEpqB,IAAI,EAAEssD,oDAAYjiC;IAApB,CAAtF,CAAP;EAAuH,CANjK,EAMmL;IAAE6oE,KAAK,EAAE,CAAC;MAC7KlzF,IAAI,EAAEqlB,gDADuK;MAE7KvrB,IAAI,EAAE,CAAC,OAAD;IAFuK,CAAD,CAAT;IAGnKu5F,OAAO,EAAE,CAAC;MACVrzF,IAAI,EAAEqlB,gDADI;MAEVvrB,IAAI,EAAE,CAAC,SAAD;IAFI,CAAD;EAH0J,CANnL;AAAA;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,MAAMw6F,iBAAN,CAAwB;EACpB1vG,WAAW,CAAC+pC,iBAAD,EAAoB;IAC3B,KAAKA,iBAAL,GAAyBA,iBAAzB;IACA,KAAK4lE,iBAAL,GAAyB,IAAzB;EACH;EACD;;;EACAC,WAAW,CAACb,OAAD,EAAU;IACjB,MAAM;MAAEhlE,iBAAiB,EAAE8d,gBAArB;MAAuCgoD,yBAAyB,EAAEprE,QAAlE;MAA4EqrE,gCAAgC,EAAEC;IAA9G,IAAmI,IAAzI;IACAloD,gBAAgB,CAACmxB,KAAjB;IACA,KAAK/tC,aAAL,GAAqB3nC,SAArB;;IACA,IAAI,KAAKqsG,iBAAT,EAA4B;MACxB,MAAM3jE,QAAQ,GAAG,KAAKgkE,yBAAL,IAAkCnoD,gBAAgB,CAACooD,cAApE;;MACA,IAAIlB,OAAO,CAAC,2BAAD,CAAP,IAAwCA,OAAO,CAAC,kCAAD,CAAnD,EAAyF;QACrF,IAAI,KAAKmB,UAAT,EACI,KAAKA,UAAL,CAAgBloE,OAAhB;;QACJ,IAAIvD,QAAJ,EAAc;UACV,KAAKyrE,UAAL,GAAkBzZ,6DAAc,CAAChyD,QAAD,EAAW0rE,iBAAiB,CAACnkE,QAAD,CAA5B,CAAhC;QACH,CAFD,MAGK,IAAI+jE,eAAJ,EAAqB;UACtB,KAAKG,UAAL,GAAkBH,eAAe,CAAC1yF,MAAhB,CAAuB8yF,iBAAiB,CAACnkE,QAAD,CAAxC,CAAlB;QACH,CAFI,MAGA;UACD,KAAKkkE,UAAL,GAAkB5sG,SAAlB;QACH;MACJ;;MACD,KAAK2nC,aAAL,GAAqB4c,gBAAgB,CAACuoD,eAAjB,CAAiC,KAAKT,iBAAtC,EAAyD;QAC1EviG,KAAK,EAAEy6C,gBAAgB,CAACnnD,MADkD;QAE1EsrC,QAF0E;QAG1EqkE,WAAW,EAAE,KAAKH,UAHwD;QAI1EI,gBAAgB,EAAE,KAAKC;MAJmD,CAAzD,CAArB;IAMH;EACJ;EACD;;;EACAzqD,WAAW,GAAG;IACV,IAAI,KAAKoqD,UAAT,EACI,KAAKA,UAAL,CAAgBloE,OAAhB;EACP;;AArCmB;;AAuCxB0nE,iBAAiB,CAAC1oF,IAAlB;EAAA,iBAA8G0oF,iBAA9G,EA5zFmGhoC,+DA4zFnG,CAAiJA,2DAAjJ;AAAA;;AACAgoC,iBAAiB,CAACtnE,IAAlB,kBA7zFmGs/B,+DA6zFnG;EAAA,MAAkGgoC,iBAAlG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WA7zFmGhoC,kEA6zFnG;AAAA;;AACA;EAAA,mDA9zFmGA,+DA8zFnG,CAA2FgoC,iBAA3F,EAA0H,CAAC;IAC/Gt0F,IAAI,EAAEmqB,oDADyG;IAE/GrwB,IAAI,EAAE,CAAC;MACCmvB,QAAQ,EAAE,qBADX;MAECorE,UAAU,EAAE;IAFb,CAAD;EAFyG,CAAD,CAA1H,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAEr0F,IAAI,EAAEssD,2DAAmB3rB;IAA3B,CAAD,CAAP;EAAyC,CANnF,EAMqG;IAAE4zD,iBAAiB,EAAE,CAAC;MAC3Gv0F,IAAI,EAAEqlB,gDAAKA;IADgG,CAAD,CAArB;IAErFuvE,yBAAyB,EAAE,CAAC;MAC5B50F,IAAI,EAAEqlB,gDAAKA;IADiB,CAAD,CAF0D;IAIrF8vE,wBAAwB,EAAE,CAAC;MAC3Bn1F,IAAI,EAAEqlB,gDAAKA;IADgB,CAAD,CAJ2D;IAMrFovE,yBAAyB,EAAE,CAAC;MAC5Bz0F,IAAI,EAAEqlB,gDAAKA;IADiB,CAAD,CAN0D;IAQrFqvE,gCAAgC,EAAE,CAAC;MACnC10F,IAAI,EAAEqlB,gDAAKA;IADwB,CAAD;EARmD,CANrG;AAAA,MAiBA;;;AACA,SAAS0vE,iBAAT,CAA2BnkE,QAA3B,EAAqC;EACjC,MAAMwkE,cAAc,GAAGxkE,QAAQ,CAAClpB,GAAT,CAAa4zE,sDAAb,CAAvB;EACA,OAAO8Z,cAAc,CAACxkE,QAAtB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwmC,WAAW,GAAG,OAAOhrD,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;;AACA,MAAMipF,cAAN,CAAqB;EACjBzwG,WAAW,CAACq9C,SAAD,EAAYqzD,OAAZ,EAAqBtjG,KAArB,EAA4BmvD,KAA5B,EAAmC;IAC1C,KAAKlf,SAAL,GAAiBA,SAAjB;IACA,KAAKqzD,OAAL,GAAeA,OAAf;IACA,KAAKtjG,KAAL,GAAaA,KAAb;IACA,KAAKmvD,KAAL,GAAaA,KAAb;EACH;;EACQ,IAALpgD,KAAK,GAAG;IACR,OAAO,KAAK/O,KAAL,KAAe,CAAtB;EACH;;EACO,IAAJ+hD,IAAI,GAAG;IACP,OAAO,KAAK/hD,KAAL,KAAe,KAAKmvD,KAAL,GAAa,CAAnC;EACH;;EACO,IAAJo0C,IAAI,GAAG;IACP,OAAO,KAAKvjG,KAAL,GAAa,CAAb,KAAmB,CAA1B;EACH;;EACM,IAAHwjG,GAAG,GAAG;IACN,OAAO,CAAC,KAAKD,IAAb;EACH;;AAlBgB;AAoBrB;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,MAAM5pD,OAAN,CAAc;EACV/mD,WAAW,CAAC6wG,cAAD,EAAiBC,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKF,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,OAAL,GAAe,IAAf;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPR,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKM,QAAL,GAAgBN,OAAhB;IACA,KAAKO,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,IAAZE,YAAY,CAACxnG,EAAD,EAAK;IACjB,IAAI6oE,WAAW,IAAI7oE,EAAE,IAAI,IAArB,IAA6B,OAAOA,EAAP,KAAc,UAA/C,EAA2D;MACvD;MACA,IAAIuW,OAAO,IAAIA,OAAO,CAAC6S,IAAvB,EAA6B;QACzB7S,OAAO,CAAC6S,IAAR,CAAc,4CAA2CmG,IAAI,CAACk4E,SAAL,CAAeznG,EAAf,CAAmB,IAA/D,GACR,oFADL;MAEH;IACJ;;IACD,KAAK0nG,UAAL,GAAkB1nG,EAAlB;EACH;;EACe,IAAZwnG,YAAY,GAAG;IACf,OAAO,KAAKE,UAAZ;EACH;EACD;AAC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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,MAAM6oB,IAAN,CAAW;EACPjkC,WAAW,CAAC6wG,cAAD,EAAiBrnE,WAAjB,EAA8B;IACrC,KAAKqnE,cAAL,GAAsBA,cAAtB;IACA,KAAKh8C,QAAL,GAAgB,IAAIu9C,WAAJ,EAAhB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKH,gBAAL,GAAwB7oE,WAAxB;EACH;EACD;AACJ;AACA;;;EACY,IAAJipE,IAAI,CAACC,SAAD,EAAY;IAChB,KAAK79C,QAAL,CAAcxX,SAAd,GAA0B,KAAKwX,QAAL,CAAc49C,IAAd,GAAqBC,SAA/C;;IACA,KAAKC,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARC,QAAQ,CAACppE,WAAD,EAAc;IACtBqpE,cAAc,CAAC,UAAD,EAAarpE,WAAb,CAAd;IACA,KAAK6oE,gBAAL,GAAwB7oE,WAAxB;I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AAiB,QAArB,EAA+B;MAC3B,MAAM20G,wBAAwB,CAACsB,aAAD,EAAgBj2G,KAAhB,CAA9B;IACH;;IACD,OAAOA,KAAK,CAACsN,WAAN,EAAP;EACH;;AARe;;AAUpB2oG,aAAa,CAACvwF,IAAd;EAAA,iBAA0GuwF,aAA1G;AAAA;;AACAA,aAAa,CAACN,KAAd,kBA1qImGvvC,0DA0qInG;EAAA;EAAA,MAAwG6vC,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA3qImG7vC,+DA2qInG,CAA2F6vC,aAA3F,EAAsH,CAAC;IAC3Gn8F,IAAI,EAAE47E,+CADqG;IAE3G9hF,IAAI,EAAE,CAAC;MACCjH,IAAI,EAAE,WADP;MAECwhG,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM+H,0BAA0B,GAAG,IAAIzhB,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;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;AA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AACA;AACA;;AACA,MAAMC,wBAAwB,GAAG,IAAjC;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAAC9D,eAAD,EAAkBL,kBAAlB,EAAsCN,oBAAtC,CAAzB;AACA,MAAM0E,aAAa,GAAG;EAClBC,WAAW,EAAE,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,IAAnD,EAAyD,IAAzD,EAA+D,IAA/D,EAAqE,IAArE,EAA2E,IAA3E;AADK,CAAtB;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAAIhsB,yDAAJ,CAAmB,aAAnB,EAAkC;EAAE+B,UAAU,EAAE,MAAd;EAAsBvwE,OAAO,EAAE,MAAMs6F;AAArC,CAAlC,CAArB;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,MAAMG,gBAAN,CAAuB;EACnBhiH,WAAW,GAAG;IACV,KAAKiiH,WAAL,GAAmBl4F,qDAAM,CAAC0yF,YAAD,CAAzB;IACA,KAAKxzG,MAAL,GAAci5G,aAAa,CAACn4F,qDAAM,CAACg4F,YAAD,CAAP,CAA3B;IACA,KAAK9qE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AG,CAACiR,QAAJ,IAAgBnB,WAAW,KAAKzF,eAApC,EAAqD;IACjDt8F,OAAO,CAAC6S,IAAR,CAAaokE,qEAAmB,CAAC;IAAK;IAAN,EAAwD,GAAEinB,mBAAmB,CAACjM,GAAG,CAACkM,KAAL,CAAY,6CAAlC,GAClF,sEADkF,GAElF,4EAFkF,GAGlF,oFAH2B,CAAhC;EAIH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS4F,iCAAT,CAA2C9R,GAA3C,EAAgD8P,WAAhD,EAA6D;EACzD,IAAI9P,GAAG,CAAC6S,YAAJ,IAAoB/C,WAAW,KAAKzF,eAAxC,EAAyD;IACrDt8F,OAAO,CAAC6S,IAAR,CAAaokE,qEAAmB,CAAC;IAAK;IAAN,EAAwD,GAAEinB,mBAAmB,CAACjM,GAAG,CAACkM,KAAL,CAAY,iDAAlC,GAClF,sEADkF,GAElF,2FAFkF,GAGlF,+FAH2B,CAAhC;EAIH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACp2NA;AACA;AACA;AACA;AACA;AAEA;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,MAAM2K,WAAN,CAAkB;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,WAAN,CAAkB;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,WAAN,CAAkB;EACd;EACAlpH,WAAW,CAACmoB,OAAD,EAAU;IACjB;AACR;AACA;AACA;IACQ,KAAKghG,eAAL,GAAuB,IAAItuE,GAAJ,EAAvB;IACA;AACR;AACA;;IACQ,K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,eAAgB,KAAIqB,IAAI,CAAC6jG,MAAO,IAAG7jG,IAAI,CAAC8jG,UAAW,EAA3G;IACH;;IACD,KAAKnwG,KAAL,GAAaqM,IAAI,CAACrM,KAAL,IAAc,IAA3B;EACH;;AAnB4C;AAsBjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0wG,OAAT,CAAiB/yG,OAAjB,EAA0B4X,IAA1B,EAAgC;EAC5B,OAAO;IACHA,IADG;IAEHrK,OAAO,EAAEvN,OAAO,CAACuN,OAFd;IAGHa,OAAO,EAAEpO,OAAO,CAACoO,OAHd;IAIHrO,OAAO,EAAEC,OAAO,CAACD,OAJd;IAKH1G,MAAM,EAAE2G,OAAO,CAAC3G,MALb;IAMHq4G,cAAc,EAAE1xG,OAAO,CAAC0xG,cANrB;IAOHp3F,YAAY,EAAEta,OAAO,CAACsa,YAPnB;IAQHq3F,eAAe,EAAE3xG,OAAO,CAAC2xG;EARtB,CAAP;AAUH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqB,UAAN,CAAiB;EACb5tH,WAAW,CAAC83D,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;EACD;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;;;EACIhwC,OAAO,CAAC3L,KAAD,EAAQ8L,GAAR,EAAarN,OAAO,GAAG,EAAvB,EAA2B;IAC9B,IAAIizG,GAAJ,CAD8B,CAE9B;;IACA,IAAI1xG,KAAK,YAAYgwG,WAArB,EAAk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GAAG;EACrBC,MAAM,EAAEC,YAAY,CAAC,IAAD,CADC;EAErBC,eAAe,EAAE;AAFI,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,uBAAuB,GAAG,KAA9B;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,+BAAT,GAA2C;EACvC,OAAOL,gBAAgB,CAACC,MAAjB,CAAwBh6G,MAAxB,KAAmC,IAA1C;AACH;;AACD,SAASq6G,oBAAT,GAAgC;EAC5B,OAAON,gBAAgB,CAACC,MAAjB,CAAwBM,iBAA/B;AACH;;AACD,SAASC,yBAAT,GAAqC;EACjCR,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASE,yBAAT,GAAqC;EACjCT,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASG,kBAAT,GAA8B;EAC1B,OAAOV,gBAAgB,CAACG,eAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,gBAAT,GAA4B;EACxBX,gBAAgB,CAACG,eAAjB,GAAmC,IAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,iBAAT,GAA6B;EACzBZ,gBAAgB,CAACG,eAAjB,GAAmC,KAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASU,QAAT,GAAoB;EAChB,OAAOb,gBAAgB,CAACC,MAAjB,CAAwBhF,KAA/B;AACH;AACD;AACA;AACA;;;AACA,SAAS6F,QAAT,GAAoB;EAChB,OAAOd,gBAAgB,CAACC,MAAjB,CAAwB5L,KAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS93F,aAAT,CAAuBwkG,aAAvB,EAAsC;EAClCf,gBAAgB,CAACC,MAAjB,CAAwBe,YAAxB,GAAuCD,aAAvC;EACA,OAAOA,aAAa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A;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,MAAMC,mBAAN,CAA0B;EACtB5rI,WAAW;EACX;AACJ;AACA;EACIunB,OAJW;EAKX;AACJ;AACA;EACIskH,cARW,EAQKC,oBARL,EAQ2B;IAClC,KAAKvkH,OAAL,GAAeA,OAAf;IACA;AACR;AACA;AACA;;IACQ,KAAKwkH,SAAL,GAAiB,KAAjB;IACAvkH,SAAS,IAAI+uG,aAAa,CAAChvG,OAAD,EAAU,uBAAV,CAA1B;IACAC,SAAS,IAAIuuG,WAAW,CAAC,OAAOxuG,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;IACA,KAAKykH,mBAAL,GAA2BH,cAA3B;IACA,KAAKI,UAAL,GAAkBH,oBAAlB;EACH;;AApBqB;;AAsB1B,SAASI,SAAT,CAAmBrsI,GAAnB,EAAwB;EACpB,OAAOA,GAAG,YAAY+rI,mBAAtB;AACH,EACD;AACA;;;AACA,MAAMO,+BAA+B,GAAG,CAAxC;AAEA;AACA;AACA;AACA;;AACA,SAASC,mBAAT,CAA6BC,SAA7B,EAAwC;EACpC,IAAI3nH,IAAI,GAAG,EAAX;EACC2nH,SAAS,GAAG;EAAE;EAAf,IAAyC3nH,IAAI,IAAI,OAAjD;EACC2nH,SAAS,GAAG;EAAE;EAAf,IAA4C3nH,IAAI,IAAI,UAApD;EACC2nH,SAAS,GAAG;EAAE;EAAf,IAA8C3nH,IAAI,IAAI,YAAtD;EACC2nH,SAAS,GAAG;EAAE;EAAf,IAAqD3nH,IAAI,IAAI,mBAA7D;EACC2nH,SAAS,GAAG;EAAG;EAAhB,IAAgD3nH,IAAI,IAAI,aAAxD;EACC2nH,SAAS,GAAG;EAAG;EAAhB,IAAyC3nH,IAAI,IAAI,eAAjD;EACC2nH,SAAS,GAAG;EAAG;EAAhB,IAAiD3nH,IAAI,IAAI,cAAzD;EACA,OAAOA,IAAI,CAAChkB,MAAL,GAAc,CAAd,GAAkBgkB,IAAI,CAACyS,SAAL,CAAe,CAAf,CAAlB,GAAsCzS,IAA7C;AACH,EACD;AACA;;;AACA,MAAM4nH,+BAA+B,GAAG,CAAxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAuBpT,KAAvB,EAA8B;EAC1B,OAAO,CAACA,KAAK,CAACxjB,KAAN,GAAc;EAAG;EAAlB,MAAsD,CAA7D;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS62B,aAAT,CAAuBrT,KAAvB,EAA8B;EAC1B,OAAO,CAACA,KAAK,CAACxjB,KAAN,GAAc;EAAG;EAAlB,MAAsD,CAA7D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS82B,eAAT,CAAyBtT,KAAzB,EAAgCuT,aAAhC,EAA+CxvH,OAA/C,EAAwD;EACpDq5G,aAAa,CAAC4C,KAAD,EAAQ,+BAAR,CAAb;;EACA,IAAI,CAACA,KAAK,CAAC/9G,IAAN,GAAasxH,aAAd,MAAiC,CAArC,EAAwC;IACpCjyE,UAAU,CAACv9C,OAAO,IACb,aAAYkvH,mBAAmB,CAACM,aAAD,CAAgB,aAAYN,mBAAmB,CAACjT,KAAK,CAAC/9G,IAAP,CAAa,GADtF,CAAV;EAEH;AACJ;;AACD,SAASuxH,mBAAT,CAA6BvxH,IAA7B,EAAmC;EAC/B,IAAI,EAAEA,IAAI,KAAK;EAAE;EAAX,GAAsC;EACxCA,IAAI,KAAK;EAAE;EADT,GACiC;EACnCA,IAAI,KAAK;EAAE;EAFT,GAEsC;EACxCA,IAAI,KAAK;EAAE;EAHT,GAG6C;EAC/CA,IAAI,KAAK;EAAG;EAJV,GAIiC;EACnCA,IAAI,KAAK;EAAG;EALV,GAKwC;EAC1CA,IAAI,KAAK;EAAG;EANZ,CAAJ,EAM8C;IAC1Cq/C,UAAU,CAAE,mEAAkE2xE,mBAAmB,CAAChxH,IAAD,CAAO,GAA9F,CAAV;EACH;AACJ;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,SAASwxH,eAAT,CAAyB31F,QAAzB,EAAmC41F,MAAnC,EAA2C3kI,KAA3C,EAAkD;EAC9C,IAAIzH,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGyH,KAAK,CAACxH,MAAjB,EAAyB;IACrB,MAAMY,KAAK,GAAG4G,KAAK,CAACzH,CAAD,CAAnB;;IACA,IAAI,OAAOa,KAAP,KAAiB,QAArB,EAA+B;MAC3B;MACA;MACA,IAAIA,KAAK,KAAK;MAAE;MAAhB,EAAoD;QAChD;MACH,CAL0B,CAM3B;MACA;;;MACAb,CAAC;MACD,MAAMqsI,YAAY,GAAG5kI,KAAK,CAACzH,CAAC,EAAF,CAA1B;MACA,MAAM+zG,QAAQ,GAAGtsG,KAAK,CAACzH,CAAC,EAAF,CAAtB;MACA,MAAMssI,OAAO,GAAG7kI,KAAK,CAACzH,CAAC,EAAF,CAArB;MACA+mB,SAAS,IAAIA,SAAS,CAACiyG,oBAAV,EAAb;MACAxiF,QAAQ,CAAC5oC,YAAT,CAAsBw+H,MAAtB,EAA8Br4B,QAA9B,EAAwCu4B,OAAxC,EAAiDD,YAAjD;IACH,CAdD,MAeK;MACD;MACA,MAAMt4B,QAAQ,GAAGlzG,KAAjB;MACA,MAAMyrI,OAAO,GAAG7kI,KAAK,CAAC,EAAEzH,CAAH,CAArB,CAHC,CAID;;MACA+mB,SAAS,IAAIA,SAAS,CAACiyG,oBAAV,EAAb;;MACA,IAAIuT,eAAe,CAACx4B,QAAD,CAAnB,EAA+B;QAC3Bv9D,QAAQ,CAACg2F,WAAT,CAAqBJ,MAArB,EAA6Br4B,QAA7B,EAAuCu4B,OAAvC;MACH,CAFD,MAGK;QACD91F,QAAQ,CAAC5oC,YAAT,CAAsBw+H,MAAtB,EAA8Br4B,QAA9B,EAAwCu4B,OAAxC;MACH;;MACDtsI,CAAC;IACJ;EACJ,CAjC6C,CAkC9C;EACA;EACA;EACA;;;EACA,OAAOA,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASysI,yBAAT,CAAmCC,MAAnC,EAA2C;EACvC,OAAOA,MAAM,KAAK;EAAE;EAAb,GAA+CA,MAAM,KAAK;EAAE;EAA5D,GACHA,MAAM,KAAK;EAAE;EADjB;AAEH;;AACD,SAASH,eAAT,CAAyB/+H,IAAzB,EAA+B;EAC3B;EACA;EACA;EACA,OAAOA,IAAI,CAACwI,UAAL,CAAgB,CAAhB,MAAuB;EAAG;EAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS22H,cAAT,CAAwBC,GAAxB,EAA6B73G,GAA7B,EAAkC;EAC9B,IAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAAC90B,MAAJ,KAAe,CAAnC,EAAsC,CAClC;EACH,CAFD,MAGK,IAAI2sI,GAAG,KAAK,IAAR,IAAgBA,GAAG,CAAC3sI,MAAJ,KAAe,CAAnC,EAAsC;IACvC;IACA2sI,GAAG,GAAG73G,GAAG,CAAC1lB,KAAJ,EAAN;EACH,CAHI,MAIA;IACD,IAAIw9H,SAAS,GAAG,CAAC;IAAE;IAAnB;;IACA,KAAK,IAAI7sI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+0B,GAAG,CAAC90B,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;MACjC,MAAMo9C,IAAI,GAAGroB,GAAG,CAAC/0B,CAAD,CAAhB;;MACA,IAAI,OAAOo9C,IAAP,KAAgB,QAApB,EAA8B;QAC1ByvF,SAAS,GAAGzvF,IAAZ;MACH,CAFD,MAGK;QACD,IAAIyvF,SAAS,KAAK;QAAE;QAApB,EAAwD,CACpD;QACH,CAFD,MAGK,IAAIA,SAAS,KAAK,CAAC;QAAE;QAAjB,GACLA,SAAS,KAAK;QAAE;QADf,EAC6C;UAC9C;UACAC,kBAAkB,CAACF,GAAD,EAAMC,SAAN,EAAiBzvF,IAAjB,EAAuB,IAAvB,EAA6BroB,GAAG,CAAC,EAAE/0B,CAAH,CAAhC,CAAlB;QACH,CAJI,MAKA;UACD;UACA8sI,kBAAkB,CAACF,GAAD,EAAMC,SAAN,EAAiBzvF,IAAjB,EAAuB,IAAvB,EAA6B,IAA7B,CAAlB;QACH;MACJ;IACJ;EACJ;;EACD,OAAOwvF,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,kBAAT,CAA4BF,GAA5B,EAAiCF,MAAjC,EAAyCzoD,IAAzC,EAA+CC,IAA/C,EAAqDrjF,KAArD,EAA4D;EACxD,IAAIb,CAAC,GAAG,CAAR,CADwD,CAExD;;EACA,IAAI+sI,oBAAoB,GAAGH,GAAG,CAAC3sI,MAA/B,CAHwD,CAIxD;;EACA,IAAIysI,MAAM,KAAK,CAAC;EAAE;EAAlB,EAA4D;IACxDK,oBAAoB,GAAG,CAAC,CAAxB;EACH,CAFD,MAGK;IACD,OAAO/sI,CAAC,GAAG4sI,GAAG,CAAC3sI,MAAf,EAAuB;MACnB,MAAM+sI,QAAQ,GAAGJ,GAAG,CAAC5sI,CAAC,EAAF,CAApB;;MACA,IAAI,OAAOgtI,QAAP,KAAoB,QAAxB,EAAkC;QAC9B,IAAIA,QAAQ,KAAKN,MAAjB,EAAyB;UACrBK,oBAAoB,GAAG,CAAC,CAAxB;UACA;QACH,CAHD,MAIK,IAAIC,QAAQ,GAAGN,MAAf,EAAuB;UACxB;UACAK,oBAAoB,GAAG/sI,CAAC,GAAG,CAA3B;UACA;QACH;MACJ;IACJ;EACJ,CAvBuD,CAwBxD;;;EACA,OAAOA,CAAC,GAAG4sI,GAAG,CAAC3sI,MAAf,EAAuB;IACnB,MAAMm9C,IAAI,GAAGwvF,GAAG,CAAC5sI,CAAD,CAAhB;;IACA,IAAI,OAAOo9C,IAAP,KAAgB,QAApB,EAA8B;MAC1B;MACA;MACA;IACH,CAJD,MAKK,IAAIA,IAAI,KAAK6mC,IAAb,EAAmB;MACpB;MACA,IAAIC,IAAI,KAAK,IAAb,EAAmB;QACf,IAAIrjF,KAAK,KAAK,IAAd,EAAoB;UAChB+rI,GAAG,CAAC5sI,CAAC,GAAG,CAAL,CAAH,GAAaa,KAAb;QACH;;QACD;MACH,CALD,MAMK,IAAIqjF,IAAI,KAAK0oD,GAAG,CAAC5sI,CAAC,GAAG,CAAL,CAAhB,EAAyB;QAC1B4sI,GAAG,CAAC5sI,CAAC,GAAG,CAAL,CAAH,GAAaa,KAAb;QACA;MACH;IACJ,CAnBkB,CAoBnB;;;IACAb,CAAC;IACD,IAAIkkF,IAAI,KAAK,IAAb,EACIlkF,CAAC;IACL,IAAIa,KAAK,KAAK,IAAd,EACIb,CAAC;EACR,CAnDuD,CAoDxD;;;EACA,IAAI+sI,oBAAoB,KAAK,CAAC,CAA9B,EAAiC;IAC7BH,GAAG,CAACh5E,MAAJ,CAAWm5E,oBAAX,EAAiC,CAAjC,EAAoCL,MAApC;IACA1sI,CAAC,GAAG+sI,oBAAoB,GAAG,CAA3B;EACH;;EACDH,GAAG,CAACh5E,MAAJ,CAAW5zD,CAAC,EAAZ,EAAgB,CAAhB,EAAmBikF,IAAnB;;EACA,IAAIC,IAAI,KAAK,IAAb,EAAmB;IACf0oD,GAAG,CAACh5E,MAAJ,CAAW5zD,CAAC,EAAZ,EAAgB,CAAhB,EAAmBkkF,IAAnB;EACH;;EACD,IAAIrjF,KAAK,KAAK,IAAd,EAAoB;IAChB+rI,GAAG,CAACh5E,MAAJ,CAAW5zD,CAAC,EAAZ,EAAgB,CAAhB,EAAmBa,KAAnB;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASosI,iBAAT,CAA2BC,cAA3B,EAA2C;EACvC,OAAOA,cAAc,KAAKhC,kBAA1B;AACH;;AACD,SAASiC,sBAAT,CAAgCD,cAAhC,EAAgD;EAC5CnmH,SAAS,IAAI8tG,YAAY,CAACqY,cAAD,EAAiB,iBAAjB,CAAzB;EACAnmH,SAAS,IAAIyuG,cAAc,CAAC0X,cAAD,EAAiB,CAAC,CAAlB,EAAqB,oBAArB,CAA3B;EACA,MAAME,mBAAmB,GAAGF,cAAc,GAAG;EAAM;EAAnD;EACAnmH,SAAS,IACL6uG,iBAAiB,CAACwX,mBAAD,EAAsB/O,aAAtB,EAAqC,sDAArC,CADrB;EAEA,OAAO6O,cAAc,GAAG;EAAM;EAA9B;AACH;;AACD,SAASG,2BAAT,CAAqCH,cAArC,EAAqD;EACjD,OAAOA,cAAc,IAAI;EAAG;EAA5B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,qBAAT,CAA+BtkH,QAA/B,EAAyCukH,SAAzC,EAAoD;EAChD,IAAIC,UAAU,GAAGH,2BAA2B,CAACrkH,QAAD,CAA5C;EACA,IAAIykH,UAAU,GAAGF,SAAjB,CAFgD,CAGhD;EACA;EACA;EACA;;EACA,OAAOC,UAAU,GAAG,CAApB,EAAuB;IACnBC,UAAU,GAAGA,UAAU,CAAC3P,gBAAD,CAAvB;IACA0P,UAAU;EACb;;EACD,OAAOC,UAAP;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,IAAIC,oBAAoB,GAAG,IAA3B;;AACA,SAASC,uBAAT,CAAiCjoH,CAAjC,EAAoC;EAChC,MAAMmrE,QAAQ,GAAG68C,oBAAjB;EACAA,oBAAoB,GAAGhoH,CAAvB;EACA,OAAOmrE,QAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAM+8C,UAAU,GAAG,GAAnB;AACA,MAAMC,UAAU,GAAGD,UAAU,GAAG,CAAhC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAME,iBAAiB,GAAG,CAA1B;AACA;;AACA,IAAIC,eAAe,GAAG,CAAtB;AACA;;AACA,MAAMC,SAAS,GAAG,EAAlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,QAAT,CAAkBzM,aAAlB,EAAiC7I,KAAjC,EAAwCh+G,IAAxC,EAA8C;EAC1CoM,SAAS,IAAIuuG,WAAW,CAACqD,KAAK,CAACF,eAAP,EAAwB,IA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le,QAAQ,GAAG,IAAX;IACH,CAFI,MAGA,IAAI8oF,aAAa,YAAY7wB,IAAzB,IAAiC6wB,aAAa,YAAY34B,QAA9D,EAAwE;MACzEjsG,UAAU,GAAG4kI,aAAb;IACH,CAFI,MAGA,IAAIA,aAAa,YAAY7qE,cAA7B,EAA6C;MAC9CzuE,KAAK,GAAGs5I,aAAR;IACH;EACJ;;EACDt5I,KAAK,GAAG6sG,iBAAiB,CAAC7sG,KAAD,CAAzB;;EACA,IAAIA,KAAK,IAAI,IAAb,EAAmB;IACf,OAAOq5I,iBAAiB,CAACr5I,KAAD,EAAQwwD,QAAR,EAAkB97C,UAAlB,CAAxB;EACH,CAFD,MAGK;IACD,MAAMuiI,iBAAiB,CAAC7lB,UAAD,EAAazkI,MAAb,CAAvB;EACH;AACJ;;AACD,SAAS0sJ,iBAAT,CAA2Br5I,KAA3B,EAAkCwwD,QAAlC,EAA4C97C,UAA5C,EAAwD;EACpD,OAAO,IAAIqjI,oBAAJ,CAAyBP,aAAa,CAACh8I,GAAd,CAAkBwE,KAAlB,CAAzB,EAAmDwwD,QAAnD,EAA6D97C,UAA7D,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6kI,SAAS,GAAG,EAAlB;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,kBAAN,CAAyB;EACrB;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;EACkB,OAAPz1J,OAAO,CAACq5B,SAAD,EAAY;IACtB,OAAO07H,0BAA0B,CAAC17H,SAAD,CAAjC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC2B,OAAhBq8H,gBAAgB,CAACr8H,SAAD,EAAY1Z,MAAZ,EAAoB;IACvC,MAAMg2I,2BAA2B,GAAGF,kBAAkB,CAACz1J,OAAnB,CAA2Bq5B,SAA3B,CAApC;IACA,OAAOo8H,kBAAkB,CAACG,qBAAnB,CAAyCD,2BAAzC,EAAsEh2I,MAAtE,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgC,OAArBi2I,qBAAqB,CAACv8H,SAAD,EAAY1Z,MAAZ,EAAoB;IAC5C,OAAO,IAAIk2I,mBAAJ,CAAwBx8H,SAAxB,EAAmC1Z,MAAnC,CAAP;EACH;;AAzFoB;;AA2FzB,MAAMk2I,mBAAN,CAA0B;EACtB;AACJ;AACA;EACIlhK,WAAW,CAAC0qC,UAAD,EAAay2H,OAAb,EAAsB;IAC7B;IACA,KAAKC,oBAAL,GAA4B,CAA5B;IACA,KAAK12H,UAAL,GAAkBA,UAAlB;IACA,KAAK1f,MAAL,GAAcm2I,OAAO,IAAI,IAAzB;IACA,MAAM1pH,GAAG,GAAG/M,UAAU,CAAChqC,MAAvB;IACA,KAAK2gK,MAAL,GAAc,EAAd;IACA,KAAKC,IAAL,GAAY,EAAZ;;IACA,KAAK,IAAI7gK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGg3C,GAApB,EAAyBh3C,CAAC,EAA1B,EAA8B;MAC1B,KAAK4gK,MAAL,CAAY5gK,CAAZ,IAAiBiqC,UAAU,CAACjqC,CAAD,CAAV,CAAcQ,GAAd,CAAkB+N,EAAnC;MACA,KAAKsyJ,IAAL,CAAU7gK,CAAV,IAAeogK,SAAf;IACH;EACJ;;EACD/9I,GAAG,CAACwE,KAAD,EAAQ2wG,aAAa,GAAGwhB,kBAAxB,EAA4C;IAC3C,OAAO,KAAK8nB,SAAL,CAAezC,aAAa,CAACh8I,GAAd,CAAkBwE,KAAlB,CAAf,EAAyC,IAAzC,EAA+C2wG,aAA/C,CAAP;EACH;;EACDupC,qBAAqB,CAAC98H,SAAD,EAAY;IAC7B,MAAMs8H,2BAA2B,GAAGF,kBAAkB,CAACz1J,OAAnB,CAA2Bq5B,SAA3B,CAApC;IACA,OAAO,KAAK+8H,uBAAL,CAA6BT,2BAA7B,CAAP;EACH;;EACDS,uBAAuB,CAAC/8H,SAAD,EAAY;IAC/B,MAAMg9H,GAAG,GAAG,IAAIR,mBAAJ,CAAwBx8H,SAAxB,CAAZ;IACAg9H,GAAG,CAAC12I,MAAJ,GAAa,IAAb;IACA,OAAO02I,GAAP;EACH;;EACDC,qBAAqB,CAACj2H,QAAD,EAAW;IAC5B,OAAO,KAAKk2H,mBAAL,CAAyBd,kBAAkB,CAACz1J,OAAnB,CAA2B,CAACqgC,QAAD,CAA3B,EAAuC,CAAvC,CAAzB,CAAP;EACH;;EACDk2H,mBAAmB,CAACl2H,QAAD,EAAW;IAC1B,OAAO,KAAKm2H,oBAAL,CAA0Bn2H,QAA1B,CAAP;EACH;;EACDo2H,kBAAkB,CAAC10J,KAAD,EAAQ;IACtB,IAAIA,KAAK,GAAG,CAAR,IAAaA,KAAK,IAAI,KAAKs9B,UAAL,CAAgBhqC,MAA1C,EAAkD;MAC9C,MAAMg+J,gBAAgB,CAACtxJ,KAAD,CAAtB;IACH;;IACD,OAAO,KAAKs9B,UAAL,CAAgBt9B,KAAhB,CAAP;EACH;EACD;;;EACA20J,IAAI,CAACr2H,QAAD,EAAW;IACX,IAAI,KAAK01H,oBAAL,KAA8B,KAAKY,sBAAL,EAAlC,EAAiE;MAC7D,MAAM9D,qBAAqB,CAAC,IAAD,EAAOxyH,QAAQ,CAACzqC,GAAhB,CAA3B;IACH;;IACD,OAAO,KAAK4gK,oBAAL,CAA0Bn2H,QAA1B,CAAP;EACH;;EACDs2H,sBAAsB,GAAG;IACrB,OAAO,KAAKV,IAAL,CAAU5gK,MAAjB;EACH;;EACDmhK,oBAAoB,CAACn2H,QAAD,EAAW;IAC3B,IAAIA,QAAQ,CAACg0H,aAAb,EAA4B;MACxB,MAAMrhE,GAAG,GAAG,EAAZ;;MACA,KAAK,IAAI59F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGirC,QAAQ,CAAC+zH,iBAAT,CAA2B/+J,MAA/C,EAAuD,EAAED,CAAzD,EAA4D;QACxD49F,GAAG,CAAC59F,CAAD,CAAH,GAAS,KAAKwhK,YAAL,CAAkBv2H,QAAlB,EAA4BA,QAAQ,CAAC+zH,iBAAT,CAA2Bh/J,CAA3B,CAA5B,CAAT;MACH;;MACD,OAAO49F,GAAP;IACH,CAND,MAOK;MACD,OAAO,KAAK4jE,YAAL,CAAkBv2H,QAAlB,EAA4BA,QAAQ,CAAC+zH,iBAAT,CAA2B,CAA3B,CAA5B,CAAP;IACH;EACJ;;EACDwC,YAAY,CAACv2H,QAAD,EAAWk0H,yBAAX,EAAsC;IAC9C,MAAMr4I,OAAO,GAAGq4I,yBAAyB,CAACr4I,OAA1C;IACA,IAAIulF,IAAJ;;IACA,IAAI;MACAA,IAAI,GACA8yD,yBAAyB,CAAC77H,YAA1B,CAAuCx8B,GAAvC,CAA2C4zI,GAAG,IAAI,KAAK+mB,0BAAL,CAAgC/mB,GAAhC,CAAlD,CADJ;IAEH,CAHD,CAIA,OAAO32I,CAAP,EAAU;MACN,IAAIA,CAAC,CAACu5J,MAAN,EAAc;QACVv5J,CAAC,CAACu5J,MAAF,CAAS,IAAT,EAAeryH,QAAQ,CAACzqC,GAAxB;MACH;;MACD,MAAMuD,CAAN;IACH;;IACD,IAAI3E,GAAJ;;IACA,IAAI;MACAA,GAAG,GAAG0nB,OAAO,CAAC,GAAGulF,IAAJ,CAAb;IACH,CAFD,CAGA,OAAOtoG,CAAP,EAAU;MACN,MAAM25J,kBAAkB,CAAC,IAAD,EAAO35J,CAAP,EAAUA,CAAC,CAAC2Y,KAAZ,EAAmBuuB,QAAQ,CAACzqC,GAA5B,CAAxB;IACH;;IACD,OAAOpB,GAAP;EACH;;EACDqiK,0BAA0B,CAAC/mB,GAAD,EAAM;IAC5B,OAAO,KAAKomB,SAAL,CAAepmB,GAAG,CAACl6I,GAAnB,EAAwBk6I,GAAG,CAACn/G,UAA5B,EAAwCm/G,GAAG,CAACrjE,QAAJ,GAAe,IAAf,GAAsB2hE,kBAA9D,CAAP;EACH;;EACD8nB,SAAS,CAACtgK,GAAD,EAAM+6B,UAAN,EAAkBi8F,aAAlB,EAAiC;IACtC,IAAIh3H,GAAG,KAAKigK,mBAAmB,CAACiB,YAAhC,EAA8C;MAC1C,OAAO,IAAP;IACH;;IACD,IAAInmI,UAAU,YAAY+zG,IAA1B,EAAgC;MAC5B,OAAO,KAAKqyB,aAAL,CAAmBnhK,GAAnB,EAAwBg3H,aAAxB,CAAP;IACH,CAFD,MAGK;MACD,OAAO,KAAKoqC,gBAAL,CAAsBphK,GAAtB,EAA2Bg3H,aAA3B,EAA0Cj8F,UAA1C,CAAP;IACH;EACJ;;EACDsmI,cAAc,CAACC,KAAD,EAAQ;IAClB,KAAK,IAAI9hK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK4gK,MAAL,CAAY3gK,MAAhC,EAAwCD,CAAC,EAAzC,EAA6C;MACzC,IAAI,KAAK4gK,MAAL,CAAY5gK,CAAZ,MAAmB8hK,KAAvB,EAA8B;QAC1B,IAAI,KAAKjB,IAAL,CAAU7gK,CAAV,MAAiBogK,SAArB,EAAgC;UAC5B,KAAKS,IAAL,CAAU7gK,CAAV,IAAe,KAAKshK,IAAL,CAAU,KAAKr3H,UAAL,CAAgBjqC,CAAhB,CAAV,CAAf;QACH;;QACD,OAAO,KAAK6gK,IAAL,CAAU7gK,CAAV,CAAP;MACH;IACJ;;IACD,OAAOogK,SAAP;EACH;EACD;;;EACA2B,YAAY,CAACvhK,GAAD,EAAMg3H,aAAN,EAAqB;IAC7B,IAAIA,aAAa,KAAKwhB,kBAAtB,EAA0C;MACtC,OAAOxhB,aAAP;IACH,CAFD,MAGK;MACD,MAAMgmC,eAAe,CAAC,IAAD,EAAOh9J,GAAP,CAArB;IACH;EACJ;EACD;;;EACAmhK,aAAa,CAACnhK,GAAD,EAAMg3H,aAAN,EAAqB;IAC9B,MAAMp4H,GAAG,GAAG,KAAKyiK,cAAL,CAAoBrhK,GAAG,CAAC+N,EAAxB,CAAZ;;IACA,OAAQnP,GAAG,KAAKghK,SAAT,GAAsBhhK,GAAtB,GAA4B,KAAK2iK,YAAL,CAAkBvhK,GAAlB,EAAuBg3H,aAAvB,CAAnC;EACH;EACD;;;EACAoqC,gBAAgB,CAACphK,GAAD,EAAMg3H,aAAN,EAAqBj8F,UAArB,EAAiC;IAC7C,IAAI0lI,GAAJ;;IACA,IAAI1lI,UAAU,YAAYisG,QAA1B,EAAoC;MAChCy5B,GAAG,GAAG,KAAK12I,MAAX;IACH,CAFD,MAGK;MACD02I,GAAG,GAAG,IAAN;IACH;;IACD,OAAOA,GAAG,YAAYR,mBAAtB,EAA2C;MACvC,MAAMuB,IAAI,GAAGf,GAAb;;MACA,MAAM7hK,GAAG,GAAG4iK,IAAI,CAACH,cAAL,CAAoBrhK,GAAG,CAAC+N,EAAxB,CAAZ;;MACA,IAAInP,GAAG,KAAKghK,SAAZ,EACI,OAAOhhK,GAAP;MACJ6hK,GAAG,GAAGe,IAAI,CAACz3I,MAAX;IACH;;IACD,IAAI02I,GAAG,KAAK,IAAZ,EAAkB;MACd,OAAOA,GAAG,CAAC5+I,GAAJ,CAAQ7hB,GAAG,CAACqmB,KAAZ,EAAmB2wG,aAAnB,CAAP;IACH,CAFD,MAGK;MACD,OAAO,KAAKuqC,YAAL,CAAkBvhK,GAAlB,EAAuBg3H,aAAvB,CAAP;IACH;EACJ;;EACc,IAAX8mC,WAAW,GAAG;IACd,MAAMr6H,SAAS,GAAGg+H,aAAa,CAAC,IAAD,EAAQzsJ,CAAD,IAAO,OAAOA,CAAC,CAAChV,GAAF,CAAM89J,WAAb,GAA2B,IAAzC,CAAb,CACbhvJ,IADa,CACR,IADQ,CAAlB;;IAEA,OAAQ,kCAAiC20B,SAAU,IAAnD;EACH;;EACD3hC,QAAQ,GAAG;IACP,OAAO,KAAKg8J,WAAZ;EACH;;AA1JqB;;AA4J1BmC,mBAAmB,CAACiB,YAApB,GAAqC,eAAerD,aAAa,CAACh8I,GAAd,CAAkBimB,QAAlB,CAApD;;AACA,SAAS25H,aAAT,CAAuB12H,QAAvB,EAAiCriC,EAAjC,EAAqC;EACjC,MAAM00F,GAAG,GAAG,EAAZ;;EACA,KAAK,IAAI59F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGurC,QAAQ,CAACtB,UAAT,CAAoBhqC,MAAxC,EAAgD,EAAED,CAAlD,EAAqD;IACjD49F,GAAG,CAAC59F,CAAD,CAAH,GAASkJ,EAAE,CAACqiC,QAAQ,CAAC81H,kBAAT,CAA4BrhK,CAA5B,CAAD,CAAX;EACH;;EACD,OAAO49F,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASn7D,iBAAT,CAA2B5b,KAA3B,EAAkCquF,KAAK,GAAGgiB,WAAW,CAACa,OAAtD,EAA+D;EAC3D,MAAMwH,KAAK,GAAG4F,QAAQ,EAAtB,CAD2D,CAE3D;EACA;;EACA,IAAI5F,KAAK,KAAK,IAAd,EAAoB;IAChB;IACAx4G,SAAS,IAAI2wG,kCAAkC,CAACj1F,iBAAD,CAA/C;IACA,OAAO/b,QAAQ,CAACG,KAAD,EAAQquF,KAAR,CAAf;EACH;;EACD,MAAMwjB,KAAK,GAAG6M,eAAe,EAA7B;EACA,OAAOkK,qBAAqB,CAAC/W,KAAD,EAAQ6G,KAAR,EAAe7L,iBAAiB,CAAC7sG,KAAD,CAAhC,EAAyCquF,KAAzC,CAA5B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgtD,gBAAT,GAA4B;EACxB,MAAMvyG,GAAG,GAAG5oC,SAAS,GAAI,gEAAJ,GAAsE,SAA3F;EACA,MAAM,IAAIpK,KAAJ,CAAUgzC,GAAV,CAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwyG,oBAAT,CAA8B30J,IAA9B,EAAoC;EAChC;EACA,IAAIuZ,SAAJ,EAAe;IACX,IAAI;MACA;MACA;MACA;MACA,OAAQijI,wBAAwB,CAAC,OAAD,EAAW,gBAAex8I,IAAK,kBAA/B,CAAzB,CAA4EtL,KAA5E,CAAP;IACH,CALD,CAMA,OAAO6B,CAAP,EAAU;MACN;MACA,OAAO7B,KAAP;IACH;EACJ,CAXD,MAYK;IACD,MAAM,IAAIya,KAAJ,CAAU,6GAAV,CAAN;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASylJ,eAAT,CAAyBn/F,IAAzB,EAA+BjgE,IAA/B,EAAqC;EACjC+jB,SAAS,IAAIguG,mBAAmB,CAAC9xD,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACAl8C,SAAS,IAAIguG,mBAAmB,CAAC/xH,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACA,OAAQigE,IAAI,IAAI;EAAG;EAAX,EAA2CjgE,IAAI,IAAI;EAAE;EAA7D;AACH;;AACD,SAASq/J,oBAAT,CAA8BC,aAA9B,EAA6C;EACzCv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,IAAI;EAAG;EAArB,EAAsD;EAAM;EAAnE;AACH;;AACD,SAASC,6BAAT,CAAuCD,aAAvC,EAAsD;EAClDv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAE;EAAnB,KACH;EAAE;EADN;AAEH;;AACD,SAASE,oBAAT,CAA8BF,aAA9B,EAA6Cp0G,QAA7C,EAAuD;EACnDnnC,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACAv7I,SAAS,IAAIguG,mBAAmB,CAAC7mE,QAAD,EAAW,CAAX,EAAc;EAAM;EAApB,CAAhC;EACA,OAASo0G,aAAa,GAAG,CAAC;EAAW;EAA7B,EACHp0G,QAAQ,IAAI;EAAG;EADpB;AAEH;;AACD,SAASu0G,6BAAT,CAAuCH,aAAvC,EAAsD;EAClDv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,GAAG;EAAE;EAA1B;AACH;;AACD,SAASI,oBAAT,CAA8BJ,aAA9B,EAA6C;EACzCv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAO;EAAxB,KAAyD;EAAE;EAAlE;AACH;;AACD,SAASK,oBAAT,CAA8BL,aAA9B,EAA6Ct/J,IAA7C,EAAmD;EAC/C+jB,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACAv7I,SAAS,IAAIguG,mBAAmB,CAAC/xH,IAAD,EAAO,CAAP,EAAU;EAAM;EAAhB,CAAhC;EACA,OAASs/J,aAAa,GAAG,CAAC;EAAO;EAAzB,EAAyD;EAC7Dt/J,IAAI,IAAI;EAAE;EADd;AAEH;;AACD,SAAS4/J,6BAAT,CAAuCN,aAAvC,EAAsD;EAClDv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAO,CAACA,aAAa,GAAG;EAAE;EAAnB,MACH;EAAE;EADN;AAEH;;AACD,SAASO,6BAAT,CAAuCP,aAAvC,EAAsD;EAClDv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,OAAQA,aAAa,GAAG;EAAE;EAA1B;AACH;;AACD,SAASQ,oBAAT,CAA8BR,aAA9B,EAA6C;EACzCv7I,SAAS,IAAI8tG,YAAY,CAACytC,aAAD,EAAgB,iBAAhB,CAAzB;EACA,MAAMt/J,IAAI,GAAG0/J,oBAAoB,CAACJ,aAAD,CAAjC;EACA,OAAOt/J,IAAI,KAAK,CAAT,GAAaq/J,oBAAoB,CAACC,aAAD,CAAjC,GAAmDt/J,IAA1D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+/J,iBAAT,CAA2B3jK,GAA3B,EAAgC4jK,KAAhC,EAAuC;EACnC,IAAIj8I,SAAJ,EAAe;IACXzmB,MAAM,CAACC,cAAP,CAAsBnB,GAAtB,EAA2B,OAA3B,EAAoC;MAAEyB,KAAK,EAAEmiK,KAAT;MAAgB7iK,UAAU,EAAE;IAA5B,CAApC;EACH,CAFD,MAGK;IACD,MAAM,IAAIwc,KAAJ,CAAU,6FAAV,CAAN;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsmJ,iBAAT,CAA2B7jK,GAA3B,EAAgC8jK,WAAhC,EAA6C;EACzC,IAAIn8I,SAAJ,EAAe;IACXzmB,MAAM,CAACC,cAAP,CAAsBnB,GAAtB,EAA2B,OAA3B,EAAoC;MAAEijB,GAAG,EAAE6gJ,WAAP;MAAoB/iK,UAAU,EAAE;IAAhC,CAApC;EACH,CAFD,MAGK;IACD,MAAM,IAAIwc,KAAJ,CAAU,6FAAV,CAAN;EACH;AACJ;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,IAAIwmJ,qBAAJ;AACA,IAAIC,oBAAJ;AACA,IAAIC,UAAJ;AACA,IAAIC,eAAJ;AACA,IAAIC,cAAJ;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,8BAAT,CAAwC7qC,KAAxC,EAA+C;EAC3C,MAAM8qC,UAAU,GAAG9qC,KAAnB;EACA,MAAM4G,KAAK,GAAGmkC,eAAe,CAACD,UAAU,CAAC9oJ,IAAZ,EAAkBg+G,KAAK,CAACx1F,QAAN,IAAkBw1F,KAAK,CAACx1F,QAAN,CAAe31B,IAAnD,CAA7B;EACA,OAAO+xH,KAAK,CAACn+H,MAAN,CAAau3H,KAAK,CAAC4V,SAAnB,CAAP;AACH;;AACD,MAAMo1B,SAAN,SAAwBzhK,KAAxB,CAA8B;;AAE9B,MAAM0hK,cAAN,SAA6B1hK,KAA7B,CAAmC;;AAEnC,MAAM2hK,aAAN,SAA4B3hK,KAA5B,CAAkC;;AAElC,SAASwhK,eAAT,CAAyB/oJ,IAAzB,EAA+BnN,IAA/B,EAAqC;EACjC,QAAQmN,IAAR;IACI,KAAK;IAAE;IAAP;MACI,IAAI0oJ,UAAU,KAAKxgK,SAAnB,EACIwgK,UAAU,GAAG,IAAIM,SAAJ,EAAb;MACJ,OAAON,UAAP;;IACJ,KAAK;IAAE;IAAP;MACI,IAAI,CAACt8I,SAAD,IAAc,CAACA,SAAS,CAACyxG,iBAA7B,EAAgD;QAC5C,IAAI8qC,eAAe,KAAKzgK,SAAxB,EACIygK,eAAe,GAAG,IAAIM,cAAJ,EAAlB;QACJ,OAAON,eAAP;MACH;;MACD,IAAIH,qBAAqB,KAAKtgK,SAA9B,EACIsgK,qBAAqB,GAAG,IAAI/oH,GAAJ,EAAxB;MACJ,IAAI0pH,cAAc,GAAGX,qBAAqB,CAAC9gJ,GAAtB,CAA0B7U,IAA1B,CAArB;;MACA,IAAIs2J,cAAc,KAAKjhK,SAAvB,EAAkC;QAC9BihK,cAAc,GAAG,KAAK3B,oBAAoB,CAAC,mBAAmB4B,UAAU,CAACv2J,IAAD,CAA9B,CAAzB,GAAjB;QACA21J,qBAAqB,CAACn7I,GAAtB,CAA0Bxa,IAA1B,EAAgCs2J,cAAhC;MACH;;MACD,OAAOA,cAAP;;IACJ,KAAK;IAAE;IAAP;MACI,IAAI,CAAC/8I,SAAD,IAAc,CAACA,SAAS,CAACyxG,iBAA7B,EAAgD;QAC5C,IAAI+qC,cAAc,KAAK1gK,SAAvB,EACI0gK,cAAc,GAAG,IAAIM,aAAJ,EAAjB;QACJ,OAAON,cAAP;MACH;;MACD,IAAIH,oBAAoB,KAAKvgK,SAA7B,EACIugK,oBAAoB,GAAG,IAAIhpH,GAAJ,EAAvB;MACJ,IAAI4pH,aAAa,GAAGZ,oBAAoB,CAAC/gJ,GAArB,CAAyB7U,IAAzB,CAApB;;MACA,IAAIw2J,aAAa,KAAKnhK,SAAtB,EAAiC;QAC7BmhK,aAAa,GAAG,KAAK7B,oBAAoB,CAAC,kBAAkB4B,UAAU,CAACv2J,IAAD,CAA7B,CAAzB,GAAhB;QACA41J,oBAAoB,CAACp7I,GAArB,CAAyBxa,IAAzB,EAA+Bw2J,aAA/B;MACH;;MACD,OAAOA,aAAP;EAhCR;AAkCH;;AACD,SAASD,UAAT,CAAoB9/I,IAApB,EAA0B;EACtB,IAAIA,IAAI,IAAI,IAAZ,EACI,OAAO,EAAP;EACJ,MAAMtX,KAAK,GAAGsX,IAAI,CAACknF,WAAL,CAAiB,WAAjB,CAAd;EACA,OAAO,OAAOx+F,KAAK,KAAK,CAAC,CAAX,GAAesX,IAAf,GAAsBA,IAAI,CAAC5U,KAAL,CAAW,CAAX,EAAc1C,KAAd,CAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAMs3J,gBAAgB,GAAG,MAAMC,KAAN,CAAY;EACjC3kK,WAAW,CAACob,IAAD,EAAO4zH,SAAP,EAAkBprG,QAAlB,EAA4BghI,OAA5B,EAAqC3+G,SAArC,EAAgD8hF,SAAhD,EAA2Dh0G,IAA3D,EAAiEwtG,iBAAjE,EAAoFE,iBAApF,EAAuGojC,kBAAvG,EAA2H3rC,eAA3H,EAA4IiI,eAA5I,EAA6J2jC,iBAA7J,EAAgLC,oBAAhL,EAAsM/6B,aAAtM,EAAqNC,kBAArN,EAAyOQ,YAAzO,EAAuPC,iBAAvP,EAA0QC,SAA1Q,EAAqRC,cAArR,EAAqSC,YAArS,EAAmTzb,OAAnT,EAA4ToM,cAA5T,EAA4U8lB,UAA5U,EAAwV0jB,iBAAxV,EAA2WC,YAA3W,EAAyX/jJ,UAAzX,EAAqY86G,OAArY,EAA8Yr4F,MAA9Y,EAAsZuhI,mBAAtZ,EAA2aC,MAA3a,EAAmbC,KAAnb,EAA0b;IACjc,KAAKhqJ,IAAL,GAAYA,IAAZ;IACA,KAAK4zH,SAAL,GAAiBA,SAAjB;IACA,KAAKprG,QAAL,GAAgBA,QAAhB;IACA,KAAKghI,OAAL,GAAeA,OAAf;IACA,KAAK3+G,SAAL,GAAiBA,SAAjB;IACA,KAAK8hF,SAAL,GAAiBA,SAAjB;IACA,KAAKh0G,IAAL,GAAYA,IAAZ;IACA,KAAKwtG,iBAAL,GAAyBA,iBAAzB;IACA,KAAKE,iBAAL,GAAyBA,iBAAzB;IACA,KAAKojC,kBAAL,GAA0BA,kBAA1B;IACA,KAAK3rC,eAAL,GAAuBA,eAAvB;IACA,KAAKiI,eAAL,GAAuBA,eAAvB;IACA,KAAK2jC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,oBAAL,GAA4BA,oBAA5B;IACA,KAAK/6B,aAAL,GAAqBA,aAArB;IACA,KAAKC,kBAAL,GAA0BA,kBAA1B;IACA,KAAKQ,YAAL,GAAoBA,YAApB;IACA,KAAKC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKzb,OAAL,GAAeA,OAAf;IACA,KAAKoM,cAAL,GAAsBA,cAAtB;IACA,KAAK8lB,UAAL,GAAkBA,UAAlB;IACA,KAAK0jB,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAK/jJ,UAAL,GAAkBA,UAAlB;IACA,KAAK86G,OAAL,GAAeA,OAAf;IACA,KAAKr4F,MAAL,GAAcA,MAAd;IACA,KAAKuhI,mBAAL,GAA2BA,mBAA3B;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,KAAKC,KAAL,GAAaA,KAAb;EACH;;EACY,IAATC,SAAS,GAAG;IACZ,MAAMpW,GAAG,GAAG,EAAZ;IACAqW,oBAAoB,CAAC,KAAKpkJ,UAAN,EAAkB+tI,GAAlB,CAApB;IACA,OAAOA,GAAG,CAACl/I,IAAJ,CAAS,EAAT,CAAP;EACH;;EACQ,IAALw1J,KAAK,GAAG;IACR,OAAOxmC,iBAAiB,CAAC,KAAK3jH,IAAN,CAAjB,IAAiC,cAAa,KAAKA,IAAK,GAA/D;EACH;;AA1CgC,CAArC;;AA4CA,MAAMoqJ,KAAN,CAAY;EACRxlK,WAAW,CAACmgI,MAAD,EAAS;EACpB/kH,IADW,EACL;EACNhO,KAFW,EAEJ;EACPq4J,iBAHW,EAGQ;EACnBxjC,aAJW,EAII;EACfkI,cALW,EAKK;EAChBC,YANW,EAMG;EACds7B,oBAPW,EAOW;EACtBC,gBARW,EAQO;EAClBhwD,KATW,EASJ;EACPw7B,eAVW,EAUM;EACjB7vI,KAXW,EAWJ;EACP4G,KAZW,EAYJ;EACP09J,WAbW,EAaE;EACbzjB,UAdW,EAcC;EACZ0jB,aAfW,EAeI;EACfviI,MAhBW,EAgBH;EACRC,OAjBW,EAiBF;EACTuiI,MAlBW,EAkBH;EACRriK,IAnBW,EAmBL;EACNwlJ,cApBW,EAoBK;EAChBv6I,KArBW,EAqBJ;EACPsc,MAtBW,EAsBH;EACR82G,UAvBW,EAuBC;EACZ34H,MAxBW,EAwBH;EACR48J,iBAzBW,EAyBQ;EACnBC,cA1BW,EA0BK;EAChBlxJ,OA3BW,EA2BF;EACTmxJ,kBA5BW,EA4BS;EACpBC,eA7BW,EA6BM;EACjBC,aA9BW,EA8BI;EACfC,aA/BW,EA+BI;IACX,KAAKjmC,MAAL,GAAcA,MAAd;IACA,KAAK/kH,IAAL,GAAYA,IAAZ;IACA,KAAKhO,KAAL,GAAaA,KAAb;IACA,KAAKq4J,iBAAL,GAAyBA,iBAAzB;IACA,KAAKxjC,aAAL,GAAqBA,aAArB;IACA,KAAKkI,cAAL,GAAsBA,cAAtB;IACA,KAAKC,YAAL,GAAoBA,YAApB;IACA,KAAKs7B,oBAAL,GAA4BA,oBAA5B;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKhwD,KAAL,GAAaA,KAAb;IACA,KAAKw7B,eAAL,GAAuBA,eAAvB;IACA,KAAK7vI,KAAL,GAAaA,KAAb;IACA,KAAK4G,KAAL,GAAaA,KAAb;IACA,KAAK09J,WAAL,GAAmBA,WAAnB;IACA,KAAKzjB,UAAL,GAAkBA,UAAlB;IACA,KAAK0jB,aAAL,GAAqBA,aAArB;IACA,KAAKviI,MAAL,GAAcA,MAAd;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKuiI,MAAL,GAAcA,MAAd;IACA,KAAKriK,IAAL,GAAYA,IAAZ;IACA,KAAKwlJ,cAAL,GAAsBA,cAAtB;IACA,KAAKv6I,KAAL,GAAaA,KAAb;IACA,KAAKsc,MAAL,GAAcA,MAAd;IACA,KAAK82G,UAAL,GAAkBA,UAAlB;IACA,KAAK34H,MAAL,GAAcA,MAAd;IACA,KAAK48J,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKlxJ,OAAL,GAAeA,OAAf;IACA,KAAKmxJ,kBAAL,GAA0BA,kBAA1B;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAKC,aAAL,GAAqBA,aAArB;IACA,KAAKC,aAAL,GAAqBA,aAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,qBAAqB,CAACrmC,KAAD,EAAQ;IACzB,MAAM3uH,IAAI,GAAG,EAAb;IACA,IAAI4wH,aAAa,GAAG6M,gBAAgB,CAAC,IAAD,EAAO9O,KAAP,CAApC;;IACA,IAAIiC,aAAa,KAAK,CAAC,CAAvB,EAA0B;MACtB;MACA;MACA,MAAM0L,cAAc,GAAGuB,yBAAyB,CAAC,IAAD,EAAOlP,KAAP,CAAhD;;MACA,IAAI2N,cAAc,KAAKhC,kBAAvB,EAA2C;QACvC;QACA1J,aAAa,GAAG2L,sBAAsB,CAACD,cAAD,CAAtC;QACA3N,KAAK,GAAG+N,qBAAqB,CAACJ,cAAD,EAAiB3N,KAAjB,CAA7B;MACH,CAJD,MAKK,CACD;MACH;IACJ;;IACD,OAAOiC,aAAa,KAAK,CAAC,CAA1B,EAA6B;MACzBz6G,SAAS,IAAIw6G,kBAAkB,CAAChC,KAAD,EAAQiC,aAAR,CAA/B;MACA,MAAM9I,KAAK,GAAG6G,KAAK,CAACvC,KAAD,CAAL,CAAa1pG,IAAb,CAAkBkuG,aAAa,GAAG;MAAE;MAApC,CAAd;MACA5wH,IAAI,CAAC1N,IAAL,CAAU2iK,cAAc,CAACntC,KAAD,EAAQ6G,KAAR,CAAxB;MACA,MAAM2N,cAAc,GAAG3N,KAAK,CAACiC,aAAa,GAAG;MAAE;MAAnB,CAA5B;;MACA,IAAI0L,cAAc,KAAKhC,kBAAvB,EAA2C;QACvC1J,aAAa,GAAG,CAAC,CAAjB;MACH,CAFD,MAGK;QACDA,aAAa,GAAG2L,sBAAsB,CAACD,cAAD,CAAtC;QACA3N,KAAK,GAAG+N,qBAAqB,CAACJ,cAAD,EAAiB3N,KAAjB,CAA7B;MACH;IACJ;;IACD,OAAO3uH,IAAP;EACH;;EACQ,IAALk0J,KAAK,GAAG;IACR,OAAOn5B,mBAAmB,CAAC,KAAKhxH,IAAN,CAAnB,IAAmC,cAAa,KAAKA,IAAK,GAAjE;EACH;;EACS,IAANmrJ,MAAM,GAAG;IACT,MAAM5wD,KAAK,GAAG,EAAd;IACA,IAAI,KAAKA,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAChyG,IAAN,CAAW,0BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAChyG,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAChyG,IAAN,CAAW,0BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAI;IAArB,EACIA,KAAK,CAAChyG,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAChyG,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAChyG,IAAN,CAAW,4BAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAG;IAApB,EACIA,KAAK,CAAChyG,IAAN,CAAW,uBAAX;IACJ,IAAI,KAAKgyG,KAAL,GAAa;IAAE;IAAnB,EACIA,KAAK,CAAChyG,IAAN,CAAW,wBAAX;IACJ,OAAOgyG,KAAK,CAAC5lG,IAAN,CAAW,GAAX,CAAP;EACH;;EACY,IAATs1J,SAAS,GAAG;IACZ,IAAI,KAAKjqJ,IAAL,GAAY;IAAE;IAAlB,EACI,OAAO,KAAK9Z,KAAZ;IACJ,MAAM2tJ,GAAG,GAAG,EAAZ;IACA,MAAMtgJ,OAAO,GAAG,OAAO,KAAKrN,KAAZ,KAAsB,QAAtB,IAAkC,KAAKA,KAAvC,IAAgD,KAAKikK,KAArE;IACAtW,GAAG,CAACtrJ,IAAJ,CAAS,GAAT,EAAcgL,OAAd;;IACA,IAAI,KAAKgnG,KAAT,EAAgB;MACZs5C,GAAG,CAACtrJ,IAAJ,CAAS,GAAT,EAAc,KAAK4iK,MAAnB;IACH;;IACD,IAAI,KAAKr+J,KAAT,EAAgB;MACZ,KAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKyH,KAAL,CAAWxH,MAA/B,GAAwC;QACpC,MAAM8zG,QAAQ,GAAG,KAAKtsG,KAAL,CAAWzH,CAAC,EAAZ,CAAjB;;QACA,IAAI,OAAO+zG,QAAP,IAAmB,QAAvB,EAAiC;UAC7B;QACH;;QACD,MAAMq2C,SAAS,GAAG,KAAK3iJ,KAAL,CAAWzH,CAAC,EAAZ,CAAlB;QACAwuJ,GAAG,CAACtrJ,IAAJ,CAAS,GAAT,EAAc6wG,QAAd,EAAwB,IAAxB,EAA8Bq2C,SAA9B,EAAyC,GAAzC;MACH;IACJ;;IACDoE,GAAG,CAACtrJ,IAAJ,CAAS,GAAT;IACA2hK,oBAAoB,CAAC,KAAK52J,KAAN,EAAaugJ,GAAb,CAApB;IACAA,GAAG,CAACtrJ,IAAJ,CAAS,IAAT,EAAegL,OAAf,EAAwB,GAAxB;IACA,OAAOsgJ,GAAG,CAACl/I,IAAJ,CAAS,EAAT,CAAP;EACH;;EACiB,IAAdy2J,cAAc,GAAG;IACjB,OAAOC,mBAAmB,CAAC,IAAD,EAAO,KAAP,CAA1B;EACH;;EACiB,IAAdC,cAAc,GAAG;IACjB,OAAOD,mBAAmB,CAAC,IAAD,EAAO,IAAP,CAA1B;EACH;;EACsB,IAAnBE,mBAAmB,GAAG;IACtB,OAAO,KAAKx1B,eAAL,GAAuB;IAAQ;IAAtC;EACH;;EACoB,IAAjBy1B,iBAAiB,GAAG;IACpB,OAAO,KAAKD,mBAAL,IACF,KAAKx1B,eAAL,KAAyB;IAAG;IAD1B,CAAP;EAEH;;AAzKO;;AA2KZ,MAAM01B,UAAU,GAAGrB,KAAnB;;AACA,SAASiB,mBAAT,CAA6BttC,KAA7B,EAAoCuwB,YAApC,EAAkD;EAC9C,MAAM/hB,KAAK,GAAGxO,KAAK,CAACgH,MAAN,CAAapsG,IAA3B;EACA,MAAM+yI,QAAQ,GAAG,EAAjB;EACA,MAAM71H,KAAK,GAAGy4G,YAAY,GAAGvwB,KAAK,CAACgtC,aAAT,GAAyBhtC,KAAK,CAACitC,aAAzD;EACA,MAAM1iG,IAAI,GAAGo/F,oBAAoB,CAAC7xH,KAAD,CAAjC;EACA,MAAMxtC,IAAI,GAAG0/J,oBAAoB,CAAClyH,KAAD,CAAjC;EACA,IAAI81H,UAAU,GAAGtjK,IAAI,KAAK,CAA1B;EACA,IAAIujK,MAAM,GAAGD,UAAU,GAAGtjK,IAAH,GAAUigE,IAAjC;;EACA,OAAOsjG,MAAM,KAAK,CAAlB,EAAqB;IACjB,MAAMC,OAAO,GAAGt/B,KAAK,CAACq/B,MAAD,CAArB;IACA,MAAME,SAAS,GAAGv/B,KAAK,CAACq/B,MAAM,GAAG,CAAV,CAAvB;IACAF,QAAQ,CAAC13G,OAAT,CAAiB;MACbnuD,GAAG,EAAEgmK,OADQ;MAEb75J,KAAK,EAAE45J,MAFM;MAGbD,UAAU,EAAEA,UAHC;MAIbI,aAAa,EAAEnE,6BAA6B,CAACkE,SAAD,CAJ/B;MAKbE,aAAa,EAAE/D,6BAA6B,CAAC6D,SAAD,CAL/B;MAMbG,SAAS,EAAElE,oBAAoB,CAAC+D,SAAD,CANlB;MAObI,SAAS,EAAExE,oBAAoB,CAACoE,SAAD;IAPlB,CAAjB;IASA,IAAIF,MAAM,KAAKtjG,IAAf,EACIqjG,UAAU,GAAG,KAAb;IACJC,MAAM,GAAGlE,oBAAoB,CAACoE,SAAD,CAA7B;EACH;;EACDJ,QAAQ,CAACnjK,IAAT,CAAc,CAAC+lJ,YAAY,GAAGvwB,KAAK,CAAC+sC,eAAT,GAA2B/sC,KAAK,CAAC6sC,cAA9C,KAAiE,IAA/E;EACA,OAAOc,QAAP;AACH;;AACD,SAASxB,oBAAT,CAA8BnsC,KAA9B,EAAqC81B,GAArC,EAA0C;EACtC,OAAO91B,KAAP,EAAc;IACV81B,GAAG,CAACtrJ,IAAJ,CAASw1H,KAAK,CAACksC,SAAf;IACAlsC,KAAK,GAAGA,KAAK,CAAC11H,IAAd;EACH;AACJ;;AACD,MAAM8jK,SAAN,SAAwB5kK,KAAxB,CAA8B;;AAE9B,IAAI6kK,eAAJ,EAAqB;AACrB;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,gBAAT,CAA0Bn/G,IAA1B,EAAgC;EAC5B,IAAIk/G,eAAe,KAAKlkK,SAAxB,EACIkkK,eAAe,GAAG,IAAID,SAAJ,EAAlB;EACJ,OAAOC,eAAe,CAAC3lK,MAAhB,CAAuBymD,IAAvB,CAAP;AACH;;AACD,MAAMo/G,cAAN,SAA6B/kK,KAA7B,CAAmC;;AAEnC,MAAMglK,YAAN,SAA2BhlK,KAA3B,CAAiC;;AAEjC,MAAMilK,eAAN,SAA8BjlK,KAA9B,CAAoC;;AAEpC,MAAMklK,eAAN,SAA8BllK,KAA9B,CAAoC;;AAEpC,MAAMmlK,kBAAN,SAAiCnlK,KAAjC,CAAuC;;AAEvC,MAAMolK,QAAN,SAAuBplK,KAAvB,CAA6B;;AAE7B,MAAMqlK,QAAN,SAAuBrlK,KAAvB,CAA6B;;AAE7B,SAASslK,gBAAT,CAA0BjoC,KAA1B,EAAiC;EAC7BwjC,iBAAiB,CAACxjC,KAAD,EAAQ,IAAIkoC,UAAJ,CAAeloC,KAAf,CAAR,CAAjB;AACH;;AACD,SAASmoC,qBAAT,CAA+BvjC,UAA/B,EAA2C;EACvC4+B,iBAAiB,CAAC5+B,UAAD,EAAa,IAAIwjC,eAAJ,CAAoBxjC,UAApB,CAAb,CAAjB;AACH;;AACD,SAASyjC,OAAT,CAAiBxoK,GAAjB,EAAsB;EAClB,IAAIA,GAAJ,EAAS;IACL,MAAM4jK,KAAK,GAAG5jK,GAAG,CAAC4jK,KAAlB;IACAltC,aAAa,CAACktC,KAAD,EAAQ,8CAAR,CAAb;IACA,OAAOA,KAAP;EACH,CAJD,MAKK;IACD,OAAO5jK,GAAP;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0Y,MAAT,CAAgBjX,KAAhB,EAAuBgnK,eAAe,GAAG,KAAzC,EAAgD;EAC5C,MAAMh5J,IAAI,GAAGq0H,WAAW,CAACriI,KAAD,CAAxB;;EACA,IAAIgO,IAAJ,EAAU;IACN,QAAQA,IAAI,CAAC2/B,QAAb;MACI,KAAK6B,IAAI,CAACu+G,SAAV;QACI,OAAO//I,IAAI,CAAC65C,WAAZ;;MACJ,KAAKrY,IAAI,CAACy3H,YAAV;QACI,OAAQ,OAAMj5J,IAAI,CAAC65C,WAAY,KAA/B;;MACJ,KAAKrY,IAAI,CAACg9G,YAAV;QACI,MAAM10I,SAAS,GAAG9J,IAAI,CAAC8J,SAAvB;;QACA,IAAIkvJ,eAAJ,EAAqB;UACjB,OAAOlvJ,SAAP;QACH,CAFD,MAGK;UACD,MAAM9K,SAAS,GAAG,MAAMgB,IAAI,CAAChB,SAAX,GAAuB,GAAzC;UACA,OAAQ8K,SAAS,CAAC5J,KAAV,CAAgBlB,SAAhB,EAA2B,CAA3B,CAAD,GAAkC,GAAzC;QACH;;IAbT;EAeH;;EACD,OAAO,IAAP;AACH;;AACD,MAAM45J,UAAN,CAAiB;EACbloK,WAAW,CAACwoK,UAAD,EAAa;IACpB,KAAKA,UAAL,GAAkBA,UAAlB;EACH;EACD;AACJ;AACA;;;EACa,IAAL7yD,KAAK,GAAG;IACR,MAAMA,KAAK,GAAG,KAAK6yD,UAAL,CAAgB9qC,KAAhB,CAAd;IACA,OAAO;MACH+qC,cAAc,EAAE9yD,KADb;MAEH+yD,cAAc,EAAE/yD,KAAK,GAAG;MAAE;MAFvB;MAGHojD,YAAY,EAAE,CAAC,EAAEpjD,KAAK,GAAG;MAAE;MAAZ,CAHZ;MAIHgzD,aAAa,EAAE,CAAC,EAAEhzD,KAAK,GAAG;MAAE;MAAZ,CAJb;MAKHizD,WAAW,EAAE,CAAC,EAAEjzD,KAAK,GAAG;MAAG;MAAb,CALX;MAMHkzD,KAAK,EAAE,CAAC,EAAElzD,KAAK,GAAG;MAAG;MAAb,CANL;MAOHmzD,QAAQ,EAAE,CAAC,EAAEnzD,KAAK,GAAG;MAAG;MAAb,CAPR;MAQH5rB,SAAS,EAAE,CAAC,EAAE4rB,KAAK,GAAG;MAAI;MAAd,CART;MASHozD,MAAM,EAAE,CAAC,EAAEpzD,KAAK,GAAG;MAAI;MAAd,CATN;MAUHqzD,oBAAoB,EAAErzD,KAAK,IAAI;MAAG;;IAV/B,CAAP;EAYH;;EACS,IAAN3qF,MAAM,GAAG;IACT,OAAOq9I,OAAO,CAAC,KAAKG,UAAL,CAAgB7qC,MAAhB,CAAD,CAAd;EACH;;EACW,IAARsrC,QAAQ,GAAG;IACX,OAAO1wJ,MAAM,CAAC,KAAKiwJ,UAAL,CAAgBhrC,IAAhB,CAAD,EAAwB,IAAxB,CAAb;EACH;;EACO,IAAJx6G,IAAI,GAAG;IACP,OAAO,CAAC,KAAK2mB,KAAL,IAAc,EAAf,EAAmBpiC,GAAnB,CAAuB2hK,SAAvB,EAAkCn5J,IAAlC,CAAuC,EAAvC,CAAP;EACH;;EACU,IAAPiZ,OAAO,GAAG;IACV,OAAO,KAAKw/I,UAAL,CAAgBxqC,OAAhB,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACa,IAALr0F,KAAK,GAAG;IACR,MAAMq2F,KAAK,GAAG,KAAKwoC,UAAnB;IACA,MAAMrvC,KAAK,GAAG6G,KAAK,CAACvC,KAAD,CAAL,CAAav8G,UAA3B;IACA,OAAOioJ,YAAY,CAAChwC,KAAD,EAAQ6G,KAAR,CAAnB;EACH;;EACW,IAARp8F,QAAQ,GAAG;IACX,OAAO,KAAKw1F,KAAL,CAAWisC,SAAlB;EACH;;EACQ,IAALjsC,KAAK,GAAG;IACR,OAAO,KAAKovC,UAAL,CAAgB/qC,KAAhB,CAAP;EACH;;EACU,IAAPrO,OAAO,GAAG;IACV,OAAO,KAAKo5C,UAAL,CAAgBzqC,OAAhB,CAAP;EACH;;EACW,IAAR/xF,QAAQ,GAAG;IACX,OAAO,KAAKw8H,UAAL,CAAgBvqC,UAAhB,CAAP;EACH;;EACkB,IAAfvjF,eAAe,GAAG;IAClB,OAAO,KAAK8tH,UAAL,CAAgBtqC,gBAAhB,CAAP;EACH;;EACW,IAARjnF,QAAQ,GAAG;IACX,OAAO,KAAKuxH,UAAL,CAAgBrqC,QAAhB,CAAP;EACH;;EACY,IAAToyB,SAAS,GAAG;IACZ,OAAO,KAAKiY,UAAL,CAAgBpqC,SAAhB,CAAP;EACH;;EACY,IAATgrC,SAAS,GAAG;IACZ,OAAOf,OAAO,CAAC,KAAKG,UAAL,CAAgBnqC,UAAhB,CAAD,CAAd;EACH;;EACO,IAAJ56H,IAAI,GAAG;IACP,OAAO4kK,OAAO,CAAC,KAAKG,UAAL,CAAgB5qC,IAAhB,CAAD,CAAd;EACH;;EACY,IAATyrC,SAAS,GAAG;IACZ,OAAOhB,OAAO,CAAC,KAAKG,UAAL,CAAgBlqC,UAAhB,CAAD,CAAd;EACH;;EACkB,IAAfgrC,eAAe,GAAG;IAClB,OAAOjB,OAAO,CAAC,KAAKG,UAAL,CAAgBjqC,gBAAhB,CAAD,CAAd;EACH;;EACU,IAAPqmC,OAAO,GAAG;IACV,OAAO,KAAK4D,UAAL,CAAgB7pC,OAAhB,CAAP;EACH;;EACQ,IAAL4qC,KAAK,GAAG;IACR,OAAO,KAAKf,UAAL,CAAgB1qC,MAAhB,CAAP;EACH;;EACK,IAAF9uH,EAAE,GAAG;IACL,OAAO,KAAKw5J,UAAL,CAAgB5pC,EAAhB,CAAP;EACH;;EACQ,IAALn7F,KAAK,GAAG;IACR,OAAO+lI,YAAY,CAAC,KAAKpwC,KAAN,EAAa,KAAKovC,UAAlB,EAA8B1pC,aAA9B,EAA6C,KAAK1F,KAAL,CAAWmI,iBAAxD,CAAnB;EACH;;EACO,IAAJ79F,IAAI,GAAG;IACP,OAAO8lI,YAAY,CAAC,KAAKpwC,KAAN,EAAa,KAAKovC,UAAlB,EAA8B,KAAKpvC,KAAL,CAAWmI,iBAAzC,EAA4D,KAAKnI,KAAL,CAAWqI,iBAAvE,CAAnB;EACH;;EACU,IAAPgoC,OAAO,GAAG;IACV,OAAOD,YAAY,CAAC,KAAKpwC,KAAN,EAAa,KAAKovC,UAAlB,EAA8B,KAAKpvC,KAAL,CAAWqI,iBAAzC,EAA4D,KAAK+mC,UAAL,CAAgB9nK,MAA5E,CAAnB;EACH;EACD;AACJ;AACA;;;EACkB,IAAVgpK,UAAU,GAAG;IACb,MAAMA,UAAU,GAAG,EAAnB;IACA,IAAIh7J,KAAK,GAAG,KAAK06J,SAAjB;;IACA,OAAO16J,KAAP,EAAc;MACVg7J,UAAU,CAAC/lK,IAAX,CAAgB+K,KAAhB;MACAA,KAAK,GAAGA,KAAK,CAACjL,IAAd;IACH;;IACD,OAAOimK,UAAP;EACH;;AAzGY;;AA2GjB,SAASR,SAAT,CAAmB55J,IAAnB,EAAyB;EACrB,IAAIA,IAAI,CAAC8L,IAAL,KAAc,kBAAlB,EAAsC;IAClC,OAAO,CAAC9L,IAAI,CAAC8C,QAAL,IAAiB,EAAlB,EAAsB7K,GAAtB,CAA0B2hK,SAA1B,EAAqCn5J,IAArC,CAA0C,EAA1C,CAAP;EACH,CAFD,MAGK,IAAIT,IAAI,CAAC8L,IAAL,KAAc,cAAlB,EAAkC;IACnC,MAAM,IAAIgC,KAAJ,CAAU,iBAAV,CAAN;EACH,CAFI,MAGA;IACD,OAAO7E,MAAM,CAACjJ,IAAI,CAACu9H,MAAN,EAAc,IAAd,CAAN,IAA6B,EAApC;EACH;AACJ;;AACD,SAAS28B,YAAT,CAAsBpwC,KAAtB,EAA6B4G,KAA7B,EAAoChvF,KAApC,EAA2Cr7B,GAA3C,EAAgD;EAC5C,IAAIZ,OAAO,GAAG,EAAd;;EACA,KAAK,IAAI3H,KAAK,GAAG4jC,KAAjB,EAAwB5jC,KAAK,GAAGuI,GAAhC,EAAqCvI,KAAK,EAA1C,EAA8C;IAC1C2H,OAAO,CAACpR,IAAR,CAAa;MAAEyJ,KAAK,EAAEA,KAAT;MAAgB8Z,CAAC,EAAEkyG,KAAK,CAACrlG,IAAN,CAAW3mB,KAAX,CAAnB;MAAsCu8J,CAAC,EAAE3pC,KAAK,CAAC5yH,KAAD;IAA9C,CAAb;EACH;;EACD,OAAO;IAAE4jC,KAAK,EAAEA,KAAT;IAAgBr7B,GAAG,EAAEA,GAArB;IAA0BjV,MAAM,EAAEiV,GAAG,GAAGq7B,KAAxC;IAA+Cj8B,OAAO,EAAEA;EAAxD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo0J,YAAT,CAAsBhwC,KAAtB,EAA6B6G,KAA7B,EAAoC;EAChC,IAAI7G,KAAJ,EAAW;IACP,MAAMywC,UAAU,GAAG,EAAnB;IACA,IAAIC,WAAW,GAAG1wC,KAAlB;;IACA,OAAO0wC,WAAP,EAAoB;MAChBD,UAAU,CAACjmK,IAAX,CAAgB2iK,cAAc,CAACuD,WAAD,EAAc7pC,KAAd,CAA9B;MACA6pC,WAAW,GAAGA,WAAW,CAACpmK,IAA1B;IACH;;IACD,OAAOmmK,UAAP;EACH,CARD,MASK;IACD,OAAO,EAAP;EACH;AACJ;;AACD,SAAStD,cAAT,CAAwBntC,KAAxB,EAA+B6G,KAA/B,EAAsC;EAClC,MAAM8pC,QAAQ,GAAG9pC,KAAK,CAAC7G,KAAK,CAAC/rH,KAAP,CAAtB;EACA,MAAMy/H,MAAM,GAAGlJ,WAAW,CAACmmC,QAAD,CAA1B;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAM5wC,KAAK,GAAG4G,KAAK,CAACvC,KAAD,CAAnB;;EACA,KAAK,IAAIh9H,CAAC,GAAG04H,KAAK,CAACgR,cAAnB,EAAmC1pI,CAAC,GAAG04H,KAAK,CAACiR,YAA7C,EAA2D3pI,CAAC,EAA5D,EAAgE;IAC5D,MAAM20E,GAAG,GAAGgkD,KAAK,CAACrlG,IAAN,CAAWtzB,CAAX,CAAZ;IACAspK,SAAS,CAACpmK,IAAV,CAAeyxE,GAAG,CAACh6D,IAAnB;IACA4uJ,SAAS,CAACrmK,IAAV,CAAeq8H,KAAK,CAACv/H,CAAD,CAApB;EACH;;EACD,OAAO;IACHuiB,IAAI,EAAEzK,MAAM,CAACs0H,MAAD,CADT;IAEHzxH,IAAI,EAAEgxH,mBAAmB,CAACjT,KAAK,CAAC/9G,IAAP,CAFtB;IAGH+9G,KAHG;IAIH0T,MAAM,EAAEA,MAJL;IAKHz6H,QAAQ,EAAE+2J,YAAY,CAAChwC,KAAK,CAACzqH,KAAP,EAAcsxH,KAAd,CALnB;IAMH+pC,SANG;IAOHC,SAPG;IAQHh+H,QAAQ,EAAEi+H,sBAAsB,CAAC9wC,KAAD,EAAQC,KAAR,EAAe4G,KAAf,CAR7B;;IASH,IAAIkqC,sBAAJ,GAA6B;MACzB,OAAO/wC,KAAK,CAACktC,qBAAN,CAA4BrmC,KAA5B,CAAP;IACH;;EAXE,CAAP;AAaH;;AACD,SAASiqC,sBAAT,CAAgC9wC,KAAhC,EAAuCC,KAAvC,EAA8C4G,KAA9C,EAAqD;EACjD,MAAMmqC,aAAa,GAAG,EAAtB;;EACA,KAAK,IAAI1pK,CAAC,GAAG04H,KAAK,CAACwtC,mBAAnB,EAAwClmK,CAAC,GAAG04H,KAAK,CAACytC,iBAAlD,EAAqEnmK,CAAC,EAAtE,EAA0E;IACtE0pK,aAAa,CAACxmK,IAAd,CAAmBy1H,KAAK,CAACrlG,IAAN,CAAWtzB,CAAX,CAAnB;EACH;;EACD,MAAMikC,SAAS,GAAG,EAAlB;;EACA,KAAK,IAAIjkC,CAAC,GAAG04H,KAAK,CAACytC,iBAAnB,EAAsCnmK,CAAC,GAAG04H,KAAK,CAACiR,YAAhD,EAA8D3pI,CAAC,EAA/D,EAAmE;IAC/DikC,SAAS,CAAC/gC,IAAV,CAAey1H,KAAK,CAACrlG,IAAN,CAAWtzB,CAAX,CAAf;EACH;;EACD,MAAM2pK,iBAAiB,GAAG;IACtBC,KAAK,EAAEC,OAAO,CAACtqC,KAAD,EAAQ7G,KAAK,CAAC8I,aAAd,CADQ;IAEtBsoC,eAAe,EAAED,OAAO,CAAClxC,KAAK,CAACrlG,IAAP,EAAaolG,KAAK,CAAC8I,aAAnB,CAFF;IAGtBv9F,SAHsB;IAItBylI,aAJsB;IAKtBt8B,mBAAmB,EAAE7N,KAAK,CAAC7G,KAAK,CAACwtC,mBAAN,GAA4B,CAA7B;EALJ,CAA1B;EAOA,OAAOyD,iBAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,MAAT,CAAgBp7J,KAAhB,EAAuBswD,GAAvB,EAA4B;EACxB,MAAMp+D,KAAK,GAAG8N,KAAK,CAACswD,GAAD,CAAnB,CADwB,CAExB;EACA;;EACA,IAAI,OAAOp+D,KAAP,KAAiB,QAArB,EACI,OAAO,UAAP,CALoB,CAMxB;;EACA,MAAMojB,IAAI,GAAG,aAAapjB,KAAK,CAACyB,QAAN,CAAe,CAAf,CAA1B;EACA,OAAO2hB,IAAI,CAACyS,SAAL,CAAezS,IAAI,CAAChkB,MAAL,GAAc,CAA7B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4pK,OAAT,CAAiBl7J,KAAjB,EAAwBswD,GAAxB,EAA6B;EACzB,IAAIA,GAAG,GAAG,CAAV,EAAa;IACT,OAAO,kBAAP;EACH;;EACD,OAAQ,GAAE8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,IAAG8qG,MAAM,CAACp7J,KAAD,EAAQswD,GAAG,GAAG,CAAd,CAAiB,EAAvN;AACH;;AACD,MAAM0oG,eAAN,CAAsB;EAClBpoK,WAAW,CAACyqK,eAAD,EAAkB;IACzB,KAAKA,eAAL,GAAuBA,eAAvB;EACH;;EACuB,IAApBC,oBAAoB,GAAG;IACvB,OAAO,KAAKD,eAAL,CAAqBvrC,sBAArB,CAAP;EACH;;EACQ,IAALyrC,KAAK,GAAG;IACR,OAAO,KAAKF,eAAL,CAAqB36J,KAArB,CAA2BwvH,uBAA3B,EACF/3H,GADE,CACE8gK,OADF,CAAP;EAEH;;EACS,IAANr9I,MAAM,GAAG;IACT,OAAOq9I,OAAO,CAAC,KAAKoC,eAAL,CAAqB9sC,MAArB,CAAD,CAAd;EACH;;EACa,IAAVynB,UAAU,GAAG;IACb,OAAO,KAAKqlB,eAAL,CAAqBprC,WAArB,CAAP;EACH;;EACO,IAAJz2F,IAAI,GAAG;IACP,OAAO,KAAK6hI,eAAL,CAAqBjtC,IAArB,CAAP;EACH;;EACS,IAANqP,MAAM,GAAG;IACT,OAAO,KAAK49B,eAAL,CAAqBtrC,MAArB,CAAP;EACH;;EACO,IAAJ17H,IAAI,GAAG;IACP,OAAO4kK,OAAO,CAAC,KAAKoC,eAAL,CAAqB7sC,IAArB,CAAD,CAAd;EACH;;AAzBiB;AA4BtB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgtC,yBAAT,CAAmCxxC,KAAnC,EAA0C4G,KAA1C,EAAiD;EAC7C,MAAM6kC,kBAAkB,GAAGzrC,KAAK,CAACyrC,kBAAjC;EACA,IAAIA,kBAAkB,KAAK,IAA3B,EACI;;EACJ,IAAI;IACA,KAAK,IAAIpkK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGokK,kBAAkB,CAACnkK,MAAvC,EAA+CD,CAAC,EAAhD,EAAoD;MAChD,MAAMoqK,MAAM,GAAGhG,kBAAkB,CAACpkK,CAAD,CAAjC;;MACA,IAAIoqK,MAAM,GAAG,CAAb,EAAgB;QACZ;QACAxhC,gBAAgB,CAAC,CAACwhC,MAAF,CAAhB;MACH,CAHD,MAIK;QACD;QACA,MAAMC,YAAY,GAAGD,MAArB;QACA,MAAME,eAAe,GAAGlG,kBAAkB,CAAC,EAAEpkK,CAAH,CAA1C;QACA,MAAMuqK,aAAa,GAAGnG,kBAAkB,CAAC,EAAEpkK,CAAH,CAAxC;QACA6mI,6BAA6B,CAACyjC,eAAD,EAAkBD,YAAlB,CAA7B;QACA,MAAM9hJ,OAAO,GAAGg3G,KAAK,CAAC8qC,YAAD,CAArB;QACAE,aAAa,CAAC;QAAE;QAAH,EAA6BhiJ,OAA7B,CAAb;MACH;IACJ;EACJ,CAjBD,SAkBQ;IACJqgH,gBAAgB,CAAC,CAAC,CAAF,CAAhB;EACH;AACJ;AACD;;;AACA,SAAS4hC,qBAAT,CAA+B7xC,KAA/B,EAAsC4G,KAAtC,EAA6C;EACzC,MAAMxE,cAAc,GAAGpC,KAAK,CAACoC,cAA7B;;EACA,IAAIA,cAAc,KAAK,IAAvB,EAA6B;IACzB,KAAK,IAAI/6H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+6H,cAAc,CAAC96H,MAAnC,EAA2CD,CAAC,IAAI,CAAhD,EAAmD;MAC/C,MAAMyqK,aAAa,GAAG1vC,cAAc,CAAC/6H,CAAD,CAApC;MACA,MAAM0qK,eAAe,GAAG3vC,cAAc,CAAC/6H,CAAC,GAAG,CAAL,CAAtC;;MACA,IAAI0qK,eAAe,KAAK,CAAC,CAAzB,EAA4B;QACxB,MAAMrhC,YAAY,GAAG1Q,KAAK,CAACrlG,IAAN,CAAWo3I,eAAX,CAArB;QACA3jJ,SAAS,IAAI+uG,aAAa,CAACuT,YAAD,EAAe,yBAAf,CAA1B;QACAtiH,SAAS,IACL+uG,aAAa,CAACuT,YAAY,CAACtO,cAAd,EAA8B,2CAA9B,CADjB;QAEAqM,oBAAoB,CAACqjC,aAAD,CAApB;QACAphC,YAAY,CAACtO,cAAb,CAA4B;QAAE;QAA9B,EAAwDwE,KAAK,CAACmrC,eAAD,CAA7D,EAAgFA,eAAhF;MACH;IACJ;EACJ;AACJ;AACD;;;AACA,SAASC,sBAAT,CAAgCC,SAAhC,EAA2C/pB,UAA3C,EAAuD;EACnD,KAAK,IAAI7gJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6gJ,UAAU,CAAC5gJ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;IACxC6qK,gBAAgB,CAACD,SAAD,EAAY/pB,UAAU,CAAC7gJ,CAAD,CAAtB,CAAhB;EACH;AACJ;AACD;;;AACA,SAAS8qK,qBAAT,CAA+BF,SAA/B,EAA0C/pB,UAA1C,EAAsD;EAClD,KAAK,IAAI7gJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6gJ,UAAU,CAAC5gJ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;IACxC+qK,eAAe,CAACH,SAAD,EAAY/pB,UAAU,CAAC7gJ,CAAD,CAAtB,CAAf;EACH;AACJ;;AACD,SAASgrK,WAAT,CAAqBtjC,WAArB,EAAkC/O,KAAlC,EAAyCpwG,OAAzC,EAAkD2sF,KAAlD,EAAyD/sE,IAAzD,EAA+D8iI,SAA/D,EAA0EhxH,eAA1E,EAA2FzD,QAA3F,EAAqGs5G,SAArG,EAAgHvkH,QAAhH,EAA0H4mG,oBAA1H,EAAgJ;EAC5I,MAAM5S,KAAK,GAAGx4G,SAAS,GAAGy8I,8BAA8B,CAAC7qC,KAAD,CAAjC,GAA2CA,KAAK,CAAC4V,SAAN,CAAgBl/H,KAAhB,EAAlE;EACAkwH,KAAK,CAACxC,IAAD,CAAL,GAAc50F,IAAd;EACAo3F,KAAK,CAACtC,KAAD,CAAL,GAAe/nB,KAAK,GAAG;EAAE;EAAV,EAA0C;EAAG;EAA7C,EAAyE;EAAE;EAA1F;;EACA,IAAIi9B,oBAAoB,KAAK,IAAzB,IACCzK,WAAW,IAAKA,WAAW,CAACzK,KAAD,CAAX,GAAqB;EAAK;EAD/C,EAC2F;IACvFsC,KAAK,CAACtC,KAAD,CAAL,IAAgB;IAAK;IAArB;EACH;;EACDgH,sBAAsB,CAAC1E,KAAD,CAAtB;EACAx4G,SAAS,IAAI4xG,KAAK,CAAC2O,SAAnB,IAAgCI,WAAhC,IAA+CpI,mBAAmB,CAAC3G,KAAK,CAAC2O,SAAP,EAAkBI,WAAlB,CAAlE;EACAnI,KAAK,CAACrC,MAAD,CAAL,GAAgBqC,KAAK,CAACzB,gBAAD,CAAL,GAA0B4J,WAA1C;EACAnI,KAAK,CAAChC,OAAD,CAAL,GAAiBh1G,OAAjB;EACAg3G,KAAK,CAAC9B,gBAAD,CAAL,GAA2BxjF,eAAe,IAAIytF,WAAW,IAAIA,WAAW,CAACjK,gBAAD,CAAxE;EACA12G,SAAS,IAAI+uG,aAAa,CAACyJ,KAAK,CAAC9B,gBAAD,CAAN,EAA0B,6BAA1B,CAA1B;EACA8B,KAAK,CAAC7B,QAAD,CAAL,GAAmBlnF,QAAQ,IAAIkxF,WAAW,IAAIA,WAAW,CAAChK,QAAD,CAAzD;EACA32G,SAAS,IAAI+uG,aAAa,CAACyJ,KAAK,CAAC7B,QAAD,CAAN,EAAkB,sBAAlB,CAA1B;EACA6B,KAAK,CAAC5B,SAAD,CAAL,GAAmBmyB,SAAS,IAAIpoB,WAAW,IAAIA,WAAW,CAAC/J,SAAD,CAAvC,IAAsD,IAAzE;EACA4B,KAAK,CAAC/B,UAAD,CAAL,GAAoBjyF,QAAQ,IAAIm8F,WAAW,IAAIA,WAAW,CAAClK,UAAD,CAAtC,IAAsD,IAA1E;EACA+B,KAAK,CAAClC,MAAD,CAAL,GAAgB4tC,SAAhB;EACA1rC,KAAK,CAACpB,EAAD,CAAL,GAAYghB,gBAAgB,EAA5B;EACA5f,KAAK,CAACnB,sBAAD,CAAL,GAAgC+T,oBAAhC;EACAprH,SAAS,IACLuuG,WAAW,CAACqD,KAAK,CAACh+G,IAAN,IAAc;EAAE;EAAhB,EAA2C+sH,WAAW,KAAK,IAA3D,GAAkE,IAAnE,EAAyE,IAAzE,EAA+E,sCAA/E,CADf;EAEAnI,KAAK,CAACxB,0BAAD,CAAL,GACIpF,KAAK,CAACh+G,IAAN,IAAc;EAAE;EAAhB,EAA2C+sH,WAAW,CAAC3J,0BAAD,CAAtD,GAAqFwB,KADzF;EAEAx4G,SAAS,IAAIygJ,gBAAgB,CAACjoC,KAAD,CAA7B;EACA,OAAOA,KAAP;AACH;;AACD,SAAS2rC,gBAAT,CAA0BvyC,KAA1B,EAAiChsH,KAAjC,EAAwCgO,IAAxC,EAA8CnN,IAA9C,EAAoD/F,KAApD,EAA2D;EACvDsf,SAAS,IAAIpa,KAAK,KAAK,CAAvB,IAA4B;EACxB;EACAwoH,wBAAwB,CAACxoH,KAAD,EAAQ0xH,aAAR,EAAuB,uCAAvB,CAF5B,CADuD,CAIvD;;EACAt3G,SAAS,IAAImlH,mBAAmB,CAACvxH,IAAD,CAAhC;EACA,IAAI+9G,KAAK,GAAGC,KAAK,CAACrlG,IAAN,CAAW3mB,KAAX,CAAZ;;EACA,IAAI+rH,KAAK,KAAK,IAAd,EAAoB;IAChBA,KAAK,GAAGyyC,kBAAkB,CAACxyC,KAAD,EAAQhsH,KAAR,EAAegO,IAAf,EAAqBnN,IAArB,EAA2B/F,KAA3B,CAA1B;;IACA,IAAIi/H,aAAa,EAAjB,EAAqB;MACjB;MACA;MACA;MACA;MACAhO,KAAK,CAACxjB,KAAN,IAAe;MAAG;MAAlB;IACH;EACJ,CATD,MAUK,IAAIwjB,KAAK,CAAC/9G,IAAN,GAAa;EAAG;EAApB,EAAiD;IAClD+9G,KAAK,CAAC/9G,IAAN,GAAaA,IAAb;IACA+9G,KAAK,CAAC73H,KAAN,GAAc2M,IAAd;IACAkrH,KAAK,CAACjxH,KAAN,GAAcA,KAAd;IACA,MAAM8iB,MAAM,GAAGm7G,qBAAqB,EAApC;IACAhN,KAAK,CAAC8I,aAAN,GAAsBj3G,MAAM,KAAK,IAAX,GAAkB,CAAC,CAAnB,GAAuBA,MAAM,CAACi3G,aAApD;IACAz6G,SAAS,IAAIy4G,mBAAmB,CAAC9G,KAAD,EAAQC,KAAR,CAAhC;IACA5xG,SAAS,IAAIuuG,WAAW,CAAC3oH,KAAD,EAAQ+rH,KAAK,CAAC/rH,KAAd,EAAqB,sBAArB,CAAxB;EACH;;EACDg5H,eAAe,CAACjN,KAAD,EAAQ,IAAR,CAAf;EACA,OAAOA,KAAP;AACH;;AACD,SAASyyC,kBAAT,CAA4BxyC,KAA5B,EAAmChsH,KAAnC,EAA0CgO,IAA1C,EAAgDnN,IAAhD,EAAsD/F,KAAtD,EAA6D;EACzD,MAAM+9H,YAAY,GAAGC,4BAA4B,EAAjD;EACA,MAAMxF,QAAQ,GAAG2F,oBAAoB,EAArC;EACA,MAAMr7G,MAAM,GAAG01G,QAAQ,GAAGuF,YAAH,GAAkBA,YAAY,IAAIA,YAAY,CAACj7G,MAAtE,CAHyD,CAIzD;;EACA,MAAMmuG,KAAK,GAAGC,KAAK,CAACrlG,IAAN,CAAW3mB,KAAX,IACVy+J,WAAW,CAACzyC,KAAD,EAAQpuG,MAAR,EAAgB5P,IAAhB,EAAsBhO,KAAtB,EAA6Ba,IAA7B,EAAmC/F,KAAnC,CADf,CALyD,CAOzD;EACA;EACA;;EACA,IAAIkxH,KAAK,CAACl4G,UAAN,KAAqB,IAAzB,EAA+B;IAC3Bk4G,KAAK,CAACl4G,UAAN,GAAmBi4G,KAAnB;EACH;;EACD,IAAI8M,YAAY,KAAK,IAArB,EAA2B;IACvB,IAAIvF,QAAJ,EAAc;MACV;MACA,IAAIuF,YAAY,CAACv3H,KAAb,IAAsB,IAAtB,IAA8ByqH,KAAK,CAACnuG,MAAN,KAAiB,IAAnD,EAAyD;QACrD;QACAi7G,YAAY,CAACv3H,KAAb,GAAqByqH,KAArB;MACH;IACJ,CAND,MAOK;MACD,IAAI8M,YAAY,CAACxiI,IAAb,KAAsB,IAA1B,EAAgC;QAC5B;QACA;QACAwiI,YAAY,CAACxiI,IAAb,GAAoB01H,KAApB;MACH;IACJ;EACJ;;EACD,OAAOA,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2yC,YAAT,CAAsB1yC,KAAtB,EAA6B4G,KAA7B,EAAoC+rC,eAApC,EAAqD31J,YAArD,EAAmE;EAC/D,IAAI21J,eAAe,KAAK,CAAxB,EACI,OAAO,CAAC,CAAR;;EACJ,IAAIvkJ,SAAJ,EAAe;IACXw5G,qBAAqB,CAAC5H,KAAD,CAArB;IACAlD,UAAU,CAACkD,KAAD,EAAQ4G,KAAK,CAACvC,KAAD,CAAb,EAAsB,0CAAtB,CAAV;IACA1H,WAAW,CAACqD,KAAK,CAACrlG,IAAN,CAAWrzB,MAAZ,EAAoBs/H,KAAK,CAACt/H,MAA1B,EAAkC,0CAAlC,CAAX;IACAq1H,WAAW,CAACqD,KAAK,CAACrlG,IAAN,CAAWrzB,MAAZ,EAAoB04H,KAAK,CAAC4V,SAAN,CAAgBtuI,MAApC,EAA4C,8CAA5C,CAAX;IACAwgI,qBAAqB,CAAC9H,KAAD,CAArB;EACH;;EACD,MAAM4yC,QAAQ,GAAGhsC,KAAK,CAACt/H,MAAvB;;EACA,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsrK,eAApB,EAAqCtrK,CAAC,EAAtC,EAA0C;IACtCu/H,KAAK,CAACr8H,IAAN,CAAWyS,YAAX;IACAgjH,KAAK,CAAC4V,SAAN,CAAgBrrI,IAAhB,CAAqByS,YAArB;IACAgjH,KAAK,CAACrlG,IAAN,CAAWpwB,IAAX,CAAgB,IAAhB;EACH;;EACD,OAAOqoK,QAAP;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,UAAT,CAAoB7yC,KAApB,EAA2B4G,KAA3B,EAAkCh3G,OAAlC,EAA2C;EACvCxB,SAAS,IAAIuuG,WAAW,CAACuO,cAAc,CAACtE,KAAD,CAAf,EAAwB,IAAxB,EAA8B,gCAA9B,CAAxB;EACAqI,SAAS,CAACrI,KAAD,CAAT;;EACA,IAAI;IACA,MAAM/5E,SAAS,GAAGmzE,KAAK,CAACnzE,SAAxB;;IACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;MACpBimH,kBAAkB,CAAC;MAAE;MAAH,EAA6BjmH,SAA7B,EAAwCj9B,OAAxC,CAAlB;IACH,CAJD,CAKA;IACA;;;IACA,MAAMmjJ,UAAU,GAAG/yC,KAAK,CAACx1F,QAAzB;;IACA,IAAIuoI,UAAU,KAAK,IAAnB,EAAyB;MACrBC,eAAe,CAAChzC,KAAD,EAAQ4G,KAAR,EAAemsC,UAAf,EAA2B;MAAE;MAA7B,EAAuDnjJ,OAAvD,CAAf;IACH,CAVD,CAWA;IACA;IACA;IACA;IACA;;;IACA,IAAIowG,KAAK,CAACF,eAAV,EAA2B;MACvBE,KAAK,CAACF,eAAN,GAAwB,KAAxB;IACH,CAlBD,CAmBA;IACA;IACA;;;IACA,IAAIE,KAAK,CAAC2rC,oBAAV,EAAgC;MAC5BkG,qBAAqB,CAAC7xC,KAAD,EAAQ4G,KAAR,CAArB;IACH,CAxBD,CAyBA;IACA;IACA;;;IACA,IAAI5G,KAAK,CAAC0rC,iBAAV,EAA6B;MACzBoH,kBAAkB,CAAC;MAAE;MAAH,EAA6B9yC,KAAK,CAACnzE,SAAnC,EAA8Cj9B,OAA9C,CAAlB;IACH,CA9BD,CA+BA;;;IACA,MAAMs4H,UAAU,GAAGloB,KAAK,CAACkoB,UAAzB;;IACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;MACrBiqB,qBAAqB,CAACvrC,KAAD,EAAQshB,UAAR,CAArB;IACH;EACJ,CApCD,CAqCA,OAAOrkI,KAAP,EAAc;IACV;IACA;IACA,IAAIm8G,KAAK,CAACF,eAAV,EAA2B;MACvBE,KAAK,CAAC8rC,mBAAN,GAA4B,IAA5B;MACA9rC,KAAK,CAACF,eAAN,GAAwB,KAAxB;IACH;;IACD,MAAMj8G,KAAN;EACH,CA7CD,SA8CQ;IACJ+iH,KAAK,CAACtC,KAAD,CAAL,IAAgB,CAAC;IAAE;IAAnB;IACAqL,SAAS;EACZ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsjC,WAAT,CAAqBjzC,KAArB,EAA4B4G,KAA5B,EAAmCmsC,UAAnC,EAA+CnjJ,OAA/C,EAAwD;EACpDxB,SAAS,IAAIuuG,WAAW,CAACuO,cAAc,CAACtE,KAAD,CAAf,EAAwB,KAAxB,EAA+B,8BAA/B,CAAxB;EACA,MAAMrqB,KAAK,GAAGqqB,KAAK,CAACtC,KAAD,CAAnB;EACA,IAAI,CAAC/nB,KAAK,GAAG;EAAI;EAAb,MAA6C;EAAI;EAArD,EACI;EACJ0yB,SAAS,CAACrI,KAAD,CAAT,CALoD,CAMpD;EACA;;EACA,MAAMssC,sBAAsB,GAAG9kJ,SAAS,IAAIi/G,sBAAsB,EAAlE;;EACA,IAAI;IACA/B,sBAAsB,CAAC1E,KAAD,CAAtB;IACAgH,eAAe,CAAC5N,KAAK,CAACmI,iBAAP,CAAf;;IACA,IAAI4qC,UAAU,KAAK,IAAnB,EAAyB;MACrBC,eAAe,CAAChzC,KAAD,EAAQ4G,KAAR,EAAemsC,UAAf,EAA2B;MAAE;MAA7B,EAAuDnjJ,OAAvD,CAAf;IACH;;IACD,MAAMszI,uBAAuB,GAAG,CAAC3mD,KAAK,GAAG;IAAE;IAAX,MAAoD;IAAE;IAAtF,CANA,CAOA;IACA;;IACA,IAAI,CAAC22D,sBAAL,EAA6B;MACzB,IAAIhQ,uBAAJ,EAA6B;QACzB,MAAMryB,kBAAkB,GAAG7Q,KAAK,CAAC6Q,kBAAjC;;QACA,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;UAC7Ba,iBAAiB,CAAC9K,KAAD,EAAQiK,kBAAR,EAA4B,IAA5B,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,aAAa,GAAG5Q,KAAK,CAAC4Q,aAA5B;;QACA,IAAIA,aAAa,KAAK,IAAtB,EAA4B;UACxBgB,wBAAwB,CAAChL,KAAD,EAAQgK,aAAR,EAAuB;UAAE;UAAzB,EAAkE,IAAlE,CAAxB;QACH;;QACDkB,uBAAuB,CAAClL,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ,CAvBD,CAwBA;IACA;IACA;;;IACAusC,+BAA+B,CAACvsC,KAAD,CAA/B;IACAwsC,oBAAoB,CAACxsC,KAAD,CAApB,CA5BA,CA6BA;;IACA,IAAI5G,KAAK,CAACoC,cAAN,KAAyB,IAA7B,EAAmC;MAC/ByvC,qBAAqB,CAAC7xC,KAAD,EAAQ4G,KAAR,CAArB;IACH,CAhCD,CAiCA;IACA;;;IACA,IAAI,CAACssC,sBAAL,EAA6B;MACzB,IAAIhQ,uBAAJ,EAA6B;QACzB,MAAM5xB,iBAAiB,GAAGtR,KAAK,CAACsR,iBAAhC;;QACA,IAAIA,iBAAiB,KAAK,IAA1B,EAAgC;UAC5BI,iBAAiB,CAAC9K,KAAD,EAAQ0K,iBAAR,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,YAAY,GAAGrR,KAAK,CAACqR,YAA3B;;QACA,IAAIA,YAAY,KAAK,IAArB,EAA2B;UACvBO,wBAAwB,CAAChL,KAAD,EAAQyK,YAAR,EAAsB;UAAE;UAAxB,CAAxB;QACH;;QACDS,uBAAuB,CAAClL,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ;;IACD4qC,yBAAyB,CAACxxC,KAAD,EAAQ4G,KAAR,CAAzB,CAlDA,CAmDA;;IACA,MAAMshB,UAAU,GAAGloB,KAAK,CAACkoB,UAAzB;;IACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;MACrB8pB,sBAAsB,CAACprC,KAAD,EAAQshB,UAAR,CAAtB;IACH,CAvDD,CAwDA;IACA;IACA;;;IACA,MAAMr7F,SAAS,GAAGmzE,KAAK,CAACnzE,SAAxB;;IACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;MACpBimH,kBAAkB,CAAC;MAAE;MAAH,EAA6BjmH,SAA7B,EAAwCj9B,OAAxC,CAAlB;IACH,CA9DD,CA+DA;IACA;;;IACA,IAAI,CAACsjJ,sBAAL,EAA6B;MACzB,IAAIhQ,uBAAJ,EAA6B;QACzB,MAAM1xB,cAAc,GAAGxR,KAAK,CAACwR,cAA7B;;QACA,IAAIA,cAAc,KAAK,IAAvB,EAA6B;UACzBE,iBAAiB,CAAC9K,KAAD,EAAQ4K,cAAR,CAAjB;QACH;MACJ,CALD,MAMK;QACD,MAAMD,SAAS,GAAGvR,KAAK,CAACuR,SAAxB;;QACA,IAAIA,SAAS,KAAK,IAAlB,EAAwB;UACpBK,wBAAwB,CAAChL,KAAD,EAAQ2K,SAAR,EAAmB;UAAE;UAArB,CAAxB;QACH;;QACDO,uBAAuB,CAAClL,KAAD,EAAQ;QAAE;QAAV,CAAvB;MACH;IACJ;;IACD,IAAI5G,KAAK,CAAC+H,eAAN,KAA0B,IAA9B,EAAoC;MAChC;MACA;MACA;MACA;MACA;MACA;MACA/H,KAAK,CAAC+H,eAAN,GAAwB,KAAxB;IACH,CAxFD,CAyFA;IACA;IACA;IACA;IACA;IACA;;;IACA,IAAI,CAACmrC,sBAAL,EAA6B;MACzBtsC,KAAK,CAACtC,KAAD,CAAL,IAAgB,EAAE;MAAG;MAAH,EAA4B;MAAE;MAAhC,CAAhB;IACH;;IACD,IAAIsC,KAAK,CAACtC,KAAD,CAAL,GAAe;IAAI;IAAvB,EAAiE;MAC7DsC,KAAK,CAACtC,KAAD,CAAL,IAAgB,CAAC;MAAI;MAArB;MACAiH,2BAA2B,CAAC3E,KAAK,CAACrC,MAAD,CAAN,EAAgB,CAAC,CAAjB,CAA3B;IACH;EACJ,CAtGD,SAuGQ;IACJoL,SAAS;EACZ;AACJ;;AACD,SAASqjC,eAAT,CAAyBhzC,KAAzB,EAAgC4G,KAAhC,EAAuCmsC,UAAvC,EAAmDprI,EAAnD,EAAuD/X,OAAvD,EAAgE;EAC5D,MAAMyjJ,iBAAiB,GAAGrjC,gBAAgB,EAA1C;EACA,MAAMsjC,aAAa,GAAG3rI,EAAE,GAAG;EAAE;EAA7B;;EACA,IAAI;IACAsoG,gBAAgB,CAAC,CAAC,CAAF,CAAhB;;IACA,IAAIqjC,aAAa,IAAI1sC,KAAK,CAACt/H,MAAN,GAAeo+H,aAApC,EAAmD;MAC/C;MACA;MACAs9B,mBAAmB,CAAChjC,KAAD,EAAQ4G,KAAR,EAAelB,aAAf,EAA8B,CAAC,CAACt3G,SAAF,IAAei/G,sBAAsB,EAAnE,CAAnB;IACH;;IACD,MAAMkmC,WAAW,GAAGD,aAAa,GAAG;IAAE;IAAL,EAA+C;IAAE;IAAlF;IACAtpC,QAAQ,CAACupC,WAAD,EAAc3jJ,OAAd,CAAR;IACAmjJ,UAAU,CAACprI,EAAD,EAAK/X,OAAL,CAAV;EACH,CAVD,SAWQ;IACJqgH,gBAAgB,CAACojC,iBAAD,CAAhB;IACA,MAAMG,YAAY,GAAGF,aAAa,GAAG;IAAE;IAAL,EAA6C;IAAE;IAAjF;IACAtpC,QAAQ,CAACwpC,YAAD,EAAe5jJ,OAAf,CAAR;EACH;AACJ,EACD;AACA;AACA;;;AACA,SAAS6jJ,qBAAT,CAA+BzzC,KAA/B,EAAsCD,KAAtC,EAA6C6G,KAA7C,EAAoD;EAChD,IAAIN,kBAAkB,CAACvG,KAAD,CAAtB,EAA+B;IAC3B,MAAMnoF,KAAK,GAAGmoF,KAAK,CAACgR,cAApB;IACA,MAAMx0H,GAAG,GAAGwjH,KAAK,CAACiR,YAAlB;;IACA,KAAK,IAAIP,cAAc,GAAG74F,KAA1B,EAAiC64F,cAAc,GAAGl0H,GAAlD,EAAuDk0H,cAAc,EAArE,EAAyE;MACrE,MAAMz0D,GAAG,GAAGgkD,KAAK,CAACrlG,IAAN,CAAW81G,cAAX,CAAZ;;MACA,IAAIz0D,GAAG,CAAComD,cAAR,EAAwB;QACpBpmD,GAAG,CAAComD,cAAJ,CAAmB;QAAE;QAArB,EAA+CwE,KAAK,CAAC6J,cAAD,CAApD,EAAsEA,cAAtE;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAASijC,yBAAT,CAAmC1zC,KAAnC,EAA0C4G,KAA1C,EAAiD7G,KAAjD,EAAwD;EACpD,IAAI,CAACsM,kBAAkB,EAAvB,EACI;EACJsnC,wBAAwB,CAAC3zC,KAAD,EAAQ4G,KAAR,EAAe7G,KAAf,EAAsB4K,gBAAgB,CAAC5K,KAAD,EAAQ6G,KAAR,CAAtC,CAAxB;;EACA,IAAI,CAAC7G,KAAK,CAACxjB,KAAN,GAAc;EAAI;EAAnB,MAAyD;EAAI;EAAjE,EAAmG;IAC/Fq3D,4BAA4B,CAAC5zC,KAAD,EAAQ4G,KAAR,EAAe7G,KAAf,CAA5B;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS8zC,wBAAT,CAAkCC,QAAlC,EAA4C/zC,KAA5C,EAAmDg0C,iBAAiB,GAAGppC,gBAAvE,EAAyF;EACrF,MAAMoe,UAAU,GAAGhpB,KAAK,CAACgpB,UAAzB;;EACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;IACrB,IAAIC,UAAU,GAAGjpB,KAAK,CAAC/rH,KAAN,GAAc,CAA/B;;IACA,KAAK,IAAI3M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0hJ,UAAU,CAACzhJ,MAA/B,EAAuCD,CAAC,IAAI,CAA5C,EAA+C;MAC3C,MAAM2M,KAAK,GAAG+0I,UAAU,CAAC1hJ,CAAC,GAAG,CAAL,CAAxB;MACA,MAAMa,KAAK,GAAG8L,KAAK,KAAK,CAAC,CAAX,GACV+/J,iBAAiB,CAACh0C,KAAD,EAAQ+zC,QAAR,CADP,GAEVA,QAAQ,CAAC9/J,KAAD,CAFZ;MAGA8/J,QAAQ,CAAC9qB,UAAU,EAAX,CAAR,GAAyB9gJ,KAAzB;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8rK,yBAAT,CAAmCh4F,GAAnC,EAAwC;EACpC,MAAMgkD,KAAK,GAAGhkD,GAAG,CAACgkD,KAAlB,CADoC,CAEpC;EACA;;EACA,IAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,CAAC8rC,mBAA5B,EAAiD;IAC7C;IACA;IACA,MAAMn9B,SAAS,GAAG,IAAlB;IACA,OAAO3yD,GAAG,CAACgkD,KAAJ,GAAYi0C,WAAW,CAAC;IAAE;IAAH,EAA8BtlC,SAA9B,EAAyC3yD,GAAG,CAACxxC,QAA7C,EAAuDwxC,GAAG,CAAC3xC,KAA3D,EAAkE2xC,GAAG,CAAC1xC,IAAtE,EAA4E0xC,GAAG,CAACsmD,aAAhF,EAA+FtmD,GAAG,CAACumD,QAAnG,EAA6GvmD,GAAG,CAACnvB,SAAjH,EAA4HmvB,GAAG,CAAC4mD,OAAhI,EAAyI5mD,GAAG,CAACzxC,MAA7I,CAA9B;EACH;;EACD,OAAOy1F,KAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASi0C,WAAT,CAAqBjyJ,IAArB,EAA2B2sH,SAA3B,EAAsCokC,UAAtC,EAAkD1oI,KAAlD,EAAyDC,IAAzD,EAA+D64F,UAA/D,EAA2EC,KAA3E,EAAkFv2E,SAAlF,EAA6F+1E,OAA7F,EAAsGsxC,eAAtG,EAAuH;EACnH9lJ,SAAS,IAAIA,SAAS,CAAC4xG,KAAV,EAAb;EACA,MAAMmI,iBAAiB,GAAGzC,aAAa,GAAGr7F,KAA1C,CAFmH,CAGnH;EACA;EACA;;EACA,MAAM8pI,iBAAiB,GAAGhsC,iBAAiB,GAAG79F,IAA9C;EACA,MAAMsrG,SAAS,GAAGw+B,mBAAmB,CAACjsC,iBAAD,EAAoBgsC,iBAApB,CAArC;EACA,MAAM5pI,MAAM,GAAG,OAAO2pI,eAAP,KAA2B,UAA3B,GAAwCA,eAAe,EAAvD,GAA4DA,eAA3E;EACA,MAAMl0C,KAAK,GAAG4V,SAAS,CAACvR,KAAD,CAAT,GAAmBj2G,SAAS,GACtC,IAAIk9I,gBAAJ,CAAqBtpJ,IAArB,EAA2B;EAC3B4zH,SADA,EACW;EACXm9B,UAFA,EAEY;EACZ,IAHA,EAGM;EACNlmH,SAJA,EAIW;EACX8hF,SALA,EAKW;EACX0/B,gBAAgB,CAACz4B,SAAD,CAAhB,CAA4B/8H,IAA5B,CAAiC,IAAjC,EAAuCsvH,iBAAvC,CANA,EAM2D;EAC3DA,iBAPA,EAOmB;EACnBgsC,iBARA,EAQmB;EACnB,IATA,EASM;EACN,IAVA,EAUM;EACN,IAXA,EAWM;EACN,KAZA,EAYO;EACP,KAbA,EAaO;EACP,IAdA,EAcM;EACN,IAfA,EAeM;EACN,IAhBA,EAgBM;EACN,IAjBA,EAiBM;EACN,IAlBA,EAkBM;EACN,IAnBA,EAmBM;EACN,IApBA,EAoBM;EACN,IArBA,EAqBM;EACN,IAtBA,EAsBM;EACN,IAvBA,EAuBM;EACN,OAAOhxC,UAAP,KAAsB,UAAtB,GAAmC;EAC/BA,UAAU,EADd,GACmB;EACfA,UA1BJ,EA0BgB;EAChB,OAAOC,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KA3BxC,EA2B+C;EAC/C,IA5BA,EA4BM;EACNR,OA7BA,EA6BS;EACTr4F,MA9BA,EA8BQ;EACR,KA/BA,EA+BO;EACPF,KAhCA,EAgCO;EACPC,IAjCA,CADsC,GAmCtC;IACItoB,IAAI,EAAEA,IADV;IAEI4zH,SAAS,EAAEA,SAFf;IAGIprG,QAAQ,EAAEuoI,UAHd;IAIIvH,OAAO,EAAE,IAJb;IAKI3+G,SAAS,EAAEA,SALf;IAMI8hF,SAAS,EAAEA,SANf;IAOIh0G,IAAI,EAAEi7G,SAAS,CAACl/H,KAAV,GAAkBmC,IAAlB,CAAuB,IAAvB,EAA6BsvH,iBAA7B,CAPV;IAQIA,iBAAiB,EAAEA,iBARvB;IASIE,iBAAiB,EAAE8rC,iBATvB;IAUI1I,kBAAkB,EAAE,IAVxB;IAWI3rC,eAAe,EAAE,IAXrB;IAYIiI,eAAe,EAAE,IAZrB;IAaI2jC,iBAAiB,EAAE,KAbvB;IAcIC,oBAAoB,EAAE,KAd1B;IAeI/6B,aAAa,EAAE,IAfnB;IAgBIC,kBAAkB,EAAE,IAhBxB;IAiBIQ,YAAY,EAAE,IAjBlB;IAkBIC,iBAAiB,EAAE,IAlBvB;IAmBIC,SAAS,EAAE,IAnBf;IAoBIC,cAAc,EAAE,IApBpB;IAqBIC,YAAY,EAAE,IArBlB;IAsBIzb,OAAO,EAAE,IAtBb;IAuBIoM,cAAc,EAAE,IAvBpB;IAwBI8lB,UAAU,EAAE,IAxBhB;IAyBI0jB,iBAAiB,EAAE,OAAOzoC,UAAP,KAAsB,UAAtB,GAAmCA,UAAU,EAA7C,GAAkDA,UAzBzE;IA0BI0oC,YAAY,EAAE,OAAOzoC,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,EAAnC,GAAwCA,KA1B1D;IA2BIt7G,UAAU,EAAE,IA3BhB;IA4BI86G,OAAO,EAAEA,OA5Bb;IA6BIr4F,MAAM,EAAEA,MA7BZ;IA8BIuhI,mBAAmB,EAAE;EA9BzB,CAnCJ;;EAmEA,IAAI19I,SAAJ,EAAe;IACX;IACA;IACA;IACAzmB,MAAM,CAAC0sK,IAAP,CAAYr0C,KAAZ;EACH;;EACD,OAAOA,KAAP;AACH;;AACD,SAASo0C,mBAAT,CAA6BjsC,iBAA7B,EAAgDgsC,iBAAhD,EAAmE;EAC/D,MAAMv+B,SAAS,GAAGxnH,SAAS,GAAG,IAAIkgJ,cAAJ,EAAH,GAA0B,EAArD;;EACA,KAAK,IAAIjnK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8sK,iBAApB,EAAuC9sK,CAAC,EAAxC,EAA4C;IACxCuuI,SAAS,CAACrrI,IAAV,CAAelD,CAAC,GAAG8gI,iBAAJ,GAAwB,IAAxB,GAA+B06B,SAA9C;EACH;;EACD,OAAOjtB,SAAP;AACH;;AACD,SAAS0+B,WAAT,CAAqBhpJ,IAArB,EAA2B4C,KAA3B,EAAkC;EAC9B,OAAO,IAAIlK,KAAJ,CAAW,aAAYsH,IAAK,KAAIiwG,iBAAiB,CAACrtG,KAAD,CAAQ,GAAzD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqmJ,iBAAT,CAA2B12H,QAA3B,EAAqC22H,iBAArC,EAAwD1pI,aAAxD,EAAuE;EACnE;EACA,MAAM2pI,eAAe,GAAG3pI,aAAa,KAAKu0F,mBAAmB,CAACq1C,SAA9D;EACA,OAAO72H,QAAQ,CAAC82H,iBAAT,CAA2BH,iBAA3B,EAA8CC,eAA9C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,uBAAT,CAAiC50C,KAAjC,EAAwC4G,KAAxC,EAA+Ch3G,OAA/C,EAAwDilJ,SAAxD,EAAmE;EAC/D,MAAM9nB,QAAQ,GAAG+nB,uBAAuB,CAACluC,KAAD,CAAxC;;EACA,IAAIh3G,OAAO,KAAK,IAAhB,EAAsB;IAClB;IACA;IACA,IAAIxB,SAAJ,EAAe;MACXzmB,MAAM,CAAC65H,MAAP,CAAcuzC,uBAAuB,CAAC/0C,KAAD,CAArC;IACH;;IACD+sB,QAAQ,CAACxiJ,IAAT,CAAcsqK,SAAd;EACH,CAPD,MAQK;IACD9nB,QAAQ,CAACxiJ,IAAT,CAAcqlB,OAAd;;IACA,IAAIowG,KAAK,CAACF,eAAV,EAA2B;MACvBi1C,uBAAuB,CAAC/0C,KAAD,CAAvB,CAA+Bz1H,IAA/B,CAAoCsqK,SAApC,EAA+C9nB,QAAQ,CAACzlJ,MAAT,GAAkB,CAAjE;IACH;EACJ;AACJ;;AACD,SAASmrK,WAAT,CAAqBzyC,KAArB,EAA4Bg1C,OAA5B,EAAqChzJ,IAArC,EAA2ChO,KAA3C,EAAkD9L,KAAlD,EAAyD4G,KAAzD,EAAgE;EAC5Dsf,SAAS,IAAIpa,KAAK,KAAK,CAAvB,IAA4B;EACxB;EACAwoH,wBAAwB,CAACxoH,KAAD,EAAQ0xH,aAAR,EAAuB,uCAAvB,CAF5B;EAGAt3G,SAAS,IAAI2uG,aAAa,CAACjuH,KAAD,EAAQ5E,SAAR,EAAmB,gDAAnB,CAA1B;EACAkkB,SAAS,IAAIA,SAAS,CAAC2xG,KAAV,EAAb;EACA3xG,SAAS,IAAI4mJ,OAAb,IAAwBnuC,mBAAmB,CAACmuC,OAAD,EAAUh1C,KAAV,CAA3C;EACA,IAAI6I,aAAa,GAAGmsC,OAAO,GAAGA,OAAO,CAACnsC,aAAX,GAA2B,CAAC,CAAvD;EACA,MAAM9I,KAAK,GAAG3xG,SAAS,GACnB,IAAIq/I,UAAJ,CAAeztC,KAAf,EAAsB;EACtBh+G,IADA,EACM;EACNhO,KAFA,EAEO;EACP,IAHA,EAGM;EACN60H,aAJA,EAIe;EACf,CAAC,CALD,EAKI;EACJ,CAAC,CAND,EAMI;EACJ,CAAC,CAPD,EAOI;EACJ,IARA,EAQM;EACN,CATA,EASG;EACH,CAVA,EAUG;EACH3gI,KAXA,EAWO;EACP4G,KAZA,EAYO;EACP,IAbA,EAaM;EACN,IAdA,EAcM;EACN5E,SAfA,EAeW;EACX,IAhBA,EAgBM;EACN,IAjBA,EAiBM;EACN,IAlBA,EAkBM;EACN,IAnBA,EAmBM;EACN,IApBA,EAoBM;EACN,IArBA,EAqBM;EACN8qK,OAtBA,EAsBS;EACT,IAvBA,EAuBM;EACN,IAxBA,EAwBM;EACN,IAzBA,EAyBM;EACN9qK,SA1BA,EA0BW;EACX,IA3BA,EA2BM;EACN,IA5BA,EA4BM;EACNA,SA7BA,EA6BW;EACX,CA9BA,EA8BG;EACH,CA/BA,CADmB,GAiCnB;IACI8X,IADJ;IAEIhO,KAFJ;IAGIq4J,iBAAiB,EAAE,IAHvB;IAIIxjC,aAJJ;IAKIkI,cAAc,EAAE,CAAC,CALrB;IAMIC,YAAY,EAAE,CAAC,CANnB;IAOIs7B,oBAAoB,EAAE,CAAC,CAP3B;IAQIC,gBAAgB,EAAE,IARtB;IASIhwD,KAAK,EAAE,CATX;IAUIw7B,eAAe,EAAE,CAVrB;IAWI7vI,KAAK,EAAEA,KAXX;IAYI4G,KAAK,EAAEA,KAZX;IAaI09J,WAAW,EAAE,IAbjB;IAcIzjB,UAAU,EAAE,IAdhB;IAeI0jB,aAAa,EAAEviK,SAfnB;IAgBIggC,MAAM,EAAE,IAhBZ;IAiBIC,OAAO,EAAE,IAjBb;IAkBIuiI,MAAM,EAAE,IAlBZ;IAmBIriK,IAAI,EAAE,IAnBV;IAoBIwlJ,cAAc,EAAE,IApBpB;IAqBIv6I,KAAK,EAAE,IArBX;IAsBIsc,MAAM,EAAEojJ,OAtBZ;IAuBItsC,UAAU,EAAE,IAvBhB;IAwBI34H,MAAM,EAAE,IAxBZ;IAyBI48J,iBAAiB,EAAE,IAzBvB;IA0BIC,cAAc,EAAE1iK,SA1BpB;IA2BIwR,OAAO,EAAE,IA3Bb;IA4BImxJ,kBAAkB,EAAE,IA5BxB;IA6BIC,eAAe,EAAE5iK,SA7BrB;IA8BI6iK,aAAa,EAAE,CA9BnB;IA+BIC,aAAa,EAAE;EA/BnB,CAjCJ;;EAkEA,IAAI5+I,SAAJ,EAAe;IACX;IACA;IACA;IACAzmB,MAAM,CAAC0sK,IAAP,CAAYt0C,KAAZ;EACH;;EACD,OAAOA,KAAP;AACH;;AACD,SAASk1C,uBAAT,CAAiCC,aAAjC,EAAgDnD,eAAhD,EAAiEoD,SAAjE,EAA4E;EACxE,KAAK,IAAIrxC,UAAT,IAAuBoxC,aAAvB,EAAsC;IAClC,IAAIA,aAAa,CAACv3I,cAAd,CAA6BmmG,UAA7B,CAAJ,EAA8C;MAC1CqxC,SAAS,GAAGA,SAAS,KAAK,IAAd,GAAqB,EAArB,GAA0BA,SAAtC;MACA,MAAMC,YAAY,GAAGF,aAAa,CAACpxC,UAAD,CAAlC;;MACA,IAAIqxC,SAAS,CAACx3I,cAAV,CAAyBmmG,UAAzB,CAAJ,EAA0C;QACtCqxC,SAAS,CAACrxC,UAAD,CAAT,CAAsBv5H,IAAtB,CAA2BwnK,eAA3B,EAA4CqD,YAA5C;MACH,CAFD,MAGK;QACAD,SAAS,CAACrxC,UAAD,CAAT,GAAwB,CAACiuC,eAAD,EAAkBqD,YAAlB,CAAzB;MACH;IACJ;EACJ;;EACD,OAAOD,SAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASE,+BAAT,CAAyCr1C,KAAzC,EAAgDD,KAAhD,EAAuD;EACnD3xG,SAAS,IAAIw5G,qBAAqB,CAAC5H,KAAD,CAAlC;EACA,MAAMpoF,KAAK,GAAGmoF,KAAK,CAACgR,cAApB;EACA,MAAMx0H,GAAG,GAAGwjH,KAAK,CAACiR,YAAlB;EACA,MAAMskC,SAAS,GAAGt1C,KAAK,CAACrlG,IAAxB;EACA,MAAM46I,UAAU,GAAGx1C,KAAK,CAACjxH,KAAzB;EACA,MAAM0mK,eAAe,GAAGpnJ,SAAS,GAAG,IAAIsgJ,kBAAJ,EAAH,GAA8B,EAA/D;EACA,IAAI+G,WAAW,GAAG,IAAlB;EACA,IAAIC,YAAY,GAAG,IAAnB;;EACA,KAAK,IAAIruK,CAAC,GAAGuwC,KAAb,EAAoBvwC,CAAC,GAAGkV,GAAxB,EAA6BlV,CAAC,EAA9B,EAAkC;IAC9B,MAAMqpI,YAAY,GAAG4kC,SAAS,CAACjuK,CAAD,CAA9B;IACA,MAAMsuK,eAAe,GAAGjlC,YAAY,CAACxmG,MAArC,CAF8B,CAG9B;IACA;IACA;IACA;;IACA,MAAMuiI,aAAa,GAAI8I,UAAU,KAAK,IAAf,IAAuB,CAAC5U,gBAAgB,CAAC5gC,KAAD,CAAzC,GAClB61C,qBAAqB,CAACD,eAAD,EAAkBJ,UAAlB,CADH,GAElB,IAFJ;IAGAC,eAAe,CAACjrK,IAAhB,CAAqBkiK,aAArB;IACAgJ,WAAW,GAAGR,uBAAuB,CAACU,eAAD,EAAkBtuK,CAAlB,EAAqBouK,WAArB,CAArC;IACAC,YAAY,GAAGT,uBAAuB,CAACvkC,YAAY,CAACvmG,OAAd,EAAuB9iC,CAAvB,EAA0BquK,YAA1B,CAAtC;EACH;;EACD,IAAID,WAAW,KAAK,IAApB,EAA0B;IACtB,IAAIA,WAAW,CAAC93I,cAAZ,CAA2B,OAA3B,CAAJ,EAAyC;MACrCoiG,KAAK,CAACxjB,KAAN,IAAe;MAAG;MAAlB;IACH;;IACD,IAAIk5D,WAAW,CAAC93I,cAAZ,CAA2B,OAA3B,CAAJ,EAAyC;MACrCoiG,KAAK,CAACxjB,KAAN,IAAe;MAAG;MAAlB;IACH;EACJ;;EACDwjB,KAAK,CAAC0sC,aAAN,GAAsB+I,eAAtB;EACAz1C,KAAK,CAAC71F,MAAN,GAAeurI,WAAf;EACA11C,KAAK,CAAC51F,OAAN,GAAgBurI,YAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,WAAT,CAAqBhhK,IAArB,EAA2B;EACvB,IAAIA,IAAI,KAAK,OAAb,EACI,OAAO,WAAP;EACJ,IAAIA,IAAI,KAAK,KAAb,EACI,OAAO,SAAP;EACJ,IAAIA,IAAI,KAAK,YAAb,EACI,OAAO,YAAP;EACJ,IAAIA,IAAI,KAAK,WAAb,EACI,OAAO,WAAP;EACJ,IAAIA,IAAI,KAAK,UAAb,EACI,OAAO,UAAP;EACJ,IAAIA,IAAI,KAAK,UAAb,EACI,OAAO,UAAP;EACJ,OAAOA,IAAP;AACH;;AACD,SAASihK,uBAAT,CAAiC91C,KAAjC,EAAwCD,KAAxC,EAA+C6G,KAA/C,EAAsDgU,QAAtD,EAAgE1yI,KAAhE,EAAuE21C,QAAvE,EAAiFs5G,SAAjF,EAA4F4e,UAA5F,EAAwG;EACpG3nJ,SAAS,IAAI2uG,aAAa,CAAC70H,KAAD,EAAQ26J,SAAR,EAAmB,2CAAnB,CAA1B;EACA,MAAMp0J,OAAO,GAAGk8H,gBAAgB,CAAC5K,KAAD,EAAQ6G,KAAR,CAAhC;EACA,IAAIovC,SAAS,GAAGj2C,KAAK,CAAC71F,MAAtB;EACA,IAAI+rI,SAAJ;;EACA,IAAI,CAACF,UAAD,IAAeC,SAAS,IAAI,IAA5B,KAAqCC,SAAS,GAAGD,SAAS,CAACp7B,QAAD,CAA1D,CAAJ,EAA2E;IACvEs7B,oBAAoB,CAACl2C,KAAD,EAAQ4G,KAAR,EAAeqvC,SAAf,EAA0Br7B,QAA1B,EAAoC1yI,KAApC,CAApB;IACA,IAAIq+H,eAAe,CAACxG,KAAD,CAAnB,EACIo2C,iBAAiB,CAACvvC,KAAD,EAAQ7G,KAAK,CAAC/rH,KAAd,CAAjB;;IACJ,IAAIoa,SAAJ,EAAe;MACXgoJ,sBAAsB,CAACxvC,KAAD,EAAQn4H,OAAR,EAAiBsxH,KAAK,CAAC/9G,IAAvB,EAA6Bi0J,SAA7B,EAAwC/tK,KAAxC,CAAtB;IACH;EACJ,CAPD,MAQK,IAAI63H,KAAK,CAAC/9G,IAAN,GAAa;EAAE;EAAnB,EAA6C;IAC9C44H,QAAQ,GAAGi7B,WAAW,CAACj7B,QAAD,CAAtB;;IACA,IAAIxsH,SAAJ,EAAe;MACXuqI,8BAA8B,CAAC/d,QAAD,CAA9B;;MACA,IAAI,CAAC0K,eAAe,CAAC72I,OAAD,EAAUmsI,QAAV,EAAoB7a,KAAK,CAAC73H,KAA1B,EAAiC83H,KAAK,CAAC4C,OAAvC,CAApB,EAAqE;QACjE2iB,0BAA0B,CAAC3K,QAAD,EAAW7a,KAAK,CAAC73H,KAAjB,EAAwB63H,KAAK,CAAC/9G,IAA9B,EAAoC4kH,KAApC,CAA1B;MACH;;MACDx4G,SAAS,CAACmyG,mBAAV;IACH,CAR6C,CAS9C;IACA;;;IACAr4H,KAAK,GAAGivJ,SAAS,IAAI,IAAb,GAAoBA,SAAS,CAACjvJ,KAAD,EAAQ63H,KAAK,CAAC73H,KAAN,IAAe,EAAvB,EAA2B0yI,QAA3B,CAA7B,GAAoE1yI,KAA5E;IACA21C,QAAQ,CAACg2F,WAAT,CAAqBplI,OAArB,EAA8BmsI,QAA9B,EAAwC1yI,KAAxC;EACH,CAbI,MAcA,IAAI63H,KAAK,CAAC/9G,IAAN,GAAa;EAAG;EAApB,EAAkD;IACnD;IACA;IACA,IAAIoM,SAAS,IAAI,CAAC62H,eAAe,CAACjlB,KAAK,CAAC4C,OAAP,EAAgB7C,KAAK,CAAC73H,KAAtB,CAAjC,EAA+D;MAC3Dq9I,0BAA0B,CAAC3K,QAAD,EAAW7a,KAAK,CAAC73H,KAAjB,EAAwB63H,KAAK,CAAC/9G,IAA9B,EAAoC4kH,KAApC,CAA1B;IACH;EACJ;AACJ;AACD;;;AACA,SAASuvC,iBAAT,CAA2BvvC,KAA3B,EAAkCyvC,SAAlC,EAA6C;EACzCjoJ,SAAS,IAAIu5G,WAAW,CAACf,KAAD,CAAxB;EACA,MAAM0vC,mBAAmB,GAAGvrC,wBAAwB,CAACsrC,SAAD,EAAYzvC,KAAZ,CAApD;;EACA,IAAI,EAAE0vC,mBAAmB,CAAChyC,KAAD,CAAnB,GAA6B;EAAG;EAAlC,CAAJ,EAAqE;IACjEgyC,mBAAmB,CAAChyC,KAAD,CAAnB,IAA8B;IAAG;IAAjC;EACH;AACJ;;AACD,SAASiyC,oBAAT,CAA8B3vC,KAA9B,EAAqCn4H,OAArC,EAA8CuT,IAA9C,EAAoDo5F,QAApD,EAA8DlzG,KAA9D,EAAqE;EACjE,MAAM21C,QAAQ,GAAG+oF,KAAK,CAAC7B,QAAD,CAAtB;EACA3pB,QAAQ,GAAG0jD,yBAAyB,CAAC1jD,QAAD,CAApC;EACA,MAAMo7D,UAAU,GAAGxX,0BAA0B,CAAC92J,KAAD,CAA7C;;EACA,IAAI8Z,IAAI,GAAG;EAAE;EAAb,EAAuC;IACnC,IAAI9Z,KAAK,IAAI,IAAb,EAAmB;MACf21C,QAAQ,CAAC71B,eAAT,CAAyBvZ,OAAzB,EAAkC2sG,QAAlC;IACH,CAFD,MAGK;MACDv9D,QAAQ,CAAC5oC,YAAT,CAAsBxG,OAAtB,EAA+B2sG,QAA/B,EAAyCo7D,UAAzC;IACH;EACJ,CAPD,MAQK;IACD,MAAMzmH,WAAW,GAAGs2F,iBAAiB,CAAE,YAAWvmH,IAAI,CAACk4E,SAAL,CAAe;MAAE,CAACoD,QAAD,GAAYo7D;IAAd,CAAf,EAA2C,IAA3C,EAAiD,CAAjD,CAAoD,EAAjE,CAArC;IACA34H,QAAQ,CAAC4S,QAAT,CAAkBhiD,OAAlB,EAA2BshD,WAA3B;EACH;AACJ;;AACD,SAASqmH,sBAAT,CAAgCxvC,KAAhC,EAAuCn4H,OAAvC,EAAgDuT,IAAhD,EAAsDi0J,SAAtD,EAAiE/tK,KAAjE,EAAwE;EACpE,IAAI8Z,IAAI,IAAI;EAAE;EAAF,EAA6B;EAAE;EAAnC,CAAR,EAAuE;IACnE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,KAAK,IAAI3a,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4uK,SAAS,CAAC3uK,MAA9B,EAAsCD,CAAC,IAAI,CAA3C,EAA8C;MAC1CkvK,oBAAoB,CAAC3vC,KAAD,EAAQn4H,OAAR,EAAiBuT,IAAjB,EAAuBi0J,SAAS,CAAC5uK,CAAC,GAAG,CAAL,CAAhC,EAAyCa,KAAzC,CAApB;IACH;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAASuuK,wBAAT,CAAkCz2C,KAAlC,EAAyC4G,KAAzC,EAAgD5qD,GAAhD,EAAqD;EACjD,MAAM06F,SAAS,GAAG9pC,eAAe,EAAjC;;EACA,IAAI5M,KAAK,CAACF,eAAV,EAA2B;IACvB,IAAI9jD,GAAG,CAACmmD,iBAAR,EACInmD,GAAG,CAACmmD,iBAAJ,CAAsBnmD,GAAtB;IACJ,MAAMy0D,cAAc,GAAGiiC,YAAY,CAAC1yC,KAAD,EAAQ4G,KAAR,EAAe,CAAf,EAAkB,IAAlB,CAAnC;IACAx4G,SAAS,IACLuuG,WAAW,CAAC8T,cAAD,EAAiBimC,SAAS,CAAC3lC,cAA3B,EAA2C,0FAA3C,CADf;IAEA4lC,0BAA0B,CAAC32C,KAAD,EAAQ02C,SAAR,EAAmB9vC,KAAnB,EAA0B6J,cAA1B,EAA0Cz0D,GAA1C,CAA1B;IACAq5F,+BAA+B,CAACr1C,KAAD,EAAQ02C,SAAR,CAA/B;EACH;;EACD,MAAMrkC,SAAS,GAAGwF,iBAAiB,CAACjR,KAAD,EAAQ5G,KAAR,EAAe02C,SAAS,CAAC3lC,cAAzB,EAAyC2lC,SAAzC,CAAnC;EACAjvB,eAAe,CAACpV,SAAD,EAAYzL,KAAZ,CAAf;EACA,MAAM6M,MAAM,GAAG9I,gBAAgB,CAAC+rC,SAAD,EAAY9vC,KAAZ,CAA/B;;EACA,IAAI6M,MAAJ,EAAY;IACRgU,eAAe,CAAChU,MAAD,EAAS7M,KAAT,CAAf;EACH;;EACD,OAAOyL,SAAP;AACH;AACD;AACA;AACA;;;AACA,SAASukC,iBAAT,CAA2B52C,KAA3B,EAAkC4G,KAAlC,EAAyC7G,KAAzC,EAAgD82C,SAAhD,EAA2D;EACvD;EACA;EACAzoJ,SAAS,IAAIw5G,qBAAqB,CAAC5H,KAAD,CAAlC;EACA,IAAI6kB,aAAa,GAAG,KAApB;;EACA,IAAIxY,kBAAkB,EAAtB,EAA0B;IACtB,MAAM/J,aAAa,GAAGw0C,uBAAuB,CAAC92C,KAAD,EAAQ4G,KAAR,EAAe7G,KAAf,CAA7C;IACA,MAAMg3C,UAAU,GAAGF,SAAS,KAAK,IAAd,GAAqB,IAArB,GAA4B;MAAE,IAAI,CAAC;IAAP,CAA/C;;IACA,IAAIv0C,aAAa,KAAK,IAAtB,EAA4B;MACxBuiB,aAAa,GAAG,IAAhB;MACAmyB,cAAc,CAACj3C,KAAD,EAAQC,KAAK,CAACrlG,IAAN,CAAWrzB,MAAnB,EAA2Bg7H,aAAa,CAACh7H,MAAzC,CAAd,CAFwB,CAGxB;MACA;MACA;MACA;MACA;MACA;;MACA,KAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi7H,aAAa,CAACh7H,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;QAC3C,MAAM20E,GAAG,GAAGsmD,aAAa,CAACj7H,CAAD,CAAzB;QACA,IAAI20E,GAAG,CAACmmD,iBAAR,EACInmD,GAAG,CAACmmD,iBAAJ,CAAsBnmD,GAAtB;MACP;;MACD,IAAIi7F,kBAAkB,GAAG,KAAzB;MACA,IAAIC,uBAAuB,GAAG,KAA9B;MACA,IAAIxF,YAAY,GAAGgB,YAAY,CAAC1yC,KAAD,EAAQ4G,KAAR,EAAetE,aAAa,CAACh7H,MAA7B,EAAqC,IAArC,CAA/B;MACA8mB,SAAS,IACL0uG,UAAU,CAAC40C,YAAD,EAAe3xC,KAAK,CAACgR,cAArB,EAAqC,2DAArC,CADd;;MAEA,KAAK,IAAI1pI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi7H,aAAa,CAACh7H,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;QAC3C,MAAM20E,GAAG,GAAGsmD,aAAa,CAACj7H,CAAD,CAAzB,CAD2C,CAE3C;QACA;;QACA04H,KAAK,CAACysC,WAAN,GAAoBx4B,cAAc,CAACjU,KAAK,CAACysC,WAAP,EAAoBxwF,GAAG,CAAC7uB,SAAxB,CAAlC;QACAwpH,0BAA0B,CAAC32C,KAAD,EAAQD,KAAR,EAAe6G,KAAf,EAAsB8qC,YAAtB,EAAoC11F,GAApC,CAA1B;QACAm7F,mBAAmB,CAACzF,YAAD,EAAe11F,GAAf,EAAoB+6F,UAApB,CAAnB;QACA,IAAI/6F,GAAG,CAAComD,cAAJ,KAAuB,IAA3B,EACIrC,KAAK,CAACxjB,KAAN,IAAe;QAAE;QAAjB;QACJ,IAAIvgC,GAAG,CAAC7sC,YAAJ,KAAqB,IAArB,IAA6B6sC,GAAG,CAAC7uB,SAAJ,KAAkB,IAA/C,IAAuD6uB,GAAG,CAAC9sC,QAAJ,KAAiB,CAA5E,EACI6wF,KAAK,CAACxjB,KAAN,IAAe;QAAI;QAAnB;QACJ,MAAM66D,cAAc,GAAGp7F,GAAG,CAACh6D,IAAJ,CAASnb,SAAhC,CAX2C,CAY3C;QACA;;QACA,IAAI,CAACowK,kBAAD,KACCG,cAAc,CAAC5gE,WAAf,IAA8B4gE,cAAc,CAACxtI,QAA7C,IAAyDwtI,cAAc,CAAC9hE,SADzE,CAAJ,EACyF;UACrF;UACA;UACA;UACA,CAAC0qB,KAAK,CAAC4Q,aAAN,KAAwB5Q,KAAK,CAAC4Q,aAAN,GAAsB,EAA9C,CAAD,EAAoDrmI,IAApD,CAAyDw1H,KAAK,CAAC/rH,KAA/D;UACAijK,kBAAkB,GAAG,IAArB;QACH;;QACD,IAAI,CAACC,uBAAD,KAA6BE,cAAc,CAAC5gE,WAAf,IAA8B4gE,cAAc,CAAC9hE,SAA1E,CAAJ,EAA0F;UACtF,CAAC0qB,KAAK,CAAC6Q,kBAAN,KAA6B7Q,KAAK,CAAC6Q,kBAAN,GAA2B,EAAxD,CAAD,EAA8DtmI,IAA9D,CAAmEw1H,KAAK,CAAC/rH,KAAzE;UACAkjK,uBAAuB,GAAG,IAA1B;QACH;;QACDxF,YAAY;MACf;;MACD2D,+BAA+B,CAACr1C,KAAD,EAAQD,KAAR,CAA/B;IACH;;IACD,IAAIg3C,UAAJ,EACIM,uBAAuB,CAACt3C,KAAD,EAAQ82C,SAAR,EAAmBE,UAAnB,CAAvB;EACP,CA3DsD,CA4DvD;;;EACAh3C,KAAK,CAACysC,WAAN,GAAoBx4B,cAAc,CAACjU,KAAK,CAACysC,WAAP,EAAoBzsC,KAAK,CAACjxH,KAA1B,CAAlC;EACA,OAAO+1I,aAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyyB,0BAAT,CAAoCt3C,KAApC,EAA2CD,KAA3C,EAAkD6G,KAAlD,EAAyD8qC,YAAzD,EAAuE6F,gBAAvE,EAAyFv7F,GAAzF,EAA8F;EAC1F5tD,SAAS,IAAIw5G,qBAAqB,CAAC5H,KAAD,CAAlC;EACA,MAAM7wF,YAAY,GAAG6sC,GAAG,CAAC7sC,YAAzB;;EACA,IAAIA,YAAJ,EAAkB;IACd,IAAIs8H,kBAAkB,GAAGzrC,KAAK,CAACyrC,kBAA/B;;IACA,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;MAC7BA,kBAAkB,GAAGzrC,KAAK,CAACyrC,kBAAN,GAA2B,EAAhD;IACH;;IACD,MAAM+L,WAAW,GAAG,CAACz3C,KAAK,CAAC/rH,KAA3B;;IACA,IAAIyjK,sBAAsB,CAAChM,kBAAD,CAAtB,IAA8C+L,WAAlD,EAA+D;MAC3D;MACA;MACA;MACA/L,kBAAkB,CAAClhK,IAAnB,CAAwBitK,WAAxB;IACH;;IACD/L,kBAAkB,CAAClhK,IAAnB,CAAwBmnK,YAAxB,EAAsC6F,gBAAtC,EAAwDpoI,YAAxD;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsoI,sBAAT,CAAgChM,kBAAhC,EAAoD;EAChD,IAAIpkK,CAAC,GAAGokK,kBAAkB,CAACnkK,MAA3B;;EACA,OAAOD,CAAC,GAAG,CAAX,EAAc;IACV,MAAMa,KAAK,GAAGujK,kBAAkB,CAAC,EAAEpkK,CAAH,CAAhC;;IACA,IAAI,OAAOa,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,GAAG,CAAzC,EAA4C;MACxC,OAAOA,KAAP;IACH;EACJ;;EACD,OAAO,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASyrK,wBAAT,CAAkC3zC,KAAlC,EAAyC4G,KAAzC,EAAgD7G,KAAhD,EAAuD0T,MAAvD,EAA+D;EAC3D,MAAM77F,KAAK,GAAGmoF,KAAK,CAACgR,cAApB;EACA,MAAMx0H,GAAG,GAAGwjH,KAAK,CAACiR,YAAlB;;EACA,IAAI,CAAChR,KAAK,CAACF,eAAX,EAA4B;IACxB0V,8BAA8B,CAACzV,KAAD,EAAQ6G,KAAR,CAA9B;EACH;;EACD6gB,eAAe,CAAChU,MAAD,EAAS7M,KAAT,CAAf;EACA,MAAM6lC,aAAa,GAAG1sC,KAAK,CAAC0sC,aAA5B;;EACA,KAAK,IAAIplK,CAAC,GAAGuwC,KAAb,EAAoBvwC,CAAC,GAAGkV,GAAxB,EAA6BlV,CAAC,EAA9B,EAAkC;IAC9B,MAAM20E,GAAG,GAAGgkD,KAAK,CAACrlG,IAAN,CAAWtzB,CAAX,CAAZ;IACA,MAAM+iJ,WAAW,GAAG3jB,cAAc,CAACzqD,GAAD,CAAlC;;IACA,IAAIouE,WAAJ,EAAiB;MACbh8H,SAAS,IAAIilH,eAAe,CAACtT,KAAD,EAAQ;MAAE;MAAV,CAA5B;MACA23C,iBAAiB,CAAC9wC,KAAD,EAAQ7G,KAAR,EAAe/jD,GAAf,CAAjB;IACH;;IACD,MAAMq2D,SAAS,GAAGwF,iBAAiB,CAACjR,KAAD,EAAQ5G,KAAR,EAAe34H,CAAf,EAAkB04H,KAAlB,CAAnC;IACA0nB,eAAe,CAACpV,SAAD,EAAYzL,KAAZ,CAAf;;IACA,IAAI6lC,aAAa,KAAK,IAAtB,EAA4B;MACxBkL,kBAAkB,CAAC/wC,KAAD,EAAQv/H,CAAC,GAAGuwC,KAAZ,EAAmBy6F,SAAnB,EAA8Br2D,GAA9B,EAAmC+jD,KAAnC,EAA0C0sC,aAA1C,CAAlB;IACH;;IACD,IAAIriB,WAAJ,EAAiB;MACb,MAAMhC,aAAa,GAAGrd,wBAAwB,CAAChL,KAAK,CAAC/rH,KAAP,EAAc4yH,KAAd,CAA9C;MACAwhB,aAAa,CAACxjB,OAAD,CAAb,GAAyByN,SAAzB;IACH;EACJ;AACJ;;AACD,SAASuhC,4BAAT,CAAsC5zC,KAAtC,EAA6C4G,KAA7C,EAAoD7G,KAApD,EAA2D;EACvD,MAAMnoF,KAAK,GAAGmoF,KAAK,CAACgR,cAApB;EACA,MAAMx0H,GAAG,GAAGwjH,KAAK,CAACiR,YAAlB;EACA,MAAM4mC,YAAY,GAAG73C,KAAK,CAAC/rH,KAA3B;EACA,MAAMm6H,qBAAqB,GAAGE,wBAAwB,EAAtD;;EACA,IAAI;IACA4B,gBAAgB,CAAC2nC,YAAD,CAAhB;;IACA,KAAK,IAAIC,QAAQ,GAAGjgI,KAApB,EAA2BigI,QAAQ,GAAGt7J,GAAtC,EAA2Cs7J,QAAQ,EAAnD,EAAuD;MACnD,MAAM77F,GAAG,GAAGgkD,KAAK,CAACrlG,IAAN,CAAWk9I,QAAX,CAAZ;MACA,MAAMxlC,SAAS,GAAGzL,KAAK,CAACixC,QAAD,CAAvB;MACAzpC,wBAAwB,CAACypC,QAAD,CAAxB;;MACA,IAAI77F,GAAG,CAAC7sC,YAAJ,KAAqB,IAArB,IAA6B6sC,GAAG,CAAC9sC,QAAJ,KAAiB,CAA9C,IAAmD8sC,GAAG,CAAC7uB,SAAJ,KAAkB,IAAzE,EAA+E;QAC3E2qH,gCAAgC,CAAC97F,GAAD,EAAMq2D,SAAN,CAAhC;MACH;IACJ;EACJ,CAVD,SAWQ;IACJpC,gBAAgB,CAAC,CAAC,CAAF,CAAhB;IACA7B,wBAAwB,CAACD,qBAAD,CAAxB;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2pC,gCAAT,CAA0C97F,GAA1C,EAA+Cq2D,SAA/C,EAA0D;EACtD,IAAIr2D,GAAG,CAAC7sC,YAAJ,KAAqB,IAAzB,EAA+B;IAC3B6sC,GAAG,CAAC7sC,YAAJ,CAAiB;IAAE;IAAnB,EAA6CkjG,SAA7C;EACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASykC,uBAAT,CAAiC92C,KAAjC,EAAwC8zC,QAAxC,EAAkD/zC,KAAlD,EAAyD;EACrD3xG,SAAS,IAAIw5G,qBAAqB,CAAC5H,KAAD,CAAlC;EACA5xG,SAAS,IAAIilH,eAAe,CAACtT,KAAD,EAAQ;EAAE;EAAF,EAA6B;EAAG;EAAxC,CAA5B;EACA,MAAMg4C,QAAQ,GAAG/3C,KAAK,CAAC4rC,iBAAvB;EACA,IAAI3qI,OAAO,GAAG,IAAd;;EACA,IAAI82I,QAAJ,EAAc;IACV,KAAK,IAAI1wK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0wK,QAAQ,CAACzwK,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;MACtC,MAAM20E,GAAG,GAAG+7F,QAAQ,CAAC1wK,CAAD,CAApB;;MACA,IAAIw6J,0BAA0B,CAAC9hC,KAAD,EAAQ/jD,GAAG,CAAC/xC,SAAZ;MAAuB;MAAuB,KAA9C,CAA9B,EAAoF;QAChFhJ,OAAO,KAAKA,OAAO,GAAG7S,SAAS,GAAG,IAAImgJ,YAAJ,EAAH,GAAwB,EAAhD,CAAP;QACAl4B,kBAAkB,CAACb,8BAA8B,CAACzV,KAAD,EAAQ+zC,QAAR,CAA/B,EAAkD9zC,KAAlD,EAAyDhkD,GAAG,CAACh6D,IAA7D,CAAlB;;QACA,IAAIykH,cAAc,CAACzqD,GAAD,CAAlB,EAAyB;UACrB,IAAI5tD,SAAJ,EAAe;YACXilH,eAAe,CAACtT,KAAD,EAAQ;YAAE;YAAV,EAAoC,IAAGA,KAAK,CAAC73H,KAAM,4CAAhB,GAC7C,8CAA6C8vG,SAAS,CAACh8B,GAAG,CAACh6D,IAAL,CAAW,aADvD,CAAf;;YAEA,IAAI+9G,KAAK,CAACxjB,KAAN,GAAc;YAAE;YAApB,EAAsD;cAClD;cACA;cACAijD,2BAA2B,CAACz/B,KAAD,EAAQ9+F,OAAO,CAAC,CAAD,CAAP,CAAWjf,IAAnB,EAAyBg6D,GAAG,CAACh6D,IAA7B,CAA3B;YACH;UACJ;;UACDg2J,mBAAmB,CAACh4C,KAAD,EAAQD,KAAR,CAAnB,CAVqB,CAWrB;;UACA9+F,OAAO,CAAC+0B,OAAR,CAAgBgmB,GAAhB;QACH,CAbD,MAcK;UACD/6C,OAAO,CAAC12B,IAAR,CAAayxE,GAAb;QACH;MACJ;IACJ;EACJ;;EACD,OAAO/6C,OAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS+2I,mBAAT,CAA6Bh4C,KAA7B,EAAoCi4C,SAApC,EAA+C;EAC3C7pJ,SAAS,IAAIw5G,qBAAqB,CAAC5H,KAAD,CAAlC;EACAi4C,SAAS,CAAC17D,KAAV,IAAmB;EAAE;EAArB;EACA,CAACyjB,KAAK,CAACkoB,UAAN,KAAqBloB,KAAK,CAACkoB,UAAN,GAAmB95H,SAAS,GAAG,IAAIogJ,eAAJ,EAAH,GAA2B,EAA5E,CAAD,EACKjkK,IADL,CACU0tK,SAAS,CAACjkK,KADpB;AAEH;AACD;;;AACA,SAASqjK,uBAAT,CAAiCt3C,KAAjC,EAAwC82C,SAAxC,EAAmDE,UAAnD,EAA+D;EAC3D,IAAIF,SAAJ,EAAe;IACX,MAAM9tB,UAAU,GAAGhpB,KAAK,CAACgpB,UAAN,GAAmB36H,SAAS,GAAG,IAAIqgJ,eAAJ,EAAH,GAA2B,EAA1E,CADW,CAEX;IACA;IACA;;IACA,KAAK,IAAIpnK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwvK,SAAS,CAACvvK,MAA9B,EAAsCD,CAAC,IAAI,CAA3C,EAA8C;MAC1C,MAAM2M,KAAK,GAAG+iK,UAAU,CAACF,SAAS,CAACxvK,CAAC,GAAG,CAAL,CAAV,CAAxB;MACA,IAAI2M,KAAK,IAAI,IAAb,EACI,MAAM,IAAIknH,YAAJ,CAAiB,CAAC;MAAI;MAAtB,EAA+D9sG,SAAS,IAAK,mBAAkByoJ,SAAS,CAACxvK,CAAC,GAAG,CAAL,CAAQ,cAAhH,CAAN;MACJ0hJ,UAAU,CAACx+I,IAAX,CAAgBssK,SAAS,CAACxvK,CAAD,CAAzB,EAA8B2M,KAA9B;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASmjK,mBAAT,CAA6BzF,YAA7B,EAA2C11F,GAA3C,EAAgD+6F,UAAhD,EAA4D;EACxD,IAAIA,UAAJ,EAAgB;IACZ,IAAI/6F,GAAG,CAACzsC,QAAR,EAAkB;MACd,KAAK,IAAIloC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG20E,GAAG,CAACzsC,QAAJ,CAAajoC,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;QAC1C0vK,UAAU,CAAC/6F,GAAG,CAACzsC,QAAJ,CAAaloC,CAAb,CAAD,CAAV,GAA8BqqK,YAA9B;MACH;IACJ;;IACD,IAAIjrC,cAAc,CAACzqD,GAAD,CAAlB,EACI+6F,UAAU,CAAC,EAAD,CAAV,GAAiBrF,YAAjB;EACP;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASsF,cAAT,CAAwBj3C,KAAxB,EAA+B/rH,KAA/B,EAAsCkkK,kBAAtC,EAA0D;EACtD9pJ,SAAS,IACLyuG,cAAc,CAACq7C,kBAAD,EAAqBn4C,KAAK,CAACiR,YAAN,GAAqBjR,KAAK,CAACgR,cAAhD,EAAgE,sCAAhE,CADlB;EAEAhR,KAAK,CAACxjB,KAAN,IAAe;EAAE;EAAjB,CAHsD,CAItD;;EACAwjB,KAAK,CAACgR,cAAN,GAAuB/8H,KAAvB;EACA+rH,KAAK,CAACiR,YAAN,GAAqBh9H,KAAK,GAAGkkK,kBAA7B;EACAn4C,KAAK,CAACgY,eAAN,GAAwB/jI,KAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2iK,0BAAT,CAAoC32C,KAApC,EAA2CD,KAA3C,EAAkD6G,KAAlD,EAAyD6J,cAAzD,EAAyEz0D,GAAzE,EAA8E;EAC1E5tD,SAAS,IACLouG,wBAAwB,CAACiU,cAAD,EAAiB/K,aAAjB,EAAgC,4BAAhC,CAD5B;EAEA1F,KAAK,CAACrlG,IAAN,CAAW81G,cAAX,IAA6Bz0D,GAA7B;EACA,MAAMm8F,gBAAgB,GAAGn8F,GAAG,CAAC7tD,OAAJ,KAAgB6tD,GAAG,CAAC7tD,OAAJ,GAAc26G,aAAa,CAAC9sD,GAAG,CAACh6D,IAAL,EAAW,IAAX,CAA3C,CAAzB,CAJ0E,CAK1E;EACA;EACA;;EACA,MAAMo2J,mBAAmB,GAAG,IAAI5lC,mBAAJ,CAAwB2lC,gBAAxB,EAA0C1xC,cAAc,CAACzqD,GAAD,CAAxD,EAA+DlyC,iBAA/D,CAA5B;EACAk2F,KAAK,CAAC4V,SAAN,CAAgBnF,cAAhB,IAAkC2nC,mBAAlC;EACAxxC,KAAK,CAAC6J,cAAD,CAAL,GAAwB2nC,mBAAxB;EACAd,0BAA0B,CAACt3C,KAAD,EAAQD,KAAR,EAAe6G,KAAf,EAAsB6J,cAAtB,EAAsCiiC,YAAY,CAAC1yC,KAAD,EAAQ4G,KAAR,EAAe5qD,GAAG,CAAC9sC,QAAnB,EAA6B2zH,SAA7B,CAAlD,EAA2F7mF,GAA3F,CAA1B;AACH;;AACD,SAAS07F,iBAAT,CAA2B9wC,KAA3B,EAAkCqxC,SAAlC,EAA6Cj8F,GAA7C,EAAkD;EAC9C,MAAMy3D,MAAM,GAAG9I,gBAAgB,CAACstC,SAAD,EAAYrxC,KAAZ,CAA/B;EACA,MAAM5G,KAAK,GAAGg0C,yBAAyB,CAACh4F,GAAD,CAAvC,CAF8C,CAG9C;EACA;;EACA,MAAM16B,eAAe,GAAGslF,KAAK,CAAC9B,gBAAD,CAA7B;EACA,MAAMsjB,aAAa,GAAGiwB,aAAa,CAACzxC,KAAD,EAAQyrC,WAAW,CAACzrC,KAAD,EAAQ5G,KAAR,EAAe,IAAf,EAAqBhkD,GAAG,CAACqmD,MAAJ,GAAa;EAAG;EAAhB,EAAyC;EAAG;EAAjE,EAA+FoR,MAA/F,EAAuGwkC,SAAvG,EAAkH32H,eAAlH,EAAmIA,eAAe,CAACS,cAAhB,CAA+B0xF,MAA/B,EAAuCz3D,GAAvC,CAAnI,EAAgL,IAAhL,EAAsL,IAAtL,EAA4L,IAA5L,CAAnB,CAAnC,CAN8C,CAO9C;EACA;;EACA4qD,KAAK,CAACqxC,SAAS,CAACjkK,KAAX,CAAL,GAAyBo0I,aAAzB;AACH;;AACD,SAASkwB,wBAAT,CAAkCv4C,KAAlC,EAAyC6G,KAAzC,EAAgD/xH,IAAhD,EAAsD3M,KAAtD,EAA6DivJ,SAA7D,EAAwEjnJ,SAAxE,EAAmF;EAC/E,IAAIke,SAAJ,EAAe;IACX2uG,aAAa,CAAC70H,KAAD,EAAQ26J,SAAR,EAAmB,2CAAnB,CAAb;IACAjK,8BAA8B,CAAC/jJ,IAAD,CAA9B;IACAw+H,eAAe,CAACtT,KAAD,EAAQ;IAAE;IAAV,EAAoC,gCAA+BlrH,IAAK,0BAArC,GAC7C,6DADU,CAAf;EAEH;;EACD,MAAMpG,OAAO,GAAGk8H,gBAAgB,CAAC5K,KAAD,EAAQ6G,KAAR,CAAhC;EACA2xC,mBAAmB,CAAC3xC,KAAK,CAAC7B,QAAD,CAAN,EAAkBt2H,OAAlB,EAA2ByB,SAA3B,EAAsC6vH,KAAK,CAAC73H,KAA5C,EAAmD2M,IAAnD,EAAyD3M,KAAzD,EAAgEivJ,SAAhE,CAAnB;AACH;;AACD,SAASohB,mBAAT,CAA6B16H,QAA7B,EAAuCpvC,OAAvC,EAAgDyB,SAAhD,EAA2DqF,OAA3D,EAAoEV,IAApE,EAA0E3M,KAA1E,EAAiFivJ,SAAjF,EAA4F;EACxF,IAAIjvJ,KAAK,IAAI,IAAb,EAAmB;IACfkmB,SAAS,IAAIA,SAAS,CAACkyG,uBAAV,EAAb;IACAziF,QAAQ,CAAC71B,eAAT,CAAyBvZ,OAAzB,EAAkCoG,IAAlC,EAAwC3E,SAAxC;EACH,CAHD,MAIK;IACDke,SAAS,IAAIA,SAAS,CAACiyG,oBAAV,EAAb;IACA,MAAMrhD,QAAQ,GAAGm4E,SAAS,IAAI,IAAb,GAAoB77B,eAAe,CAACpzH,KAAD,CAAnC,GAA6CivJ,SAAS,CAACjvJ,KAAD,EAAQqN,OAAO,IAAI,EAAnB,EAAuBV,IAAvB,CAAvE;IACAgpC,QAAQ,CAAC5oC,YAAT,CAAsBxG,OAAtB,EAA+BoG,IAA/B,EAAqCmqE,QAArC,EAA+C9uE,SAA/C;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASynK,kBAAT,CAA4B/wC,KAA5B,EAAmC6J,cAAnC,EAAmD1pI,QAAnD,EAA6Di1E,GAA7D,EAAkE+jD,KAAlE,EAAyEy4C,gBAAzE,EAA2F;EACvF,MAAM/L,aAAa,GAAG+L,gBAAgB,CAAC/nC,cAAD,CAAtC;;EACA,IAAIg8B,aAAa,KAAK,IAAtB,EAA4B;IACxB,MAAM9pC,QAAQ,GAAG3mD,GAAG,CAAC2mD,QAArB;;IACA,KAAK,IAAIt7H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGolK,aAAa,CAACnlK,MAAlC,GAA2C;MACvC,MAAMw8H,UAAU,GAAG2oC,aAAa,CAACplK,CAAC,EAAF,CAAhC;MACA,MAAMoiI,WAAW,GAAGgjC,aAAa,CAACplK,CAAC,EAAF,CAAjC;MACA,MAAMa,KAAK,GAAGukK,aAAa,CAACplK,CAAC,EAAF,CAA3B;;MACA,IAAIs7H,QAAQ,KAAK,IAAjB,EAAuB;QACnB3mD,GAAG,CAAC2mD,QAAJ,CAAa57H,QAAb,EAAuBmB,KAAvB,EAA8B47H,UAA9B,EAA0C2F,WAA1C;MACH,CAFD,MAGK;QACD1iI,QAAQ,CAAC0iI,WAAD,CAAR,GAAwBvhI,KAAxB;MACH;;MACD,IAAIkmB,SAAJ,EAAe;QACX,MAAM2f,aAAa,GAAG48F,gBAAgB,CAAC5K,KAAD,EAAQ6G,KAAR,CAAtC;QACA2vC,oBAAoB,CAAC3vC,KAAD,EAAQ74F,aAAR,EAAuBgyF,KAAK,CAAC/9G,IAA7B,EAAmCynH,WAAnC,EAAgDvhI,KAAhD,CAApB;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0tK,qBAAT,CAA+B1rI,MAA/B,EAAuCp7B,KAAvC,EAA8C;EAC1C,IAAI2pK,aAAa,GAAG,IAApB;EACA,IAAIpxK,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGyH,KAAK,CAACxH,MAAjB,EAAyB;IACrB,MAAM8zG,QAAQ,GAAGtsG,KAAK,CAACzH,CAAD,CAAtB;;IACA,IAAI+zG,QAAQ,KAAK;IAAE;IAAnB,EAAuD;MACnD;MACA/zG,CAAC,IAAI,CAAL;MACA;IACH,CAJD,MAKK,IAAI+zG,QAAQ,KAAK;IAAE;IAAnB,EAAoD;MACrD;MACA/zG,CAAC,IAAI,CAAL;MACA;IACH,CAXoB,CAYrB;;;IACA,IAAI,OAAO+zG,QAAP,KAAoB,QAAxB,EACI;;IACJ,IAAIlxE,MAAM,CAACvM,cAAP,CAAsBy9E,QAAtB,CAAJ,EAAqC;MACjC,IAAIq9D,aAAa,KAAK,IAAtB,EACIA,aAAa,GAAG,EAAhB;MACJA,aAAa,CAACluK,IAAd,CAAmB6wG,QAAnB,EAA6BlxE,MAAM,CAACkxE,QAAD,CAAnC,EAA+CtsG,KAAK,CAACzH,CAAC,GAAG,CAAL,CAApD;IACH;;IACDA,CAAC,IAAI,CAAL;EACH;;EACD,OAAOoxK,aAAP;AACH,EACD;AACA;AACA;AACA;;;AACA,MAAMC,eAAe,GAAG,MAAMC,UAAN,SAAyBpvK,KAAzB,CAA+B,EAAvD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASqvK,gBAAT,CAA0BC,UAA1B,EAAsC9oC,WAAtC,EAAmD0D,MAAnD,EAA2D1T,KAA3D,EAAkE;EAC9D3xG,SAAS,IAAIu5G,WAAW,CAACoI,WAAD,CAAxB,CAD8D,CAE9D;;EACA,MAAMvE,UAAU,GAAG,KAAKp9G,SAAS,GAAGsqJ,eAAH,GAAqBnvK,KAAnC,EAA0CsvK,UAA1C,EAAsD;EACzE,IADmB,EACb;EACN,KAFmB,EAEZ;EACP9oC,WAHmB,EAGN;EACb,IAJmB,EAIb;EACN,CALmB,EAKhB;EACHhQ,KANmB,EAMZ;EACP0T,MAPmB,EAOX;EACR,IARmB,EAQb;EACN,IATmB,CAAnB;EAUArlH,SAAS,IACLuuG,WAAW,CAAC6O,UAAU,CAAClkI,MAAZ,EAAoB4+H,uBAApB,EAA6C,gEAA7C,CADf;EAEA93G,SAAS,IAAI2gJ,qBAAqB,CAACvjC,UAAD,CAAlC;EACA,OAAOA,UAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS4nC,oBAAT,CAA8BxsC,KAA9B,EAAqC;EACjC,KAAK,IAAI4E,UAAU,GAAGqe,kBAAkB,CAACjjB,KAAD,CAAxC,EAAiD4E,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGue,iBAAiB,CAACve,UAAD,CAApG,EAAkH;IAC9G,KAAK,IAAInkI,CAAC,GAAG6+H,uBAAb,EAAsC7+H,CAAC,GAAGmkI,UAAU,CAAClkI,MAArD,EAA6DD,CAAC,EAA9D,EAAkE;MAC9D,MAAMyxK,aAAa,GAAGttC,UAAU,CAACnkI,CAAD,CAAhC;MACA,MAAM0xK,aAAa,GAAGD,aAAa,CAACz0C,KAAD,CAAnC;MACAj2G,SAAS,IAAI+uG,aAAa,CAAC47C,aAAD,EAAgB,yBAAhB,CAA1B;;MACA,IAAI5tC,4BAA4B,CAAC2tC,aAAD,CAAhC,EAAiD;QAC7C7F,WAAW,CAAC8F,aAAD,EAAgBD,aAAhB,EAA+BC,aAAa,CAACvuI,QAA7C,EAAuDsuI,aAAa,CAACl0C,OAAD,CAApE,CAAX;MACH;IACJ;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASuuC,+BAAT,CAAyCvsC,KAAzC,EAAgD;EAC5C,KAAK,IAAI4E,UAAU,GAAGqe,kBAAkB,CAACjjB,KAAD,CAAxC,EAAiD4E,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGue,iBAAiB,CAACve,UAAD,CAApG,EAAkH;IAC9G,IAAI,CAACA,UAAU,CAAC1F,sBAAD,CAAf,EACI;IACJ,MAAMkmB,UAAU,GAAGxgB,UAAU,CAACvF,WAAD,CAA7B;IACA73G,SAAS,IAAI+uG,aAAa,CAAC6uB,UAAD,EAAa,qDAAb,CAA1B;;IACA,KAAK,IAAI3kJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2kJ,UAAU,CAAC1kJ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;MACxC,MAAM2xK,UAAU,GAAGhtB,UAAU,CAAC3kJ,CAAD,CAA7B;MACA,MAAMilJ,mBAAmB,GAAG0sB,UAAU,CAACz0C,MAAD,CAAtC;MACAn2G,SAAS,IAAIq5G,gBAAgB,CAAC6kB,mBAAD,CAA7B,CAHwC,CAIxC;MACA;;MACA,IAAI,CAAC0sB,UAAU,CAAC10C,KAAD,CAAV,GAAoB;MAAI;MAAzB,MAAuE,CAA3E,EAA8E;QAC1EiH,2BAA2B,CAAC+gB,mBAAD,EAAsB,CAAtB,CAA3B;MACH,CARuC,CASxC;MACA;MACA;MACA;;;MACA0sB,UAAU,CAAC10C,KAAD,CAAV,IAAqB;MAAI;MAAzB;IACH;EACJ;AACJ,EACD;;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4tC,gBAAT,CAA0BD,SAA1B,EAAqCgH,gBAArC,EAAuD;EACnD7qJ,SAAS,IAAIuuG,WAAW,CAACuO,cAAc,CAAC+mC,SAAD,CAAf,EAA4B,KAA5B,EAAmC,8BAAnC,CAAxB;EACA,MAAM7pB,aAAa,GAAGrd,wBAAwB,CAACkuC,gBAAD,EAAmBhH,SAAnB,CAA9C,CAFmD,CAGnD;;EACA,IAAI9mC,4BAA4B,CAACid,aAAD,CAAhC,EAAiD;IAC7C,MAAMpoB,KAAK,GAAGooB,aAAa,CAAC/jB,KAAD,CAA3B;;IACA,IAAI+jB,aAAa,CAAC9jB,KAAD,CAAb,IAAwB;IAAG;IAAH,EAAkC;IAAG;IAA7D,CAAJ,EAA0F;MACtF2uC,WAAW,CAACjzC,KAAD,EAAQooB,aAAR,EAAuBpoB,KAAK,CAACx1F,QAA7B,EAAuC49G,aAAa,CAACxjB,OAAD,CAApD,CAAX;IACH,CAFD,MAGK,IAAIwjB,aAAa,CAAC3jB,6BAAD,CAAb,GAA+C,CAAnD,EAAsD;MACvD;MACAy0C,wBAAwB,CAAC9wB,aAAD,CAAxB;IACH;EACJ;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8wB,wBAAT,CAAkCtyC,KAAlC,EAAyC;EACrC,KAAK,IAAI4E,UAAU,GAAGqe,kBAAkB,CAACjjB,KAAD,CAAxC,EAAiD4E,UAAU,KAAK,IAAhE,EAAsEA,UAAU,GAAGue,iBAAiB,CAACve,UAAD,CAApG,EAAkH;IAC9G,KAAK,IAAInkI,CAAC,GAAG6+H,uBAAb,EAAsC7+H,CAAC,GAAGmkI,UAAU,CAAClkI,MAArD,EAA6DD,CAAC,EAA9D,EAAkE;MAC9D,MAAMyxK,aAAa,GAAGttC,UAAU,CAACnkI,CAAD,CAAhC;;MACA,IAAI8jI,4BAA4B,CAAC2tC,aAAD,CAAhC,EAAiD;QAC7C,IAAIA,aAAa,CAACx0C,KAAD,CAAb,GAAuB;QAAI;QAA/B,EAAyE;UACrE,MAAMy0C,aAAa,GAAGD,aAAa,CAACz0C,KAAD,CAAnC;UACAj2G,SAAS,IAAI+uG,aAAa,CAAC47C,aAAD,EAAgB,yBAAhB,CAA1B;UACA9F,WAAW,CAAC8F,aAAD,EAAgBD,aAAhB,EAA+BC,aAAa,CAACvuI,QAA7C,EAAuDsuI,aAAa,CAACl0C,OAAD,CAApE,CAAX;QACH,CAJD,MAKK,IAAIk0C,aAAa,CAACr0C,6BAAD,CAAb,GAA+C,CAAnD,EAAsD;UACvDy0C,wBAAwB,CAACJ,aAAD,CAAxB;QACH;MACJ;IACJ;EACJ;;EACD,MAAM94C,KAAK,GAAG4G,KAAK,CAACvC,KAAD,CAAnB,CAhBqC,CAiBrC;;EACA,MAAM6jB,UAAU,GAAGloB,KAAK,CAACkoB,UAAzB;;EACA,IAAIA,UAAU,KAAK,IAAnB,EAAyB;IACrB,KAAK,IAAI7gJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6gJ,UAAU,CAAC5gJ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;MACxC,MAAM+gJ,aAAa,GAAGrd,wBAAwB,CAACmd,UAAU,CAAC7gJ,CAAD,CAAX,EAAgBu/H,KAAhB,CAA9C,CADwC,CAExC;;MACA,IAAIuE,4BAA4B,CAACid,aAAD,CAA5B,IACAA,aAAa,CAAC3jB,6BAAD,CAAb,GAA+C,CADnD,EACsD;QAClDy0C,wBAAwB,CAAC9wB,aAAD,CAAxB;MACH;IACJ;EACJ;AACJ;;AACD,SAASgqB,eAAT,CAAyBH,SAAzB,EAAoCgH,gBAApC,EAAsD;EAClD7qJ,SAAS,IAAIuuG,WAAW,CAACuO,cAAc,CAAC+mC,SAAD,CAAf,EAA4B,IAA5B,EAAkC,gCAAlC,CAAxB;EACA,MAAM7pB,aAAa,GAAGrd,wBAAwB,CAACkuC,gBAAD,EAAmBhH,SAAnB,CAA9C;EACA,MAAMkH,cAAc,GAAG/wB,aAAa,CAAC/jB,KAAD,CAApC;EACA+0C,qBAAqB,CAACD,cAAD,EAAiB/wB,aAAjB,CAArB;EACAyqB,UAAU,CAACsG,cAAD,EAAiB/wB,aAAjB,EAAgCA,aAAa,CAACxjB,OAAD,CAA7C,CAAV;AACH;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,SAASw0C,qBAAT,CAA+Bp5C,KAA/B,EAAsC4G,KAAtC,EAA6C;EACzC,KAAK,IAAIv/H,CAAC,GAAGu/H,KAAK,CAACt/H,MAAnB,EAA2BD,CAAC,GAAG24H,KAAK,CAAC4V,SAAN,CAAgBtuI,MAA/C,EAAuDD,CAAC,EAAxD,EAA4D;IACxDu/H,KAAK,CAACr8H,IAAN,CAAWy1H,KAAK,CAAC4V,SAAN,CAAgBvuI,CAAhB,CAAX;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgxK,aAAT,CAAuBzxC,KAAvB,EAA8B0kB,iBAA9B,EAAiD;EAC7C;EACA;EACA;EACA;EACA,IAAI1kB,KAAK,CAAC3B,UAAD,CAAT,EAAuB;IACnB2B,KAAK,CAAC1B,UAAD,CAAL,CAAkBV,IAAlB,IAA0B8mB,iBAA1B;EACH,CAFD,MAGK;IACD1kB,KAAK,CAAC3B,UAAD,CAAL,GAAoBqmB,iBAApB;EACH;;EACD1kB,KAAK,CAAC1B,UAAD,CAAL,GAAoBomB,iBAApB;EACA,OAAOA,iBAAP;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+tB,aAAT,CAAuBzyC,KAAvB,EAA8B;EAC1B,OAAOA,KAAP,EAAc;IACVA,KAAK,CAACtC,KAAD,CAAL,IAAgB;IAAG;IAAnB;IACA,MAAM1yG,MAAM,GAAG23H,cAAc,CAAC3iB,KAAD,CAA7B,CAFU,CAGV;;IACA,IAAIF,UAAU,CAACE,KAAD,CAAV,IAAqB,CAACh1G,MAA1B,EAAkC;MAC9B,OAAOg1G,KAAP;IACH,CANS,CAOV;;;IACAA,KAAK,GAAGh1G,MAAR;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAAS0nJ,qBAAT,CAA+Bt5C,KAA/B,EAAsC4G,KAAtC,EAA6Ch3G,OAA7C,EAAsD2pJ,kBAAkB,GAAG,IAA3E,EAAiF;EAC7E,MAAMj4H,eAAe,GAAGslF,KAAK,CAAC9B,gBAAD,CAA7B,CAD6E,CAE7E;EACA;EACA;;EACA,MAAMm+B,kBAAkB,GAAG,CAAC,CAAC70I,SAAF,IAAei/G,sBAAsB,EAAhE;EACA,IAAI,CAAC41B,kBAAD,IAAuB3hH,eAAe,CAAChlC,KAA3C,EACIglC,eAAe,CAAChlC,KAAhB;;EACJ,IAAI;IACA22J,WAAW,CAACjzC,KAAD,EAAQ4G,KAAR,EAAe5G,KAAK,CAACx1F,QAArB,EAA+B5a,OAA/B,CAAX;EACH,CAFD,CAGA,OAAO/L,KAAP,EAAc;IACV,IAAI01J,kBAAJ,EAAwB;MACpB3a,WAAW,CAACh4B,KAAD,EAAQ/iH,KAAR,CAAX;IACH;;IACD,MAAMA,KAAN;EACH,CARD,SASQ;IACJ,IAAI,CAACo/I,kBAAD,IAAuB3hH,eAAe,CAAC/kC,GAA3C,EACI+kC,eAAe,CAAC/kC,GAAhB;EACP;AACJ;;AACD,SAASi9J,sBAAT,CAAgCx5C,KAAhC,EAAuC4G,KAAvC,EAA8Ch3G,OAA9C,EAAuD2pJ,kBAAkB,GAAG,IAA5E,EAAkF;EAC9EjsC,yBAAyB,CAAC,IAAD,CAAzB;;EACA,IAAI;IACAgsC,qBAAqB,CAACt5C,KAAD,EAAQ4G,KAAR,EAAeh3G,OAAf,EAAwB2pJ,kBAAxB,CAArB;EACH,CAFD,SAGQ;IACJjsC,yBAAyB,CAAC,KAAD,CAAzB;EACH;AACJ;;AACD,SAASwlC,kBAAT,CAA4Bv2D,KAA5B,EAAmCk9D,WAAnC,EAAgD92B,SAAhD,EAA2D;EACvDv0H,SAAS,IAAI+uG,aAAa,CAACs8C,WAAD,EAAc,mDAAd,CAA1B;EACAhrC,oBAAoB,CAAC,CAAD,CAApB;EACAgrC,WAAW,CAACl9D,KAAD,EAAQomC,SAAR,CAAX;AACH,EACD;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+2B,4BAAT,CAAsCnrC,KAAtC,EAA6CxO,KAA7C,EAAoDt4C,YAApD,EAAkEkmD,YAAlE,EAAgF,GAAGgsC,kBAAnF,EAAuG;EACnG;EACA;EACA;EACA,IAAIprC,KAAK,CAACZ,YAAD,CAAL,KAAwB,IAA5B,EAAkC;IAC9B,IAAI5N,KAAK,CAAC71F,MAAN,IAAgB,IAAhB,IAAwB,CAAC61F,KAAK,CAAC71F,MAAN,CAAau9C,YAAb,CAA7B,EAAyD;MACrD,MAAMmyF,eAAe,GAAG75C,KAAK,CAACwsC,gBAAN,KAA2BxsC,KAAK,CAACwsC,gBAAN,GAAyB,EAApD,CAAxB;MACAqN,eAAe,CAACrvK,IAAhB,CAAqBojI,YAArB;MACA,IAAIksC,eAAe,GAAGpyF,YAAtB;;MACA,IAAIkyF,kBAAkB,CAACryK,MAAnB,GAA4B,CAAhC,EAAmC;QAC/BuyK,eAAe,IACXza,uBAAuB,GAAGua,kBAAkB,CAAChjK,IAAnB,CAAwByoJ,uBAAxB,CAD9B;MAEH;;MACD7wB,KAAK,CAACZ,YAAD,CAAL,GAAsBksC,eAAtB;IACH;EACJ;AACJ;;AACD,SAAS/E,uBAAT,CAAiCl+G,IAAjC,EAAuC;EACnC;EACA,OAAOA,IAAI,CAAC+tE,OAAD,CAAJ,KAAkB/tE,IAAI,CAAC+tE,OAAD,CAAJ,GAAgBv2G,SAAS,GAAG,IAAIugJ,QAAJ,EAAH,GAAoB,EAA/D,CAAP;AACH;;AACD,SAASoG,uBAAT,CAAiC/0C,KAAjC,EAAwC;EACpC,OAAOA,KAAK,CAAChK,OAAN,KAAkBgK,KAAK,CAAChK,OAAN,GAAgB5nG,SAAS,GAAG,IAAIwgJ,QAAJ,EAAH,GAAoB,EAA/D,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASkL,qBAAT,CAA+BC,UAA/B,EAA2Ch6C,KAA3C,EAAkD6G,KAAlD,EAAyD;EACrD;EACA;EACA;EACA;EACA;EACA;EACA,IAAImzC,UAAU,KAAK,IAAf,IAAuBtzC,cAAc,CAACszC,UAAD,CAAzC,EAAuD;IACnDnzC,KAAK,GAAG4D,WAAW,CAAC5D,KAAK,CAAC7G,KAAK,CAAC/rH,KAAP,CAAN,CAAnB;EACH;;EACD,OAAO4yH,KAAK,CAAC7B,QAAD,CAAZ;AACH;AACD;;;AACA,SAAS65B,WAAT,CAAqBh4B,KAArB,EAA4B/iH,KAA5B,EAAmC;EAC/B,MAAM+uB,QAAQ,GAAGg0F,KAAK,CAAC/B,UAAD,CAAtB;EACA,MAAMm1C,YAAY,GAAGpnI,QAAQ,GAAGA,QAAQ,CAAClpB,GAAT,CAAag1I,YAAb,EAA2B,IAA3B,CAAH,GAAsC,IAAnE;EACAsb,YAAY,IAAIA,YAAY,CAACpb,WAAb,CAAyB/6I,KAAzB,CAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqyJ,oBAAT,CAA8Bl2C,KAA9B,EAAqC4G,KAArC,EAA4C18F,MAA5C,EAAoD45F,UAApD,EAAgE57H,KAAhE,EAAuE;EACnE,KAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6iC,MAAM,CAAC5iC,MAA3B,GAAoC;IAChC,MAAM0M,KAAK,GAAGk2B,MAAM,CAAC7iC,CAAC,EAAF,CAApB;IACA,MAAMoiI,WAAW,GAAGv/F,MAAM,CAAC7iC,CAAC,EAAF,CAA1B;IACA,MAAMN,QAAQ,GAAG6/H,KAAK,CAAC5yH,KAAD,CAAtB;IACAoa,SAAS,IAAIkvG,kBAAkB,CAACsJ,KAAD,EAAQ5yH,KAAR,CAA/B;IACA,MAAMgoE,GAAG,GAAGgkD,KAAK,CAACrlG,IAAN,CAAW3mB,KAAX,CAAZ;;IACA,IAAIgoE,GAAG,CAAC2mD,QAAJ,KAAiB,IAArB,EAA2B;MACvB3mD,GAAG,CAAC2mD,QAAJ,CAAa57H,QAAb,EAAuBmB,KAAvB,EAA8B47H,UAA9B,EAA0C2F,WAA1C;IACH,CAFD,MAGK;MACD1iI,QAAQ,CAAC0iI,WAAD,CAAR,GAAwBvhI,KAAxB;IACH;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAAS+xK,mBAAT,CAA6BrzC,KAA7B,EAAoC5yH,KAApC,EAA2C9L,KAA3C,EAAkD;EAC9CkmB,SAAS,IAAIquG,YAAY,CAACv0H,KAAD,EAAQ,0BAAR,CAAzB;EACAkmB,SAAS,IAAI2uG,aAAa,CAAC70H,KAAD,EAAQ26J,SAAR,EAAmB,+BAAnB,CAA1B;EACAz0I,SAAS,IAAIkvG,kBAAkB,CAACsJ,KAAD,EAAQ5yH,KAAR,CAA/B;EACA,MAAMvF,OAAO,GAAGi8H,gBAAgB,CAAC12H,KAAD,EAAQ4yH,KAAR,CAAhC;EACAx4G,SAAS,IAAI+uG,aAAa,CAAC1uH,OAAD,EAAU,6BAAV,CAA1B;EACAm8I,cAAc,CAAChkB,KAAK,CAAC7B,QAAD,CAAN,EAAkBt2H,OAAlB,EAA2BvG,KAA3B,CAAd;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgyK,oBAAT,CAA8Bn6C,KAA9B,EAAqCjxH,KAArC,EAA4CqrK,WAA5C,EAAyD;EACrD/rJ,SAAS,IACLw5G,qBAAqB,CAAC6E,QAAQ,EAAT,EAAa,oDAAb,CADzB;EAEA,IAAI18H,MAAM,GAAGoqK,WAAW,GAAGp6C,KAAK,CAAChwH,MAAT,GAAkB,IAA1C;EACA,IAAI2L,OAAO,GAAGy+J,WAAW,GAAGp6C,KAAK,CAACrkH,OAAT,GAAmB,IAA5C;EACA,IAAI6xH,IAAI,GAAG,CAAX;;EACA,IAAIz+H,KAAK,KAAK,IAAd,EAAoB;IAChB,KAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyH,KAAK,CAACxH,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;MACnC,MAAMa,KAAK,GAAG4G,KAAK,CAACzH,CAAD,CAAnB;;MACA,IAAI,OAAOa,KAAP,KAAiB,QAArB,EAA+B;QAC3BqlI,IAAI,GAAGrlI,KAAP;MACH,CAFD,MAGK,IAAIqlI,IAAI,IAAI;MAAE;MAAd,EAA6C;QAC9C7xH,OAAO,GAAG++G,sBAAsB,CAAC/+G,OAAD,EAAUxT,KAAV,CAAhC;MACH,CAFI,MAGA,IAAIqlI,IAAI,IAAI;MAAE;MAAd,EAA4C;QAC7C,MAAMv4H,KAAK,GAAG9M,KAAd;QACA,MAAMkyK,UAAU,GAAGtrK,KAAK,CAAC,EAAEzH,CAAH,CAAxB;QACA0I,MAAM,GAAG0qH,sBAAsB,CAAC1qH,MAAD,EAASiF,KAAK,GAAG,IAAR,GAAeolK,UAAf,GAA4B,GAArC,CAA/B;MACH;IACJ;EACJ;;EACDD,WAAW,GAAGp6C,KAAK,CAAChwH,MAAN,GAAeA,MAAlB,GAA2BgwH,KAAK,CAAC4sC,iBAAN,GAA0B58J,MAAhE;EACAoqK,WAAW,GAAGp6C,KAAK,CAACrkH,OAAN,GAAgBA,OAAnB,GAA6BqkH,KAAK,CAAC8sC,kBAAN,GAA2BnxJ,OAAnE;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2+J,kBAAT,CAA4Br6C,KAA5B,EAAmC4G,KAAnC,EAA0C7G,KAA1C,EAAiD9iH,MAAjD,EAAyDyyI,YAAY,GAAG,KAAxE,EAA+E;EAC3E,OAAO3vB,KAAK,KAAK,IAAjB,EAAuB;IACnB3xG,SAAS,IACLilH,eAAe,CAACtT,KAAD,EAAQ;IAAE;IAAF,EAA6B;IAAG;IAAhC,EAA+D;IAAG;IAAlE,EAA+F;IAAG;IAA1G,CADnB;IAEA,MAAMu6C,KAAK,GAAG1zC,KAAK,CAAC7G,KAAK,CAAC/rH,KAAP,CAAnB;;IACA,IAAIsmK,KAAK,KAAK,IAAd,EAAoB;MAChBr9J,MAAM,CAAC1S,IAAP,CAAYggI,WAAW,CAAC+vC,KAAD,CAAvB;IACH,CANkB,CAOnB;IACA;IACA;;;IACA,IAAIj0C,YAAY,CAACi0C,KAAD,CAAhB,EAAyB;MACrB,KAAK,IAAIjzK,CAAC,GAAG6+H,uBAAb,EAAsC7+H,CAAC,GAAGizK,KAAK,CAAChzK,MAAhD,EAAwDD,CAAC,EAAzD,EAA6D;QACzD,MAAMkzK,iBAAiB,GAAGD,KAAK,CAACjzK,CAAD,CAA/B;QACA,MAAMmzK,oBAAoB,GAAGD,iBAAiB,CAACl2C,KAAD,CAAjB,CAAyBv8G,UAAtD;;QACA,IAAI0yJ,oBAAoB,KAAK,IAA7B,EAAmC;UAC/BH,kBAAkB,CAACE,iBAAiB,CAACl2C,KAAD,CAAlB,EAA2Bk2C,iBAA3B,EAA8CC,oBAA9C,EAAoEv9J,MAApE,CAAlB;QACH;MACJ;IACJ;;IACD,MAAMg2H,SAAS,GAAGlT,KAAK,CAAC/9G,IAAxB;;IACA,IAAIixH,SAAS,GAAG;IAAE;IAAlB,EAAoD;MAChDonC,kBAAkB,CAACr6C,KAAD,EAAQ4G,KAAR,EAAe7G,KAAK,CAACzqH,KAArB,EAA4B2H,MAA5B,CAAlB;IACH,CAFD,MAGK,IAAIg2H,SAAS,GAAG;IAAG;IAAnB,EAAwC;MACzC,MAAM8b,SAAS,GAAG7F,mBAAmB,CAACnpB,KAAD,EAAQ6G,KAAR,CAArC;MACA,IAAIyjB,KAAJ;;MACA,OAAOA,KAAK,GAAG0E,SAAS,EAAxB,EAA4B;QACxB9xI,MAAM,CAAC1S,IAAP,CAAY8/I,KAAZ;MACH;IACJ,CANI,MAOA,IAAIpX,SAAS,GAAG;IAAG;IAAnB,EAA+C;MAChD,MAAMwnC,WAAW,GAAGxrB,kBAAkB,CAACroB,KAAD,EAAQ7G,KAAR,CAAtC;;MACA,IAAIx2H,KAAK,CAACC,OAAN,CAAcixK,WAAd,CAAJ,EAAgC;QAC5Bx9J,MAAM,CAAC1S,IAAP,CAAY,GAAGkwK,WAAf;MACH,CAFD,MAGK;QACD,MAAM3lC,UAAU,GAAGyU,cAAc,CAAC3iB,KAAK,CAACxB,0BAAD,CAAN,CAAjC;QACAh3G,SAAS,IAAIu6G,gBAAgB,CAACmM,UAAD,CAA7B;QACAulC,kBAAkB,CAACvlC,UAAU,CAACzQ,KAAD,CAAX,EAAoByQ,UAApB,EAAgC2lC,WAAhC,EAA6Cx9J,MAA7C,EAAqD,IAArD,CAAlB;MACH;IACJ;;IACD8iH,KAAK,GAAG2vB,YAAY,GAAG3vB,KAAK,CAAC8vB,cAAT,GAA0B9vB,KAAK,CAAC11H,IAApD;EACH;;EACD,OAAO4S,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy9J,SAAN,CAAgB;EACZ9zK,WAAW;EACX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIoyI,MAZW;EAaX;AACJ;AACA;AACA;AACA;AACA;EACI2hC,mBAnBW,EAmBU;IACjB,KAAK3hC,MAAL,GAAcA,MAAd;IACA,KAAK2hC,mBAAL,GAA2BA,mBAA3B;IACA,KAAKC,OAAL,GAAe,IAAf;IACA,KAAKC,wBAAL,GAAgC,KAAhC;EACH;;EACY,IAATlmI,SAAS,GAAG;IACZ,MAAMiyF,KAAK,GAAG,KAAKoS,MAAnB;IACA,MAAMhZ,KAAK,GAAG4G,KAAK,CAACvC,KAAD,CAAnB;IACA,OAAOg2C,kBAAkB,CAACr6C,KAAD,EAAQ4G,KAAR,EAAe5G,KAAK,CAACl4G,UAArB,EAAiC,EAAjC,CAAzB;EACH;;EACU,IAAP8H,OAAO,GAAG;IACV,OAAO,KAAKopH,MAAL,CAAYpU,OAAZ,CAAP;EACH;;EACU,IAAPh1G,OAAO,CAAC1nB,KAAD,EAAQ;IACf,KAAK8wI,MAAL,CAAYpU,OAAZ,IAAuB18H,KAAvB;EACH;;EACY,IAATyoF,SAAS,GAAG;IACZ,OAAO,CAAC,KAAKqoD,MAAL,CAAY1U,KAAZ,IAAqB;IAAI;IAA1B,MAA0D;IAAI;IAArE;EACH;;EACD11F,OAAO,GAAG;IACN,IAAI,KAAKgsI,OAAT,EAAkB;MACd,KAAKA,OAAL,CAAaruB,UAAb,CAAwB,IAAxB;IACH,CAFD,MAGK,IAAI,KAAKsuB,wBAAT,EAAmC;MACpC,MAAMjpJ,MAAM,GAAG,KAAKonH,MAAL,CAAYzU,MAAZ,CAAf;;MACA,IAAI8B,YAAY,CAACz0G,MAAD,CAAhB,EAA0B;QACtB,MAAMkpJ,QAAQ,GAAGlpJ,MAAM,CAACo0G,SAAD,CAAvB;QACA,MAAMhyH,KAAK,GAAG8mK,QAAQ,GAAGA,QAAQ,CAAC1uK,OAAT,CAAiB,IAAjB,CAAH,GAA4B,CAAC,CAAnD;;QACA,IAAI4H,KAAK,GAAG,CAAC,CAAb,EAAgB;UACZoa,SAAS,IACLuuG,WAAW,CAAC3oH,KAAD,EAAQ4d,MAAM,CAACxlB,OAAP,CAAe,KAAK4sI,MAApB,IAA8B9S,uBAAtC,EAA+D,6GAA/D,CADf;UAEAqmB,UAAU,CAAC36H,MAAD,EAAS5d,KAAT,CAAV;UACAgpI,eAAe,CAAC89B,QAAD,EAAW9mK,KAAX,CAAf;QACH;MACJ;;MACD,KAAK6mK,wBAAL,GAAgC,KAAhC;IACH;;IACDluB,YAAY,CAAC,KAAK3T,MAAL,CAAY3U,KAAZ,CAAD,EAAqB,KAAK2U,MAA1B,CAAZ;EACH;;EACDtsE,SAAS,CAAC/6D,QAAD,EAAW;IAChBijK,uBAAuB,CAAC,KAAK57B,MAAL,CAAY3U,KAAZ,CAAD,EAAqB,KAAK2U,MAA1B,EAAkC,IAAlC,EAAwCrnI,QAAxC,CAAvB;EACH;EACD;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;;;EACIg4B,YAAY,GAAG;IACX0vI,aAAa,CAAC,KAAKsB,mBAAL,IAA4B,KAAK3hC,MAAlC,CAAb;EACH;EACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI+hC,MAAM,GAAG;IACL,KAAK/hC,MAAL,CAAY1U,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI02C,QAAQ,GAAG;IACP,KAAKhiC,MAAL,CAAY1U,KAAZ,KAAsB;IAAG;IAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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MACDqyK,4BAA4B,CAAC15C,KAAK,CAACrlG,IAAP,EAAaolG,KAAb,EAAoB6a,QAApB,EAA8BlN,eAAe,KAAKm1C,sBAAsB,CAACv7K,MAA3C,GAAoD,CAAlF,EAAqF,GAAGu7K,sBAAxF,CAA5B;IACH;EACJ;;EACD,OAAO4D,sBAAP;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;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,IAAIC,mEAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+Bp4C,KAA/B,EAAsCxO,KAAtC,EAA6C6mD,qBAA7C,EAAoE5yK,KAApE,EAA2E6yK,aAA3E,EAA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B,YAAf,CAA1B;MACH;IACJ;EACJ;;EACD,IAAIk3B,QAAQ,KAAKt9K,SAAjB,EAA4B;IACxBomJ,YAAY,GAAIvwB,KAAK,CAAC+sC,eAAN,GAAwB0a,QAA5B,GAAyCznD,KAAK,CAAC6sC,cAAN,GAAuB4a,QAA5E;EACH;;EACD,OAAOkD,UAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,0BAAT,CAAoC18C,KAApC,EAA2CxO,KAA3C,EAAkDuwB,YAAlD,EAAgE;EAC5D,MAAMod,QAAQ,GAAGpd,YAAY,GAAGvwB,KAAK,CAACgtC,aAAT,GAAyBhtC,KAAK,CAACitC,aAA5D;;EACA,IAAIjD,oBAAoB,CAAC2D,QAAD,CAApB,KAAmC,CAAvC,EAA0C;IACtC;IACA,OAAOxjK,SAAP;EACH;;EACD,OAAOqkI,KAAK,CAACm7B,oBAAoB,CAACgE,QAAD,CAArB,CAAZ;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwd,0BAAT,CAAoC38C,KAApC,EAA2CxO,KAA3C,EAAkDuwB,YAAlD,EAAgE62B,WAAhE,EAA6E;EACzE,MAAMzZ,QAAQ,GAAGpd,YAAY,GAAGvwB,KAAK,CAACgtC,aAAT,GAAyBhtC,KAAK,CAACitC,aAA5D;EACA5+I,SAAS,IACLyuG,cAAc,CAACktC,oBAAoB,CAAC2D,QAAD,CAArB,EAAiC,CAAjC,EAAoC,0DAApC,CADlB;EAEAn/B,KAAK,CAACm7B,oBAAoB,CAACgE,QAAD,CAArB,CAAL,GAAwCyZ,WAAxC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuL,sBAAT,CAAgC3uK,MAAhC,EAAwC;EACpC,MAAM6nH,KAAK,GAAG4F,QAAQ,EAAtB;EACA,MAAM21C,iBAAiB,GAAGxB,cAAc,CAAC/5C,KAAD,EAAQ7nH,MAAR,CAAxC;EACA4qK,eAAe,CAAC/rC,gBAAD,EAAmBksC,iBAAnB,EAAsC3H,iBAAtC,EAAyD,IAAzD,CAAf;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,SAASwL,sBAAT,CAAgCn3K,MAAhC,EAAwCsqK,EAAxC,EAA4Cx6J,MAA5C,EAAoD;EAChD,MAAMsgH,KAAK,GAAG4F,QAAQ,EAAtB;EACA,MAAM21C,iBAAiB,GAAGtB,cAAc,CAACj6C,KAAD,EAAQpwH,MAAR,EAAgBsqK,EAAhB,EAAoBx6J,MAApB,CAAxC;EACAojK,UAAU,CAACvH,iBAAD,CAAV;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyL,sBAAT,CAAgCp3K,MAAhC,EAAwCsqK,EAAxC,EAA4CxyG,EAA5C,EAAgD0yG,EAAhD,EAAoD16J,MAApD,EAA4D;EACxD,MAAMsgH,KAAK,GAAG4F,QAAQ,EAAtB;EACA,MAAM21C,iBAAiB,GAAGpB,cAAc,CAACn6C,KAAD,EAAQpwH,MAAR,EAAgBsqK,EAAhB,EAAoBxyG,EAApB,EAAwB0yG,EAAxB,EAA4B16J,MAA5B,CAAxC;EACAojK,UAAU,CAACvH,iBAAD,CAAV;AACH;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,SAAS0L,sB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hD,EAAoDE,EAApD,EAAwDC,EAAxD,EAA4DE,EAA5D,EAAgEC,EAAhE,EAAoEE,EAApE,EAAwEC,EAAxE,EAA4E37J,MAA5E,CAAxC;EACAojK,UAAU,CAACvH,iBAAD,CAAV;AACH;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,SAASgM,sBAAT,CAAgCpvK,MAAhC,EAAwC;EACpC,MAAM6nH,KAAK,GAAG4F,QAAQ,EAAtB;EACA,MAAM21C,iBAAiB,GAAGxB,cAAc,CAAC/5C,KAAD,EAAQ7nH,MAAR,CAAxC;EACA2qK,UAAU,CAACvH,iBAAD,CAAV;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,SAASiM,uBAAT,CAAiC5rK,IAAjC,EAAuChM,MAAvC,EAA+CsqK,EAA/C,EAAmDx6J,MAAnD,EAA2D+nK,WAA3D,EAAwE;EACpE,MAAMznD,KAAK,GAAG4F,QAAQ,EAAtB;EACA,MAAM21C,iBAAiB,GAAGtB,cAAc,CAACj6C,KAAD,EAAQpwH,MAAR,EAAgBsqK,EAAhB,EAAoBx6J,MAApB,CAAxC;EACAmjK,oBAAoB,CAACjnK,IAAD,EAAO2/J,iBAAP,EAA0BkM,WAA1B,EAAuC,KAAvC,CAApB;EACA,OAAOD,uBAAP;AACH;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,SAASE,uBAAT,CAAiC9rK,IAAjC,EAAuChM,MAAvC,EAA+CsqK,EAA/C,EAAmDxyG,EAAnD,EAAuD0yG,EAAvD,EAA2D16J,MAA3D,EAAmE+nK,WAAnE,EAAgF;EA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4F,iBAAiB,CAAC,cAAD,EAAiB,CAACxgH,SAAD,EAAY5e,IAAZ,MAAsB;EAAE4e,SAAF;EAAa5e;AAAb,CAAtB,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAMyrB,QAAQ,GAAGwyG,aAAa,CAAC,UAAD,EAAc1uG,QAAD,IAAcA,QAA3B,EAAqCnhC,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC8X,IAAD,EAAO6F,IAAP,KAAgBskL,eAAe,CAACnqL,IAAD,EAAO6F,IAAP,CAZD,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASpd,IAAT,CAAc,GAAGqR,IAAjB,EAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMo2L,gBAAgB,GAAG,IAAzB;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;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,eAAe,GAAG,IAAIx1G,cAAJ,CAAmB,yBAAnB,CAAxB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMy1G,qBAAN,CAA4B;EACxBxrM,WAAW,CAACyrM,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAKpgM,OAAL,GAAexH,IAAf;IACA,KAAK2H,MAAL,GA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0C;EACpE+B,UAAU,EAAE,MADwD;EAEpEvwE,OAAO,EAAE,MAAMkiK;AAFqD,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMsjB,YAAY,GAAG,IAAIh3G,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi3G,mBAAmB,GAAG,IAAIj3G,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIk3G,0BAAJ;;AACA,CAAC,UAAUA,0BAAV,EAAsC;EACnCA,0BAA0B,CAACA,0BAA0B,CAAC,OAAD,CAA1B,GAAsC,CAAvC,CAA1B,GAAsE,OAAtE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,SAAD,CAA1B,GAAwC,CAAzC,CAA1B,GAAwE,SAAxE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,QAAD,CAA1B,GAAuC,CAAxC,CAA1B,GAAuE,QAAvE;AACH,CAJD,EAIGA,0BAA0B,KAAKA,0BAA0B,GAAG,EAAlC,CAJ7B;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,4BAAN,CAAmC;EAC/BltM,WAAW,CAAC+vG,eAAD,EAAkBo9F,kBAAlB,EAAsC;IAC7C,KAAKp9F,eAAL,GAAuBA,eAAvB;IACA,KAAKo9F,kBAAL,GAA0BA,kBAA1B;EACH;;AAJ8B;AAMnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,QAAN,CAAe;EACX;AACJ;AACA;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CDovK,IAAI,CAAC3/I,OAAL,CAAamW,iBAAb,CAA+B,mBAA/B,EAAoDl7D,EAApD;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2kM,8BAAT,GAA0C;EACtC,IAAIC,2BAA2B,GAAG51E,OAAO,CAAC,uBAAD,CAAzC;EACA,IAAI61E,0BAA0B,GAAG71E,OAAO,CAAC,sBAAD,CAAxC;;EACA,IAAI,OAAO01E,IAAP,KAAgB,WAAhB,IAA+BE,2BAA/B,IAA8DC,0BAAlE,EAA8F;IAC1F;IACA;IACA,MAAMC,8BAA8B,GAAGF,2BAA2B,CAACF,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAlE;;IACA,IAAID,8BAAJ,EAAoC;MAChCF,2BAA2B,GAAGE,8BAA9B;IACH;;IACD,MAAME,6BAA6B,GAAGH,0BAA0B,CAACH,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAhE;;IACA,IAAIC,6BAAJ,EAAmC;MAC/BH,0BAA0B,GAAGG,6BAA7B;IACH;EACJ;;EACD,OAAO;IAAEJ,2BAAF;IAA+BC;EAA/B,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,MAAM7lL,MAAN,CAAa;EACT3oB,WAAW,CAAC;IAAE4uM,oBAAoB,GAAG,KAAzB;IAAgCC,kCAAkC,GAAG,KAArE;IAA4EC,gCAAgC,GAAG;EAA/G,CAAD,EAAyH;IAChI,KAAKC,oBAAL,GAA4B,KAA5B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A;AACA;AACA;;;AACA,SAASE,cAAT,GAA0B;EACtB,IAAID,cAAJ,EAAoB;IAChB,MAAM,IAAIh8L,KAAJ,CAAU,+CAAV,CAAN;EACH,CAHqB,CAItB;EACA;;;EACA,IAAI,OAAOoK,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/CmxG,OAAO,CAAC,WAAD,CAAP,GAAuB,KAAvB;EACH;;EACDwgF,QAAQ,GAAG,KAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,gBAAT,CAA0BtqM,EAA1B,EAA8B;EAC1B,MAAMoM,IAAI,GAAGgiI,yBAAyB,CAACpuI,EAAD,CAAtC;EACA,IAAI,CAACoM,IAAL,EACI,MAAMm+L,aAAa,CAACvqM,EAAD,CAAnB;EACJ,OAAO,IAAI2pL,eAAJ,CAAoBv9K,IAApB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo+L,eAAT,CAAyBxqM,EAAzB,EAA6B;EACzB,MAAMoM,IAAI,GAAGgiI,yBAAyB,CAACpuI,EAAD,CAAtC;EACA,IAAI,CAACoM,IAAL,EACI,MAAMm+L,aAAa,CAACvqM,EAAD,CAAnB;EACJ,OAAOoM,IAAP;AACH;;AACD,SAASm+L,aAAT,CAAuBvqM,EAAvB,EAA2B;EACvB,OAAO,IAAIoO,KAAJ,CAAW,qBAAoBpO,EAAG,SAAlC,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,MAAMwxB,iBAAN,CAAwB;AAExB;AACA;AACA;A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UnN,IAAK,UAA5E,EAAuFy4L,IAAvF,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASqd,eAAT,CAAyBrd,IAAzB,EAA+B;EAC3B,MAAMhqC,QAAQ,GAAGrnB,iBAAiB,CAAC;IAAEI,KAAK,EAAE;IAAE;IAAX;IAAsDD,IAAI,EAAE,MAA5D;IAAoEp6H,IAAI,EAAEsrL,IAAI,CAACtrL;EAA/E,CAAD,CAAlC;EACA,OAAOshJ,QAAQ,CAACsnD,sBAAT,CAAgC1f,cAAhC,EAAiD,SAAQoC,IAAI,CAACtrL,IAAL,CAAUnN,IAAK,WAAxE,EAAoFy4L,IAApF,CAAP;AACH;AAED;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;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,SAASt2F,eAAT,CAAyB2rC,SAAzB,EAAoCnhI,OAApC,EAA6C;EACzC4M,SAAS,IAAImxI,kBAAkB,CAAC5c,SAAD,CAA/B;EACA,MAAMmD,YAAY,GAAGziB,eAAe,CAACsf,SAAD,CAApC;EACA,MAAMkoE,eAAe,GAAGrpM,OAAO,CAACqpM,eAAR,IAA2B3vD,eAAe,EAAlE;EACA,MAAM/sI,OAAO,GAAG,IAAIotJ,gBAAJ,CAAqBz1B,YAArB,CAAhB;EACA,OAAO33H,OAAO,CAAClK,MAAR,CAAe4mM,eAAf,EAAgCrpM,OAAO,CAAC01F,gBAAxC,EAA0D11F,OAAO,CAACy+B,WAAlE,EAA+Ez+B,OAAO,CAAC06J,mBAAvF,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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ACA;;AACA,MAAM80H,mBAAmB,GAAG,IAAI90H,yDAAJ,CAAmB,mBAAnB,CAA5B;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,MAAM+0H,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACc,OAAHzyK,GAAG,CAACA,GAAD,EAAM;IACZ,OAAO0yK,YAAY,CAAC1yK,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACc,OAAHxG,GAAG,CAACA,GAAD,EAAM;IACZ,OAAOm5K,YAAY,CAACn5K,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAARo5K,QAAQ,CAACthK,OAAD,EAAU;IACrB,OAAOuhK,iBAAiB,CAACvhK,OAAD,CAAxB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACuB,OAAZwhK,YAAY,CAACxhK,OAAD,EAAU;IACzB,OAAOyhK,qBAAqB,CAACzhK,OAAD,CAA5B;EACH;EACD;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;AACA;;;EACgB,OAAL3yB,KAAK,CAAC2yB,OAAD,EAAU;IAClB,OAAO0hK,cAAc,CAAC1hK,OAAD,CAArB;EACH;EACD;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;;;EACoB,OAATpC,SAAS,CAACA,SAAD,EAAY;IACxB,OAAO+jK,kBAAkB,CAAC/jK,SAAD,CAAzB;EACH;EACD;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;;;EACoB,OAATgkK,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOC,kBAAkB,CAACD,SAAD,CAAzB;EACH;EACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACkB,OAAPviH,OAAO,CAACA,OAAD,EAAU;IACpB,OAAOyiH,gBAAgB,CAACziH,OAAD,CAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACwB,OAAb0iH,aAAa,CAAC/hK,OAAD,EAAU;IAC1B,OAAO+hK,aAAa,CAAC/hK,OAAD,CAApB;EACH;;EACa,OAAPgiK,OAAO,CAACC,UAAD,EAAa;IACvB,OAAOD,OAAO,CAACC,UAAD,CAAd;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACuB,OAAZC,YAAY,CAACD,UAAD,EAAa;IAC5B,OAAOC,YAAY,CAACD,UAAD,CAAnB;EACH;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BxrN,OAAzB,CAAiC0H,EAAE,IAAIA,EAAE,EAAzC;;IACA,KAAK8jN,mBAAL,GAA2B,EAA3B;EACH;EACD;AACJ;AACA;AACA;;;EACIlrM,KAAK,CAACjhB,KAAK,GAAGgC,SAAT,EAAoB;IACrB,IAAI,KAAKsmD,OAAT,EACI,KAAKA,OAAL,CAAarnC,KAAb,CAAmBjhB,KAAnB;EACP;EACD;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;;;EACIovD,QAAQ,CAAC69J,SAAD,EAAYl9M,IAAZ,EAAkB;IACtB,OAAO,KAAKu4C,OAAL,GAAe,KAAKA,OAAL,CAAa8G,QAAb,CAAsB69J,SAAtB,EAAiCl9M,IAAjC,CAAf,GAAwD,KAA/D;EACH;EACD;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;;;EACIm9M,QAAQ,CAACD,SAAD,EAAYl9M,IAAZ,EAAkB;IACtB,OAAO,KAAKu4C,OAAL,GAAe,KAAKA,OAAL,CAAa4kK,QAAb,CAAsBD,SAAtB,EAAiCl9M,IAAjC,CAAf,GAAwD,IAA/D;EACH;;AApQ0B;AAuQ/B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo9M,gBAAN,SAA+BjB,wBAA/B,CAAwD;EACpD;AACJ;AACA;AACA;EACqB,IAAbkB,aAAa,GAAG;IAChB,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;;;EACY,IAAJr9M,IAAI,GAAG;IACP,OAAO,IAAP;EACH;;AAdmD;AAiBxD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+qC,SAAN,SAAwBoxK,wBAAxB,CAAiD;EAC7CxtN,WAAW,GAAG;IACV,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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;;;EACIM,gBAAgB,CAAC1B,UAAD,EAAa;IACzB,KAAKyG,aAAL,CAAmB/E,gBAAgB,CAAC1B,UAAD,EAAa,KAAKkB,cAAlB,CAAnC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI0F,qBAAqB,CAAC5G,UAAD,EAAa;IAC9B,KAAK0G,kBAAL,CAAwBhF,gBAAgB,CAAC1B,UAAD,EAAa,KAAKoB,mBAAlB,CAAxC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,YAAY,CAACf,SAAD,EAAY;IACpB,OAAOe,YAAY,CAAC,KAAKJ,cAAN,EAAsBX,SAAtB,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIsG,iBAAiB,CAACtG,SAAD,EAAY;IACzB,OAAOe,YAAY,CAAC,KAAKF,mBAAN,EAA2Bb,SAA3B,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIuG,eAAe,GAAG;IACd,KAAKvG,SAAL,GAAiB,IAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIwG,oBAAoB,GAAG;IACnB,KAAKxE,cAAL,GAAsB,IAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIyE,aAAa,CAACtnL,IAAI,GAAG,EAAR,EAAY;IACrB,KAAKqiL,OAAL,GAAe,IAAf;;IACA,IAAI,KAAKzsD,OAAL,IAAgB,CAAC51H,IAAI,CAACunL,QAA1B,EAAoC;MAChC,KAAK3xD,OAAL,CAAa0xD,aAAb,CAA2BtnL,IAA3B;IACH;EACJ;EACD;AACJ;AACA;AACA;;;E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AAf,IAA8B,CAAC,KAAKh0D,OAAL,CAAa4zD,iBAAb,EAAtC;EACH;EACD;;;EACAJ,KAAK,CAAC1mN,IAAD,EAAO;IACR,OAAO,IAAP;EACH;;AA9yBiB;AAizBtB;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,MAAMmnN,SAAN,SAAwBxD,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI5xN,WAAW,CAACyxN,QAAD,EAAWR,eAAX,EAA4B7C,cAA5B,EAA4C;IACnD,MAAM4C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAAChD,cAAD,EAAiB6C,eAAjB,CAA1D;IACA,KAAKQ,QAAL,GAAgBA,QAAhB;;IACA,KAAKmD,gBAAL;;IACA,KAAKM,kBAAL,CAAwBjE,eAAxB;;IACA,KAAKoE,cAAL;;IACA,KAAKzB,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACAQ,SAAS,EAAE,CAAC,CAAC,KAAKlF;IALM,CAA5B;EAOH;;EACDkH,eAAe,CAACrnN,IAAD,EAAO27C,OAAP,EAAgB;IAC3B,IAAI,KAAK6nK,QAAL,CAAcxjN,IAAd,CAAJ,EACI,OAAO,KAAKwjN,QAAL,CAAcxjN,IAAd,CAAP;IACJ,KAAKwjN,QAAL,CAAcxjN,IAAd,IAAsB27C,OAAtB;IACAA,OAAO,CAACiqK,SAAR,CAAkB,IAAlB;;IACAjqK,OAAO,CAACqrK,2BAAR,CAAoC,KAAKjD,mBAAzC;;IACA,OAAOpoK,OAAP;EACH;;EACD2rK,UAAU,CAACtnN,IAAD,EAAO27C,OAAP,EAAgBhvC,OAAO,GAAG,EAA1B,EAA8B;IACpC,KAAK06M,eAAL,CAAqBrnN,IAArB,EAA2B27C,OAA3B;IACA,KAAKgqK,sBAAL,CAA4B;MAAEN,SAAS,EAAE14M,OAAO,CAAC04M;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIwD,aAAa,CAACvnN,IAAD,EAAO2M,OAAO,GAAG,EAAjB,EAAqB;IAC9B,IAAI,KAAK62M,QAAL,CAAcxjN,IAAd,CAAJ,EACI,KAAKwjN,QAAL,CAAcxjN,IAAd,EAAoBgnN,2BAApB,CAAgD,MAAM,CAAG,CAAzD;IACJ,OAAQ,KAAKxD,QAAL,CAAcxjN,IAAd,CAAR;IACA,KAAK2lN,sBAAL,CAA4B;MAAEN,SAAS,EAAE14M,OAAO,CAAC04M;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;;EACDyD,UAAU,CAACxnN,IAAD,EAAO27C,OAAP,EAAgBhvC,OAAO,GAAG,EAA1B,EAA8B;IACpC,IAAI,KAAK62M,QAAL,CAAcxjN,IAAd,CAAJ,EACI,KAAKwjN,QAAL,CAAcxjN,IAAd,EAAoBgnN,2BAApB,CAAgD,MAAM,CAAG,CAAzD;IACJ,OAAQ,KAAKxD,QAAL,CAAcxjN,IAAd,CAAR;IACA,IAAI27C,OAAJ,EACI,KAAK0rK,eAAL,CAAqBrnN,IAArB,EAA2B27C,OAA3B;IACJ,KAAKgqK,sBAAL,CAA4B;MAAEN,SAAS,EAAE14M,OAAO,CAAC04M;IAArB,CAA5B;;IACA,KAAKtB,mBAAL;EACH;;EACD1gL,QAAQ,CAACokL,WAAD,EAAc;IAClB,OAAO,KAAKjE,QAAL,CAAc16L,cAAd,CAA6B2+L,WAA7B,KAA6C,KAAKjE,QAAL,CAAciE,WAAd,EAA2B7+K,OAA/E;EACH;EACD;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;;;EACIgT,QAAQ,CAACvoD,KAAD,EAAQsZ,OAAO,GAAG,EAAlB,EAAsB;IAC1B82M,sBAAsB,CAAC,IAAD,EAAO,IAAP,EAAapwN,KAAb,CAAtB;IACAP,MAAM,CAACY,IAAP,CAAYL,KAAZ,EAAmBW,OAAnB,CAA2BgM,IAAI,IAAI;MAC/BsjN,oBAAoB,CAAC,IAAD,EAAO,IAAP,EAAatjN,IAAb,CAApB;MACA,KAAKwjN,QAAL,CAAcxjN,IAAd,EAAoB47C,QAApB,CAA6BvoD,KAAK,CAAC2M,IAAD,CAAlC,EAA0C;QAAE6kN,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE14M,OAAO,CAAC04M;MAArC,CAA1C;IACH,CAHD;IAIA,KAAKM,sBAAL,CAA4Bh5M,OAA5B;EACH;EACD;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;;;EACI+6M,UAAU,CAACr0N,KAAD,EAAQsZ,OAAO,GAAG,EAAlB,EAAsB;IAC5B;IACA;IACA;IACA;IACA,IAAItZ,KAAK,IAAI;IAAK;IAAlB,EACI;IACJP,MAAM,CAACY,IAAP,CAAYL,KAAZ,EAAmBW,OAAnB,CAA2BgM,IAAI,IAAI;MAC/B;MACA;MACA,MAAM27C,OAAO,GAAG,KAAK6nK,QAAL,CAAcxjN,IAAd,CAAhB;;MACA,IAAI27C,OAAJ,EAAa;QACTA,OAAO,CAAC+rK,UAAR;QACA;QAA0Dr0N,KAAK,CAAC2M,IAAD,CAD/D,EACuE;UAAE6kN,QAAQ,EAAE,IAAZ;UAAkBQ,SAAS,EAAE14M,OAAO,CAAC04M;QAArC,CADvE;MAEH;IACJ,CARD;IASA,KAAKM,sBAAL,CAA4Bh5M,OAA5B;EACH;EACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2H,KAAK,CAACjhB,KAAK,GAAG,EAAT,EAAasZ,OAAO,GAAG,EAAvB,EAA2B;IAC5B,KAAK+2M,aAAL,CAAmB,CAAC/nK,OAAD,EAAU37C,IAAV,KAAmB;MAClC27C,OAAO,CAACrnC,KAAR,CAAcjhB,KAAK,CAAC2M,IAAD,CAAnB,EAA2B;QAAE6kN,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE14M,OAAO,CAAC04M;MAArC,CAA3B;IACH,CAFD;;IAGA,KAAKF,eAAL,CAAqBx4M,OAArB;;IACA,KAAKq4M,cAAL,CAAoBr4M,OAApB;;IACA,KAAKg5M,sBAAL,CAA4Bh5M,OAA5B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIk5M,WAAW,GAAG;IACV,OAAO,KAAK8B,eAAL,CAAqB,EAArB,EAAyB,CAACtlN,GAAD,EAAMs5C,OAAN,EAAe37C,IAAf,KAAwB;MACpDqC,GAAG,CAACrC,IAAD,CAAH,GAAY27C,OAAO,CAACkqK,WAAR,EAAZ;MACA,OAAOxjN,GAAP;IACH,CAHM,CAAP;EAIH;EACD;;;EACAulN,oBAAoB,GAAG;IACnB,IAAIC,cAAc,GAAG,KAAKF,eAAL,CAAqB,KAArB,EAA4B,CAACG,OAAD,EAAUrnN,KAAV,KAAoB;MACjE,OAAOA,KAAK,CAACmnN,oBAAN,KAA+B,IAA/B,GAAsCE,OAA7C;IACH,CAFoB,CAArB;;IAGA,IAAID,cAAJ,EACI,KAAKlC,sBAAL,CAA4B;MAAEd,QAAQ,EAAE;IAAZ,CAA5B;IACJ,OAAOgD,cAAP;EACH;EACD;;;EACAnE,aAAa,CAAC7sJ,EAAD,EAAK;IACd/jE,MAAM,CAACY,IAAP,CAAY,KAAK8vN,QAAjB,EAA2BxvN,OAA3B,CAAmChB,GAAG,IAAI;MACtC;MACA;MACA;MACA,MAAM2oD,OAAO,GAAG,KAAK6nK,QAAL,CAAcxwN,GAAd,CAAhB;MACA2oD,OAAO,IAAIkb,EAAE,CAAClb,OAAD,EAAU3oD,GAAV,CAAb;IACH,CAND;EAOH;EACD;;;EACAo0N,cAAc,GAAG;IACb,KAAK1D,aAAL,CAAoB/nK,OAAD,IAAa;MAC5BA,OAAO,CAACiqK,SAAR,CAAkB,IAAlB;;MACAjqK,OAAO,CAACqrK,2BAAR,CAAoC,KAAKjD,mBAAzC;IACH,CAHD;EAIH;EACD;;;EACAyB,YAAY,GAAG;IACX,KAAKnyN,KAAL,GAAa,KAAK00N,YAAL,EAAb;EACH;EACD;;;EACAlB,YAAY,CAACpiH,SAAD,EAAY;IACpB,KAAK,MAAM,CAACgjH,WAAD,EAAc9rK,OAAd,CAAX,IAAqC7oD,MAAM,CAACsiF,OAAP,CAAe,KAAKouI,QAApB,CAArC,EAAoE;MAChE,IAAI,KAAKngL,QAAL,CAAcokL,WAAd,KAA8BhjH,SAAS,CAAC9oD,OAAD,CAA3C,EAAsD;QAClD,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;EACD;;;EACAosK,YAAY,GAAG;IACX,IAAI1lN,GAAG,GAAG,EAAV;IACA,OAAO,KAAKslN,eAAL,CAAqBtlN,GAArB,EAA0B,CAACA,GAAD,EAAMs5C,OAAN,EAAe37C,IAAf,KAAwB;MACrD,IAAI27C,OAAO,CAAC/S,OAAR,IAAmB,KAAKt8B,QAA5B,EAAsC;QAClCjK,GAAG,CAACrC,IAAD,CAAH,GAAY27C,OAAO,CAACtoD,KAApB;MACH;;MACD,OAAOgP,GAAP;IACH,CALM,CAAP;EAMH;EACD;;;EACAslN,eAAe,CAACK,SAAD,EAAYtsN,EAAZ,EAAgB;IAC3B,IAAI00F,GAAG,GAAG43H,SAAV;;IACA,KAAKtE,aAAL,CAAmB,CAAC/nK,OAAD,EAAU37C,IAAV,KAAmB;MAClCowF,GAAG,GAAG10F,EAAE,CAAC00F,GAAD,EAAMz0C,OAAN,EAAe37C,IAAf,CAAR;IACH,CAFD;;IAGA,OAAOowF,GAAP;EACH;EACD;;;EACAi2H,oBAAoB,GAAG;IACnB,KAAK,MAAMoB,WAAX,IAA0B30N,MAAM,CAACY,IAAP,CAAY,KAAK8vN,QAAjB,CAA1B,EAAsD;MAClD,IAAI,KAAKA,QAAL,CAAciE,WAAd,EAA2B7+K,OAA/B,EAAwC;QACpC,OAAO,KAAP;MACH;IACJ;;IACD,OAAO91C,MAAM,CAACY,IAAP,CAAY,KAAK8vN,QAAjB,EAA2B/wN,MAA3B,GAAoC,CAApC,IAAyC,KAAK6Z,QAArD;EACH;EACD;;;EACAo6M,KAAK,CAAC1mN,IAAD,EAAO;IACR,OAAO,KAAKwjN,QAAL,CAAc16L,cAAd,CAA6B9oB,IAA7B,IACH,KAAKwjN,QAAL,CAAcxjN,IAAd,CADG,GAEH,IAFJ;EAGH;;AAxTmC;;AA0TxC,MAAMioN,gBAAgB,GAAGd,SAAzB;;AACA,MAAM3E,WAAW,GAAI7mK,OAAD,IAAaA,OAAO,YAAYwrK,SAApD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMe,UAAN,SAAyBf,SAAzB,CAAmC;;AAEnC,MAAMgB,YAAY,GAAIxsK,OAAD,IAAaA,OAAO,YAAYusK,UAArD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,WAAT,CAAqBpoN,IAArB,EAA2B+c,MAA3B,EAAmC;EAC/B,OAAO,CAAC,GAAGA,MAAM,CAAC3Z,IAAX,EAAiBpD,IAAjB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqoN,YAAT,CAAsB1sK,OAAtB,EAA+BuoD,GAA/B,EAAoC;EAChC,IAAI,OAAO3qF,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C,IAAI,CAACoiC,OAAL,EACI2sK,WAAW,CAACpkH,GAAD,EAAM,0BAAN,CAAX;IACJ,IAAI,CAACA,GAAG,CAACw8G,aAAT,EACI4H,WAAW,CAACpkH,GAAD,EAAM,yCAAN,CAAX;EACP;;EACDqkH,eAAe,CAAC5sK,OAAD,EAAUuoD,GAAV,CAAf;EACAA,GAAG,CAACw8G,aAAJ,CAAkB7E,UAAlB,CAA6BlgK,OAAO,CAACtoD,KAArC;;EACA,IAAIsoD,OAAO,CAACrvC,QAAZ,EAAsB;IAClB43F,GAAG,CAACw8G,aAAJ,CAAkBlF,gBAAlB,GAAqC,IAArC;EACH;;EACDgN,uBAAuB,CAAC7sK,OAAD,EAAUuoD,GAAV,CAAvB;EACAukH,wBAAwB,CAAC9sK,OAAD,EAAUuoD,GAAV,CAAxB;EACAwkH,iBAAiB,CAAC/sK,OAAD,EAAUuoD,GAAV,CAAjB;EACAykH,0BAA0B,CAAChtK,OAAD,EAAUuoD,GAAV,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0kH,cAAT,CAAwBjtK,OAAxB,EAAiCuoD,GAAjC,EAAsC2kH,+BAA+B,GAAG,IAAxE,EAA8E;EAC1E,MAAMjzN,IAAI,GAAG,MAAM;IACf,IAAIizN,+BAA+B,KAAK,OAAOtvM,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAnC,EAAwF;MACpFuvM,eAAe,CAAC5kH,GAAD,CAAf;IACH;EACJ,CAJD,CAD0E,CAM1E;EACA;EACA;EACA;EACA;;;EACA,IAAIA,GAAG,CAACw8G,aAAR,EAAuB;IACnBx8G,GAAG,CAACw8G,aAAJ,CAAkBnF,gBAAlB,CAAmC3lN,IAAnC;IACAsuG,GAAG,CAACw8G,aAAJ,CAAkBpF,iBAAlB,CAAoC1lN,IAApC;EACH;;EACDmzN,iBAAiB,CAACptK,OAAD,EAAUuoD,GAAV,CAAjB;;EACA,IAAIvoD,OAAJ,EAAa;IACTuoD,GAAG,CAACm8G,yBAAJ;;IACA1kK,OAAO,CAACqrK,2BAAR,CAAoC,MAAM,CAAG,CAA7C;EACH;AACJ;;AACD,SAASgC,yBAAT,CAAmCpL,UAAnC,EAA+CziK,QAA/C,EAAyD;EACrDyiK,UAAU,CAAC5pN,OAAX,CAAoBmqN,SAAD,IAAe;IAC9B,IAAIA,SAAS,CAAC6K,yBAAd,EACI7K,SAAS,CAAC6K,yBAAV,CAAoC7tK,QAApC;EACP,CAHD;AAIH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwtK,0BAAT,CAAoChtK,OAApC,EAA6CuoD,GAA7C,EAAkD;EAC9C,IAAIA,GAAG,CAACw8G,aAAJ,CAAkBlF,gBAAtB,EAAwC;IACpC,MAAMyN,gBAAgB,GAAIp8K,UAAD,IAAgB;MACrCq3D,GAAG,CAACw8G,aAAJ,CAAkBlF,gBAAlB,CAAmC3uK,UAAnC;IACH,CAFD;;IAGA8O,OAAO,CAACutK,wBAAR,CAAiCD,gBAAjC,EAJoC,CAKpC;IACA;;IACA/kH,GAAG,CAACk8G,kBAAJ,CAAuB,MAAM;MACzBzkK,OAAO,CAACwtK,2BAAR,CAAoCF,gBAApC;IACH,CAFD;EAGH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASV,eAAT,CAAyB5sK,OAAzB,EAAkCuoD,GAAlC,EAAuC;EACnC,MAAM05G,UAAU,GAAGiB,oBAAoB,CAACljK,OAAD,CAAvC;;EACA,IAAIuoD,GAAG,CAACi6G,SAAJ,KAAkB,IAAtB,EAA4B;IACxBxiK,OAAO,CAAC0oK,aAAR,CAAsB3F,eAAe,CAACd,UAAD,EAAa15G,GAAG,CAACi6G,SAAjB,CAArC;EACH,CAFD,MAGK,IAAI,OAAOP,UAAP,KAAsB,UAA1B,EAAsC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA;IACAjiK,OAAO,CAAC0oK,aAAR,CAAsB,CAACzG,UAAD,CAAtB;EACH;;EACD,MAAMwF,eAAe,GAAGrE,yBAAyB,CAACpjK,OAAD,CAAjD;;EACA,IAAIuoD,GAAG,CAACi8G,cAAJ,KAAuB,IAA3B,EAAiC;IAC7BxkK,OAAO,CAAC2oK,kBAAR,CAA2B5F,eAAe,CAAC0E,eAAD,EAAkBl/G,GAAG,CAACi8G,cAAtB,CAA1C;EACH,CAFD,MAGK,IAAI,OAAOiD,eAAP,KAA2B,UAA/B,EAA2C;IAC5CznK,OAAO,CAAC2oK,kBAAR,CAA2B,CAAClB,eAAD,CAA3B;EACH,CArBkC,CAsBnC;;;EACA,MAAMgG,iBAAiB,GAAG,MAAMztK,OAAO,CAACgqK,sBAAR,EAAhC;;EACAqD,yBAAyB,CAAC9kH,GAAG,CAAC46G,cAAL,EAAqBsK,iBAArB,CAAzB;EACAJ,yBAAyB,CAAC9kH,GAAG,CAAC86G,mBAAL,EAA0BoK,iBAA1B,CAAzB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASL,iBAAT,CAA2BptK,OAA3B,EAAoCuoD,GAApC,EAAyC;EACrC,IAAImlH,gBAAgB,GAAG,KAAvB;;EACA,IAAI1tK,OAAO,KAAK,IAAhB,EAAsB;IAClB,IAAIuoD,GAAG,CAACi6G,SAAJ,KAAkB,IAAtB,EAA4B;MACxB,MAAMP,UAAU,GAAGiB,oBAAoB,CAACljK,OAAD,CAAvC;;MACA,IAAIjnD,KAAK,CAACC,OAAN,CAAcipN,UAAd,KAA6BA,UAAU,CAACnrN,MAAX,GAAoB,CAArD,EAAwD;QACpD;QACA,MAAM62N,iBAAiB,GAAG1L,UAAU,CAAC/pN,MAAX,CAAmBsqN,SAAD,IAAeA,SAAS,KAAKj6G,GAAG,CAACi6G,SAAnD,CAA1B;;QACA,IAAImL,iBAAiB,CAAC72N,MAAlB,KAA6BmrN,UAAU,CAACnrN,MAA5C,EAAoD;UAChD42N,gBAAgB,GAAG,IAAnB;UACA1tK,OAAO,CAAC0oK,aAAR,CAAsBiF,iBAAtB;QACH;MACJ;IACJ;;IACD,IAAIplH,GAAG,CAACi8G,cAAJ,KAAuB,IAA3B,EAAiC;MAC7B,MAAMiD,eAAe,GAAGrE,yBAAyB,CAACpjK,OAAD,CAAjD;;MACA,IAAIjnD,KAAK,CAACC,OAAN,CAAcyuN,eAAd,KAAkCA,eAAe,CAAC3wN,MAAhB,GAAyB,CAA/D,EAAkE;QAC9D;QACA,MAAM82N,sBAAsB,GAAGnG,eAAe,CAACvvN,MAAhB,CAAwBssN,cAAD,IAAoBA,cAAc,KAAKj8G,GAAG,CAACi8G,cAAlE,CAA/B;;QACA,IAAIoJ,sBAAsB,CAAC92N,MAAvB,KAAkC2wN,eAAe,CAAC3wN,MAAtD,EAA8D;UAC1D42N,gBAAgB,GAAG,IAAnB;UACA1tK,OAAO,CAAC2oK,kBAAR,CAA2BiF,sBAA3B;QACH;MACJ;IACJ;EACJ,CAzBoC,CA0BrC;;;EACA,MAAM3zN,IAAI,GAAG,MAAM,CAAG,CAAtB;;EACAozN,yBAAyB,CAAC9kH,GAAG,CAAC46G,cAAL,EAAqBlpN,IAArB,CAAzB;EACAozN,yBAAyB,CAAC9kH,GAAG,CAAC86G,mBAAL,EAA0BppN,IAA1B,CAAzB;EACA,OAAOyzN,gBAAP;AACH;;AACD,SAASb,uBAAT,CAAiC7sK,OAAjC,EAA0CuoD,GAA1C,EAA+C;EAC3CA,GAAG,CAACw8G,aAAJ,CAAkBnF,gBAAlB,CAAoC71G,QAAD,IAAc;IAC7C/pD,OAAO,CAAC6tK,aAAR,GAAwB9jH,QAAxB;IACA/pD,OAAO,CAAC8tK,cAAR,GAAyB,IAAzB;IACA9tK,OAAO,CAACioK,aAAR,GAAwB,IAAxB;IACA,IAAIjoK,OAAO,CAACwoK,QAAR,KAAqB,QAAzB,EACIuF,aAAa,CAAC/tK,OAAD,EAAUuoD,GAAV,CAAb;EACP,CAND;AAOH;;AACD,SAASwkH,iBAAT,CAA2B/sK,OAA3B,EAAoCuoD,GAApC,EAAyC;EACrCA,GAAG,CAACw8G,aAAJ,CAAkBpF,iBAAlB,CAAoC,MAAM;IACtC3/J,OAAO,CAACmoK,eAAR,GAA0B,IAA1B;IACA,IAAInoK,OAAO,CAACwoK,QAAR,KAAqB,MAArB,IAA+BxoK,OAAO,CAAC8tK,cAA3C,EACIC,aAAa,CAAC/tK,OAAD,EAAUuoD,GAAV,CAAb;IACJ,IAAIvoD,OAAO,CAACwoK,QAAR,KAAqB,QAAzB,EACIxoK,OAAO,CAACipK,aAAR;EACP,CAND;AAOH;;AACD,SAAS8E,aAAT,CAAuB/tK,OAAvB,EAAgCuoD,GAAhC,EAAqC;EACjC,IAAIvoD,OAAO,CAACioK,aAAZ,EACIjoK,OAAO,CAACspK,WAAR;EACJtpK,OAAO,CAACC,QAAR,CAAiBD,OAAO,CAAC6tK,aAAzB,EAAwC;IAAEG,qBAAqB,EAAE;EAAzB,CAAxC;EACAzlH,GAAG,CAACxoD,iBAAJ,CAAsBC,OAAO,CAAC6tK,aAA9B;EACA7tK,OAAO,CAAC8tK,cAAR,GAAyB,KAAzB;AACH;;AACD,SAAShB,wBAAT,CAAkC9sK,OAAlC,EAA2CuoD,GAA3C,EAAgD;EAC5C,MAAM/oD,QAAQ,GAAG,CAACuqD,QAAD,EAAWkkH,cAAX,KAA8B;IAC3C;IACA1lH,GAAG,CAACw8G,aAAJ,CAAkB7E,UAAlB,CAA6Bn2G,QAA7B,EAF2C,CAG3C;;IACA,IAAIkkH,cAAJ,EACI1lH,GAAG,CAACxoD,iBAAJ,CAAsBgqD,QAAtB;EACP,CAND;;EAOA/pD,OAAO,CAAC4/J,gBAAR,CAAyBpgK,QAAzB,EAR4C,CAS5C;EACA;;EACA+oD,GAAG,CAACk8G,kBAAJ,CAAuB,MAAM;IACzBzkK,OAAO,CAACkuK,mBAAR,CAA4B1uK,QAA5B;EACH,CAFD;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2uK,kBAAT,CAA4BnuK,OAA5B,EAAqCuoD,GAArC,EAA0C;EACtC,IAAIvoD,OAAO,IAAI,IAAX,KAAoB,OAAOpiC,SAAP,KAAqB,WAArB,IAAoCA,SAAxD,CAAJ,EACI+uM,WAAW,CAACpkH,GAAD,EAAM,0BAAN,CAAX;EACJqkH,eAAe,CAAC5sK,OAAD,EAAUuoD,GAAV,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6lH,oBAAT,CAA8BpuK,OAA9B,EAAuCuoD,GAAvC,EAA4C;EACxC,OAAO6kH,iBAAiB,CAACptK,OAAD,EAAUuoD,GAAV,CAAxB;AACH;;AACD,SAAS4kH,eAAT,CAAyB5kH,GAAzB,EAA8B;EAC1B,OAAOokH,WAAW,CAACpkH,GAAD,EAAM,wEAAN,CAAlB;AACH;;AACD,SAASokH,WAAT,CAAqBpkH,GAArB,EAA0Bj1F,OAA1B,EAAmC;EAC/B,MAAM+6M,UAAU,GAAGC,wBAAwB,CAAC/lH,GAAD,CAA3C;;EACA,MAAM,IAAI/0F,KAAJ,CAAW,GAAEF,OAAQ,IAAG+6M,UAAW,EAAnC,CAAN;AACH;;AACD,SAASC,wBAAT,CAAkC/lH,GAAlC,EAAuC;EACnC,MAAM9gG,IAAI,GAAG8gG,GAAG,CAAC9gG,IAAjB;EACA,IAAIA,IAAI,IAAIA,IAAI,CAAC3Q,MAAL,GAAc,CAA1B,EACI,OAAQ,UAAS2Q,IAAI,CAACtB,IAAL,CAAU,MAAV,CAAkB,GAAnC;EACJ,IAAIsB,IAAI,GAAG,CAAH,CAAR,EACI,OAAQ,UAASA,IAAK,GAAtB;EACJ,OAAO,4BAAP;AACH;;AACD,SAAS8mN,+BAAT,CAAyChmH,GAAzC,EAA8C;EAC1C,MAAMimH,GAAG,GAAGF,wBAAwB,CAAC/lH,GAAD,CAApC;;EACA,MAAM,IAAIxqC,2DAAJ,CAAkB;EAAK;EAAvB,EAA+E,qEAAoEywJ,GAAI,IAAzE,GAC/E,yFADC,CAAN;AAEH;;AACD,SAASC,iBAAT,CAA2BtpH,OAA3B,EAAoCupH,SAApC,EAA+C;EAC3C,IAAI,CAACvpH,OAAO,CAACh4E,cAAR,CAAuB,OAAvB,CAAL,EACI,OAAO,KAAP;EACJ,MAAMu6K,MAAM,GAAGviG,OAAO,CAAC,OAAD,CAAtB;EACA,IAAIuiG,MAAM,CAAChrF,aAAP,EAAJ,EACI,OAAO,IAAP;EACJ,OAAO,CAACvlH,MAAM,CAACm4K,EAAP,CAAUo/C,SAAV,EAAqBhnB,MAAM,CAACniG,YAA5B,CAAR;AACH;;AACD,SAASopH,iBAAT,CAA2B5J,aAA3B,EAA0C;EACtC;EACA;EACA,OAAO5tN,MAAM,CAACu4D,cAAP,CAAsBq1J,aAAa,CAAC3uN,WAApC,MAAqD0pN,2BAA5D;AACH;;AACD,SAAS8O,mBAAT,CAA6BvzH,IAA7B,EAAmCs3B,UAAnC,EAA+C;EAC3Ct3B,IAAI,CAAC4wH,oBAAL;;EACAt5F,UAAU,CAACt6H,OAAX,CAAoBkwG,GAAD,IAAS;IACxB,MAAMvoD,OAAO,GAAGuoD,GAAG,CAACvoD,OAApB;;IACA,IAAIA,OAAO,CAACwoK,QAAR,KAAqB,QAArB,IAAiCxoK,OAAO,CAAC8tK,cAA7C,EAA6D;MACzDvlH,GAAG,CAACxoD,iBAAJ,CAAsBC,OAAO,CAAC6tK,aAA9B;MACA7tK,OAAO,CAAC8tK,cAAR,GAAyB,KAAzB;IACH;EACJ,CAND;AAOH,EACD;;;AACA,SAASe,mBAAT,CAA6BtmH,GAA7B,EAAkCumH,cAAlC,EAAkD;EAC9C,IAAI,CAACA,cAAL,EACI,OAAO,IAAP;EACJ,IAAI,CAAC/1N,KAAK,CAACC,OAAN,CAAc81N,cAAd,CAAD,KAAmC,OAAOlxM,SAAP,KAAqB,WAArB,IAAoCA,SAAvE,CAAJ,EACI2wM,+BAA+B,CAAChmH,GAAD,CAA/B;EACJ,IAAIwmH,eAAe,GAAGr1N,SAAtB;EACA,IAAIs1N,eAAe,GAAGt1N,SAAtB;EACA,IAAIu1N,cAAc,GAAGv1N,SAArB;EACAo1N,cAAc,CAACz2N,OAAf,CAAwBkkB,CAAD,IAAO;IAC1B,IAAIA,CAAC,CAACnmB,WAAF,KAAkBgqN,oBAAtB,EAA4C;MACxC2O,eAAe,GAAGxyM,CAAlB;IACH,CAFD,MAGK,IAAIoyM,iBAAiB,CAACpyM,CAAD,CAArB,EAA0B;MAC3B,IAAIyyM,eAAe,KAAK,OAAOpxM,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAnB,EACI+uM,WAAW,CAACpkH,GAAD,EAAM,iEAAN,CAAX;MACJymH,eAAe,GAAGzyM,CAAlB;IACH,CAJI,MAKA;MACD,IAAI0yM,cAAc,KAAK,OAAOrxM,SAAP,KAAqB,WAArB,IAAoCA,SAAzC,CAAlB,EACI+uM,WAAW,CAACpkH,GAAD,EAAM,+DAAN,CAAX;MACJ0mH,cAAc,GAAG1yM,CAAjB;IACH;EACJ,CAdD;EAeA,IAAI0yM,cAAJ,EACI,OAAOA,cAAP;EACJ,IAAID,eAAJ,EACI,OAAOA,eAAP;EACJ,IAAID,eAAJ,EACI,OAAOA,eAAP;;EACJ,IAAI,OAAOnxM,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C+uM,WAAW,CAACpkH,GAAD,EAAM,+CAAN,CAAX;EACH;;EACD,OAAO,IAAP;AACH;;AACD,SAAS2mH,gBAAT,CAA0BxwK,IAA1B,EAAgCnU,EAAhC,EAAoC;EAChC,MAAM/mC,KAAK,GAAGk7C,IAAI,CAAC9iD,OAAL,CAAa2uC,EAAb,CAAd;EACA,IAAI/mC,KAAK,GAAG,CAAC,CAAb,EACIk7C,IAAI,CAAC+L,MAAL,CAAYjnD,KAAZ,EAAmB,CAAnB;AACP,EACD;;;AACA,SAAS2rN,eAAT,CAAyB9qN,IAAzB,EAA+BmN,IAA/B,EAAqCjb,QAArC,EAA+C64N,aAA/C,EAA8D;EAC1D,IAAIA,aAAa,KAAK,OAAtB,EACI;;EACJ,IAAK,CAACA,aAAa,KAAK,IAAlB,IAA0BA,aAAa,KAAK,MAA7C,KAAwD,CAAC59M,IAAI,CAAC69M,uBAA/D,IACCD,aAAa,KAAK,QAAlB,IAA8B,CAAC74N,QAAQ,CAAC+4N,mBAD7C,EACmE;IAC/Dh5M,OAAO,CAAC6S,IAAR,CAAaw9L,cAAc,CAACtiN,IAAD,CAA3B;IACAmN,IAAI,CAAC69M,uBAAL,GAA+B,IAA/B;IACA94N,QAAQ,CAAC+4N,mBAAT,GAA+B,IAA/B;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,uBAAuB,GAAG;EAC5B1tL,OAAO,EAAEgjL,gBADmB;EAE5Bt7F,WAAW,EAAEc,yDAAU,CAAC,MAAMmlG,MAAP;AAFK,CAAhC;;AAIA,MAAMC,iBAAiB,GAAG,CAAC,MAAM9rN,OAAO,CAAClC,OAAR,EAAP,GAA1B;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,MAAM+tN,MAAN,SAAqB3K,gBAArB,CAAsC;EAClCzuN,WAAW,CAAC6rN,UAAD,EAAawF,eAAb,EAA8B;IACrC;IACA;AACR;AACA;AACA;;IACQ,KAAK/B,SAAL,GAAiB,KAAjB;IACA,KAAKgK,WAAL,GAAmB,IAAI3uJ,GAAJ,EAAnB;IACA;AACR;AACA;AACA;;IACQ,KAAK4uJ,QAAL,GAAgB,IAAIl5L,uDAAJ,EAAhB;IACA,KAAK4kE,IAAL,GACI,IAAImwH,SAAJ,CAAc,EAAd,EAAkB3I,iBAAiB,CAACZ,UAAD,CAAnC,EAAiDa,sBAAsB,CAAC2E,eAAD,CAAvE,CADJ;EAEH;EACD;;;EACA7mF,eAAe,GAAG;IACd,KAAK0qF,kBAAL;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAbxG,aAAa,GAAG;IAChB,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAP9kK,OAAO,GAAG;IACV,OAAO,KAAKq7C,IAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACY,IAAJ5zF,IAAI,GAAG;IACP,OAAO,EAAP;EACH;EACD;AACJ;AACA;AACA;;;EACgB,IAARogN,QAAQ,GAAG;IACX,OAAO,KAAKxsH,IAAL,CAAUwsH,QAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACI8D,UAAU,CAACpjH,GAAD,EAAM;IACZknH,iBAAiB,CAACttN,IAAlB,CAAuB,MAAM;MACzB,MAAMgX,SAAS,GAAG,KAAKy2M,cAAL,CAAoBrnH,GAAG,CAAC9gG,IAAxB,CAAlB;;MACA8gG,GAAG,CAACvoD,OAAJ,GACI7mC,SAAS,CAACuyM,eAAV,CAA0BnjH,GAAG,CAAClkG,IAA9B,EAAoCkkG,GAAG,CAACvoD,OAAxC,CADJ;MAEA0sK,YAAY,CAACnkH,GAAG,CAACvoD,OAAL,EAAcuoD,GAAd,CAAZ;MACAA,GAAG,CAACvoD,OAAJ,CAAYgqK,sBAAZ,CAAmC;QAAEN,SAAS,EAAE;MAAb,CAAnC;;MACA,KAAKgG,WAAL,CAAiB35M,GAAjB,CAAqBwyF,GAArB;IACH,CAPD;EAQH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIsnH,UAAU,CAACtnH,GAAD,EAAM;IACZ,OAAO,KAAKlN,IAAL,CAAUniF,GAAV,CAAcqvF,GAAG,CAAC9gG,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACImkN,aAAa,CAACrjH,GAAD,EAAM;IACfknH,iBAAiB,CAACttN,IAAlB,CAAuB,MAAM;MACzB,MAAMgX,SAAS,GAAG,KAAKy2M,cAAL,CAAoBrnH,GAAG,CAAC9gG,IAAxB,CAAlB;;MACA,IAAI0R,SAAJ,EAAe;QACXA,SAAS,CAACyyM,aAAV,CAAwBrjH,GAAG,CAAClkG,IAA5B;MACH;;MACD,KAAKqrN,WAAL,CAAiB79K,MAAjB,CAAwB02D,GAAxB;IACH,CAND;EAOH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIunH,YAAY,CAACvnH,GAAD,EAAM;IACdknH,iBAAiB,CAACttN,IAAlB,CAAuB,MAAM;MACzB,MAAMgX,SAAS,GAAG,KAAKy2M,cAAL,CAAoBrnH,GAAG,CAAC9gG,IAAxB,CAAlB;;MACA,MAAMg6C,KAAK,GAAG,IAAI+pK,SAAJ,CAAc,EAAd,CAAd;MACA2C,kBAAkB,CAAC1sK,KAAD,EAAQ8mD,GAAR,CAAlB;MACApvF,SAAS,CAACuyM,eAAV,CAA0BnjH,GAAG,CAAClkG,IAA9B,EAAoCo9C,KAApC;MACAA,KAAK,CAACuoK,sBAAN,CAA6B;QAAEN,SAAS,EAAE;MAAb,CAA7B;IACH,CAND;EAOH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIqG,eAAe,CAACxnH,GAAD,EAAM;IACjBknH,iBAAiB,CAACttN,IAAlB,CAAuB,MAAM;MACzB,MAAMgX,SAAS,GAAG,KAAKy2M,cAAL,CAAoBrnH,GAAG,CAAC9gG,IAAxB,CAAlB;;MACA,IAAI0R,SAAJ,EAAe;QACXA,SAAS,CAACyyM,aAAV,CAAwBrjH,GAAG,CAAClkG,IAA5B;MACH;IACJ,CALD;EAMH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI2rN,YAAY,CAACznH,GAAD,EAAM;IACd,OAAO,KAAKlN,IAAL,CAAUniF,GAAV,CAAcqvF,GAAG,CAAC9gG,IAAlB,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIwoN,WAAW,CAAC1nH,GAAD,EAAM7wG,KAAN,EAAa;IACpB+3N,iBAAiB,CAACttN,IAAlB,CAAuB,MAAM;MACzB,MAAMsoN,IAAI,GAAG,KAAKpvH,IAAL,CAAUniF,GAAV,CAAcqvF,GAAG,CAAC9gG,IAAlB,CAAb;MACAgjN,IAAI,CAACxqK,QAAL,CAAcvoD,KAAd;IACH,CAHD;EAIH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIuoD,QAAQ,CAACvoD,KAAD,EAAQ;IACZ,KAAKsoD,OAAL,CAAaC,QAAb,CAAsBvoD,KAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIw4N,QAAQ,CAAC17K,MAAD,EAAS;IACb,KAAKkxK,SAAL,GAAiB,IAAjB;IACAkJ,mBAAmB,CAAC,KAAKvzH,IAAN,EAAY,KAAKq0H,WAAjB,CAAnB;IACA,KAAKC,QAAL,CAAc/uN,IAAd,CAAmB4zC,MAAnB,EAHa,CAIb;IACA;;IACA,OAAOA,MAAM,EAAE79C,MAAR,EAAgB6+B,MAAhB,KAA2B,QAAlC;EACH;EACD;AACJ;AACA;AACA;;;EACI26L,OAAO,GAAG;IACN,KAAKC,SAAL;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIA,SAAS,CAAC14N,KAAK,GAAGgC,SAAT,EAAoB;IACzB,KAAK2hG,IAAL,CAAU1iF,KAAV,CAAgBjhB,KAAhB;IACA,KAAKguN,SAAL,GAAiB,KAAjB;EACH;;EACD4F,kBAAkB,GAAG;IACjB,IAAI,KAAKt6M,OAAL,IAAgB,KAAKA,OAAL,CAAaw3M,QAAb,IAAyB,IAA7C,EAAmD;MAC/C,KAAKntH,IAAL,CAAUotH,SAAV,GAAsB,KAAKz3M,OAAL,CAAaw3M,QAAnC;IACH;EACJ;;EACDoH,cAAc,CAACnoN,IAAD,EAAO;IACjBA,IAAI,CAACguB,GAAL;IACA,OAAOhuB,IAAI,CAAC3Q,MAAL,GAAc,KAAKukG,IAAL,CAAUniF,GAAV,CAAczR,IAAd,CAAd,GAAoC,KAAK4zF,IAAhD;EACH;;AA9LiC;;AAgMtCm0H,MAAM,CAACpyM,IAAP;EAAA,iBAAmGoyM,MAAnG,EAj6G2G1xJ,+DAi6G3G,CAA2HkjJ,aAA3H,OAj6G2GljJ,+DAi6G3G,CAAiLmjJ,mBAAjL;AAAA;;AACAuO,MAAM,CAAChxL,IAAP,kBAl6G2Gs/B,+DAk6G3G;EAAA,MAAuF0xJ,MAAvF;EAAA;EAAA;IAAA;MAl6G2G1xJ,wDAk6G3G;QAAA,OAAuF,oBAAvF;MAAA;QAAA,OAAuF,aAAvF;MAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WAl6G2GA,gEAk6G3G,CAAiV,CAACyxJ,uBAAD,CAAjV,GAl6G2GzxJ,wEAk6G3G;AAAA;;AACA;EAAA,mDAn6G2GA,+DAm6G3G,CAA2F0xJ,MAA3F,EAA+G,CAAC;IACpGh+M,IAAI,EAAEmqB,oDAD8F;IAEpGrwB,IAAI,EAAE,CAAC;MACCmvB,QAAQ,EAAE,wDADX;MAECK,SAAS,EAAE,CAACy0L,uBAAD,CAFZ;MAGCvwL,IAAI,EAAE;QAAE,YAAY,kBAAd;QAAkC,WAAW;MAA7C,CAHP;MAICrF,OAAO,EAAE,CAAC,UAAD,CAJV;MAKCoF,QAAQ,EAAE;IALX,CAAD;EAF8F,CAAD,CAA/G,EAS4B,YAAY;IAAE,OAAO,CAAC;MAAEvtB,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAC9DzK,IAAI,EAAE46E,mDAAQA;MADgD,CAAD,EAE9D;QACC56E,IAAI,EAAE20H,+CAAIA;MADX,CAF8D,EAI9D;QACC30H,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC01M,aAAD;MAFP,CAJ8D;IAA/B,CAAD,EAO3B;MAAExvM,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAClCzK,IAAI,EAAE46E,mDAAQA;MADoB,CAAD,EAElC;QACC56E,IAAI,EAAE20H,+CAAIA;MADX,CAFkC,EAIlC;QACC30H,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC21M,mBAAD;MAFP,CAJkC;IAA/B,CAP2B,CAAP;EAclB,CAvBxB,EAuB0C;IAAEjwM,OAAO,EAAE,CAAC;MACtCQ,IAAI,EAAEqlB,gDADgC;MAEtCvrB,IAAI,EAAE,CAAC,eAAD;IAFgC,CAAD;EAAX,CAvB1C;AAAA;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+kN,cAAT,CAAwB3xK,IAAxB,EAA8BnU,EAA9B,EAAkC;EAC9B,MAAM/mC,KAAK,GAAGk7C,IAAI,CAAC9iD,OAAL,CAAa2uC,EAAb,CAAd;EACA,IAAI/mC,KAAK,GAAG,CAAC,CAAb,EACIk7C,IAAI,CAAC+L,MAAL,CAAYjnD,KAAZ,EAAmB,CAAnB;AACP;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8sN,kBAAT,CAA4BC,SAA5B,EAAuC;EACnC,OAAO,OAAOA,SAAP,KAAqB,QAArB,IAAiCA,SAAS,KAAK,IAA/C,IACHp5N,MAAM,CAACY,IAAP,CAAYw4N,SAAZ,EAAuBz5N,MAAvB,KAAkC,CAD/B,IACoC,WAAWy5N,SAD/C,IAC4D,cAAcA,SADjF;AAEH;;AACD,MAAMC,WAAW,GAAI,MAAMA,WAAN,SAA0BxI,eAA1B,CAA0C;EAC3D5xN,WAAW,EACX;EACAm6N,SAAS,GAAG,IAFD,EAEOlJ,eAFP,EAEwB7C,cAFxB,EAEwC;IAC/C,MAAM4C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAAChD,cAAD,EAAiB6C,eAAjB,CAA1D;IACA;;IACA,KAAKxhK,YAAL,GAAoB,IAApB;IACA;;IACA,KAAK4qK,SAAL,GAAiB,EAAjB;IACA;;IACA,KAAK3C,cAAL,GAAsB,KAAtB;;IACA,KAAK4C,eAAL,CAAqBH,SAArB;;IACA,KAAKjF,kBAAL,CAAwBjE,eAAxB;;IACA,KAAK2D,gBAAL;;IACA,KAAKhB,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA;MACAQ,SAAS,EAAE,CAAC,CAAC,KAAKlF;IANM,CAA5B;;IAQA,IAAI8C,YAAY,CAACD,eAAD,CAAZ,KACCA,eAAe,CAACsJ,WAAhB,IAA+BtJ,eAAe,CAACuJ,qBADhD,CAAJ,EAC4E;MACxE,IAAIN,kBAAkB,CAACC,SAAD,CAAtB,EAAmC;QAC/B,KAAK1qK,YAAL,GAAoB0qK,SAAS,CAAC74N,KAA9B;MACH,CAFD,MAGK;QACD,KAAKmuD,YAAL,GAAoB0qK,SAApB;MACH;IACJ;EACJ;;EACDtwK,QAAQ,CAACvoD,KAAD,EAAQsZ,OAAO,GAAG,EAAlB,EAAsB;IAC1B,KAAKtZ,KAAL,GAAa,KAAKm2N,aAAL,GAAqBn2N,KAAlC;;IACA,IAAI,KAAK+4N,SAAL,CAAe35N,MAAf,IAAyBka,OAAO,CAACg9M,qBAAR,KAAkC,KAA/D,EAAsE;MAClE,KAAKyC,SAAL,CAAep4N,OAAf,CAAwB0xN,QAAD,IAAcA,QAAQ,CAAC,KAAKryN,KAAN,EAAasZ,OAAO,CAAC6/M,qBAAR,KAAkC,KAA/C,CAA7C;IACH;;IACD,KAAK7G,sBAAL,CAA4Bh5M,OAA5B;EACH;;EACD+6M,UAAU,CAACr0N,KAAD,EAAQsZ,OAAO,GAAG,EAAlB,EAAsB;IAC5B,KAAKivC,QAAL,CAAcvoD,KAAd,EAAqBsZ,OAArB;EACH;;EACD2H,KAAK,CAAC43M,SAAS,GAAG,KAAK1qK,YAAlB,EAAgC70C,OAAO,GAAG,EAA1C,EAA8C;IAC/C,KAAK0/M,eAAL,CAAqBH,SAArB;;IACA,KAAKhH,cAAL,CAAoBv4M,OAApB;IACA,KAAKo4M,eAAL,CAAqBp4M,OAArB;IACA,KAAKivC,QAAL,CAAc,KAAKvoD,KAAnB,EAA0BsZ,OAA1B;IACA,KAAK88M,cAAL,GAAsB,KAAtB;EACH;EACD;;;EACAjE,YAAY,GAAG,CAAG;EAClB;;;EACAqB,YAAY,CAACpiH,SAAD,EAAY;IACpB,OAAO,KAAP;EACH;EACD;;;EACA4hH,oBAAoB,GAAG;IACnB,OAAO,KAAK/5M,QAAZ;EACH;;EACDivM,gBAAgB,CAAC7/M,EAAD,EAAK;IACjB,KAAK0wN,SAAL,CAAe12N,IAAf,CAAoBgG,EAApB;EACH;EACD;;;EACAmuN,mBAAmB,CAACnuN,EAAD,EAAK;IACpBswN,cAAc,CAAC,KAAKI,SAAN,EAAiB1wN,EAAjB,CAAd;EACH;;EACDwtN,wBAAwB,CAACxtN,EAAD,EAAK;IACzB,KAAKsoN,iBAAL,CAAuBtuN,IAAvB,CAA4BgG,EAA5B;EACH;EACD;;;EACAytN,2BAA2B,CAACztN,EAAD,EAAK;IAC5BswN,cAAc,CAAC,KAAKhI,iBAAN,EAAyBtoN,EAAzB,CAAd;EACH;EACD;;;EACAgoN,aAAa,CAAC7sJ,EAAD,EAAK,CAAG;EACrB;;;EACA+wJ,oBAAoB,GAAG;IACnB,IAAI,KAAKzD,QAAL,KAAkB,QAAtB,EAAgC;MAC5B,IAAI,KAAKP,aAAT,EACI,KAAKqB,WAAL;MACJ,IAAI,KAAKnB,eAAT,EACI,KAAKc,aAAL;;MACJ,IAAI,KAAK6E,cAAT,EAAyB;QACrB,KAAK7tK,QAAL,CAAc,KAAK4tK,aAAnB,EAAkC;UAAE3E,QAAQ,EAAE,IAAZ;UAAkB8E,qBAAqB,EAAE;QAAzC,CAAlC;QACA,OAAO,IAAP;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;EACD0C,eAAe,CAACH,SAAD,EAAY;IACvB,IAAID,kBAAkB,CAACC,SAAD,CAAtB,EAAmC;MAC/B,KAAK74N,KAAL,GAAa,KAAKm2N,aAAL,GAAqB0C,SAAS,CAAC74N,KAA5C;MACA64N,SAAS,CAAC5/M,QAAV,GAAqB,KAAK+gC,OAAL,CAAa;QAAEw3K,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE;MAA7B,CAAb,CAArB,GACI,KAAK/3K,MAAL,CAAY;QAAEu3K,QAAQ,EAAE,IAAZ;QAAkBQ,SAAS,EAAE;MAA7B,CAAZ,CADJ;IAEH,CAJD,MAKK;MACD,KAAKhyN,KAAL,GAAa,KAAKm2N,aAAL,GAAqB0C,SAAlC;IACH;EACJ;;AAlG0D,CAA/D;AAoGA,MAAMO,kBAAkB,GAAGN,WAA3B;;AACA,MAAMO,aAAa,GAAI/wK,OAAD,IAAaA,OAAO,YAAYwwK,WAAtD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMQ,0BAAN,SAAyCnM,gBAAzC,CAA0D;EACtD;EACAzrL,QAAQ,GAAG;IACP,KAAK63L,gBAAL,GADO,CAEP;;;IACA,KAAKnM,aAAL,CAAmBgL,YAAnB,CAAgC,IAAhC;EACH;EACD;;;EACA5zK,WAAW,GAAG;IACV,IAAI,KAAK4oK,aAAT,EAAwB;MACpB;MACA,KAAKA,aAAL,CAAmBiL,eAAnB,CAAmC,IAAnC;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACe,IAAP/vK,OAAO,GAAG;IACV,OAAO,KAAK8kK,aAAL,CAAmBkL,YAAnB,CAAgC,IAAhC,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACY,IAAJvoN,IAAI,GAAG;IACP,OAAOglN,WAAW,CAAC,KAAKpoN,IAAL,IAAa,IAAb,GAAoB,KAAKA,IAAzB,GAAgC,KAAKA,IAAL,CAAUlL,QAAV,EAAjC,EAAuD,KAAKo+J,OAA5D,CAAlB;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAbutD,aAAa,GAAG;IAChB,OAAO,KAAKvtD,OAAL,GAAe,KAAKA,OAAL,CAAautD,aAA5B,GAA4C,IAAnD;EACH;EACD;;;EACAmM,gBAAgB,GAAG,CAAG;;AApCgC;;AAsC1DD,0BAA0B,CAAC5zM,IAA3B;EAAA;EAAA;IAAA,8FAjnH2G0gD,mEAinH3G,CAAuHkzJ,0BAAvH,SAAuHA,0BAAvH;EAAA;AAAA;;AACAA,0BAA0B,CAACxyL,IAA3B,kBAlnH2Gs/B,+DAknH3G;EAAA,MAA2GkzJ,0BAA3G;EAAA,WAlnH2GlzJ,wEAknH3G;AAAA;;AACA;EAAA,mDAnnH2GA,+DAmnH3G,CAA2FkzJ,0BAA3F,EAAmI,CAAC;IACxHx/M,IAAI,EAAEmqB,oDAASA;EADyG,CAAD,CAAnI;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu1L,oBAAT,GAAgC;EAC5B,OAAO,IAAInzJ,2DAAJ,CAAkB;EAAK;EAAvB,EAAsE;AACjF;AACA;AACA;AACA,MAAMgoJ,sBAAuB;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAMI,2BAA4B,EAVvB,CAAP;AAWH;;AACD,SAASgL,sBAAT,GAAkC;EAC9B,OAAO,IAAIpzJ,2DAAJ,CAAkB;EAAK;EAAvB,EAA2E;AACtF;AACA;AACA;AACA;AACA,MAAMioJ,oBAAqB;AAC3B;AACA;AACA;AACA,MAAME,mBAAoB,EATf,CAAP;AAUH;;AACD,SAASkL,oBAAT,GAAgC;EAC5B,OAAO,IAAIrzJ,2DAAJ,CAAkB;EAAK;EAAvB,EAAqE;AAChF;AACA;AACA;AACA,4FAJW,CAAP;AAKH;;AACD,SAASszJ,yBAAT,GAAqC;EACjC,OAAO,IAAItzJ,2DAAJ,CAAkB;EAAK;EAAvB,EAA2E;AACtF;AACA;AACA;AACA;AACA,MAAMioJ,oBAAqB;AAC3B;AACA;AACA;AACA,MAAME,mBAAoB,EATf,CAAP;AAUH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMoL,kBAAkB,GAAG;EACvBzvL,OAAO,EAAEgjL,gBADc;EAEvBt7F,WAAW,EAAEc,yDAAU,CAAC,MAAMknG,YAAP;AAFA,CAA3B;AAIA;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,MAAMA,YAAN,SAA2BP,0BAA3B,CAAsD;EAClD56N,WAAW,CAACgrB,MAAD,EAAS6gM,UAAT,EAAqBwF,eAArB,EAAsC;IAC7C;IACA,KAAKlwD,OAAL,GAAen2I,MAAf;;IACA,KAAKgjM,cAAL,CAAoBnC,UAApB;;IACA,KAAKqC,mBAAL,CAAyBmD,eAAzB;EACH;EACD;;;EACAwJ,gBAAgB,GAAG;IACf,IAAI,EAAE,KAAK15D,OAAL,YAAwBg6D,YAA1B,KAA2C,EAAE,KAAKh6D,OAAL,YAAwBi4D,MAA1B,CAA3C,KACC,OAAO5xM,SAAP,KAAqB,WAArB,IAAoCA,SADrC,CAAJ,EACqD;MACjD,MAAMyzM,yBAAyB,EAA/B;IACH;EACJ;;AAbiD;;AAetDE,YAAY,CAACn0M,IAAb;EAAA,iBAAyGm0M,YAAzG,EA/tH2GzzJ,+DA+tH3G,CAAuI+mJ,gBAAvI,MA/tH2G/mJ,+DA+tH3G,CAAgMkjJ,aAAhM,OA/tH2GljJ,+DA+tH3G,CAAsPmjJ,mBAAtP;AAAA;;AACAsQ,YAAY,CAAC/yL,IAAb,kBAhuH2Gs/B,+DAguH3G;EAAA,MAA6FyzJ,YAA7F;EAAA;EAAA;IAAA;EAAA;EAAA;EAAA,WAhuH2GzzJ,gEAguH3G,CAA8L,CAACwzJ,kBAAD,CAA9L,GAhuH2GxzJ,wEAguH3G;AAAA;;AACA;EAAA,mDAjuH2GA,+DAiuH3G,CAA2FyzJ,YAA3F,EAAqH,CAAC;IAC1G//M,IAAI,EAAEmqB,oDADoG;IAE1GrwB,IAAI,EAAE,CAAC;MAAEmvB,QAAQ,EAAE,gBAAZ;MAA8BK,SAAS,EAAE,CAACw2L,kBAAD,CAAzC;MAA+DvyL,QAAQ,EAAE;IAAzE,CAAD;EAFoG,CAAD,CAArH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEvtB,IAAI,EAAEqzM,gBAAR;MAA0B5oM,UAAU,EAAE,CAAC;QACrEzK,IAAI,EAAEu7E,+CAAIA;MAD2D,CAAD,EAErE;QACCv7E,IAAI,EAAE6sH,mDAAQA;MADf,CAFqE;IAAtC,CAAD,EAI3B;MAAE7sH,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAClCzK,IAAI,EAAE46E,mDAAQA;MADoB,CAAD,EAElC;QACC56E,IAAI,EAAE20H,+CAAIA;MADX,CAFkC,EAIlC;QACC30H,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC01M,aAAD;MAFP,CAJkC;IAA/B,CAJ2B,EAW3B;MAAExvM,IAAI,EAAE9X,SAAR;MAAmBuiB,UAAU,EAAE,CAAC;QAClCzK,IAAI,EAAE46E,mDAAQA;MADoB,CAAD,EAElC;QACC56E,IAAI,EAAE20H,+CAAIA;MADX,CAFkC,EAIlC;QACC30H,IAAI,EAAEmzB,iDADP;QAECr5B,IAAI,EAAE,CAAC21M,mBAAD;MAFP,CAJkC;IAA/B,CAX2B,CAAP;EAkBlB,CArBxB,EAqB0C;IAAE58M,IAAI,EAAE,CAAC;MACnCmN,IAAI,EAAEqlB,gDAD6B;MAEnCvrB,IAAI,EAAE,CAAC,cAAD;IAF6B,CAAD;EAAR,CArB1C;AAAA;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkmN,oBAAoB,GAAG;EACzB3vL,OAAO,EAAE2Q,SADgB;EAEzB+2E,WAAW,EAAEc,yDAAU,CAAC,MAAMonG,OAAP;AAFE,CAA7B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMpsG,eAAe,GAAG,CAAC,MAAM1hH,OAAO,CAAClC,OAAR,EAAP,GAAxB;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,MAAMgwN,OAAN,SAAsBj/K,SAAtB,CAAgC;EAC5Bp8C,WAAW,CAACgrB,MAAD,EAAS6gM,UAAT,EAAqBwF,eAArB,EAAsCqH,cAAtC,EAAsD4C,kBAAtD,EAA0E;IACjF;IACA,KAAKA,kBAAL,GAA0BA,kBAA1B;IACA,KAAK1xK,OAAL,GAAe,IAAIwwK,WAAJ,EAAf;IACA;;IACA,KAAKmB,WAAL,GAAmB,KAAnB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAK3xG,MAAL,GAAc,IAAIvpF,uDAAJ,EAAd;IACA,KAAK8gI,OAAL,GAAen2I,MAAf;;IACA,KAAKgjM,cAAL,CAAoBnC,UAApB;;IACA,KAAKqC,mBAAL,CAAyBmD,eAAzB;;IACA,KAAK1C,aAAL,GAAqB8J,mBAAmB,CAAC,IAAD,EAAOC,cAAP,CAAxC;EACH;EACD;;;EACA9oH,WAAW,CAACb,OAAD,EAAU;IACjB,KAAKysH,eAAL;;IACA,IAAI,CAAC,KAAKD,WAAN,IAAqB,UAAUxsH,OAAnC,EAA4C;MACxC,IAAI,KAAKwsH,WAAT,EAAs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CH9G,QAAQ,EAAEk+L,mBADP;MAEHj+L,SAAS,EAAE,CACP;QAAE+G,OAAO,EAAE4xL,kCAAX;QAA+C30K,QAAQ,EAAEnd,IAAI,CAACs3L;MAA9D,CADO;IAFR,CAAP;EAMH;;AAhBqB;;AAkB1BF,mBAAmB,CAAC37M,IAApB;EAAA,iBAAgH27M,mBAAhH;AAAA;;AACAA,mBAAmB,CAAC/9L,IAApB,kBA33M2G8iC,8DA23M3G;EAAA,MAAiHi7J;AAAjH;AACAA,mBAAmB,CAAC79L,IAApB,kBA53M2G4iC,8DA43M3G;EAAA,UAAgJ+6J,0BAAhJ;AAAA;;AACA;EAAA,mDA73M2G/6J,+DA63M3G,CAA2Fi7J,mBAA3F,EAA4H,CAAC;IACjHvnN,IAAI,EAAEulB,mDAD2G;IAEjHzrB,IAAI,EAAE,CAAC;MACC+vB,YAAY,EAAE,CAACu9L,0BAAD,CADf;MAECjlM,OAAO,EAAE,CAACklM,0BAAD,EAA6BD,0BAA7B;IAFV,CAAD;EAF2G,CAAD,CAA5H;AAAA;AAQA;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,MAAMM,SAAN,SAAwBlR,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI5xN,WAAW,CAACyxN,QAAD,EAAWR,eAAX,EAA4B7C,cAA5B,EAA4C;IACnD,MAAM4C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAAChD,cAAD,EAAiB6C,eAAjB,CAA1D;IACA,KAAKQ,QAAL,GAA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ACA;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,MAAMu7P,UAAN,CAAiB;EACbh9P,WAAW,CAACq1P,MAAD,EAAS3uO,KAAT,EAAgBu2O,iBAAhB,EAAmChmN,QAAnC,EAA6C9C,EAA7C,EAAiD;IACxD,KAAKkhN,MAAL,GAAcA,MAAd;IACA,KAAK3uO,KAAL,GAAaA,KAAb;IACA,KAAKu2O,iBAAL,GAAyBA,iBAAzB;IACA,KAAKhmN,QAAL,GAAgBA,QAAhB;IACA,KAAK9C,EAAL,GAAUA,EAAV;IACA,KAAK+oN,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKniB,QAAL,GAAgB,IAAhB;IACA;;IACA,KAAKoiB,SAAL,GAAiB,IAAI3uN,0CAAJ,EAAjB;IACA,KAAK4uN,0BAAL,CAAgC,GAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBrB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKiB,iBAAL,GAAyB32C,kEAAgB,CAAC01C,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKiB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlBlD,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KA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","sources":["./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","./node_modules/adal-angular4/__ivy_ngcc__/adal.guard.js","./node_modules/adal-angular4/__ivy_ngcc__/adal.interceptor.js","./node_modules/adal-angular4/__ivy_ngcc__/adal.service.js","./node_modules/adal-angular4/__ivy_ngcc__/index.js","./node_modules/adal-angular/lib/adal.js","./node_modules/applicationinsights-js/bundle/ai.module.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/alert/fesm2015/ngx-bootstrap-alert.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/collapse/fesm2015/ngx-bootstrap-collapse.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/component-loader/fesm2015/ngx-bootstrap-component-loader.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/positioning/fesm2015/ngx-bootstrap-positioning.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/typeahead/fesm2015/ngx-bootstrap-typeahead.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/utils/fesm2015/ngx-bootstrap-utils.js","./node_modules/rxjs/_esm2015/internal/AsyncSubject.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/bindCallback.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/reduce.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/toArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isObservable.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/forms/fesm2020/forms.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/@fortawesome/angular-fontawesome/fesm2020/angular-fontawesome.mjs"],"sourcesContent":["/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.4\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './adal.service';\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { Injectable } from '@angular/core';\r\nimport { AdalService } from './adal.service';\r\nvar AdalGuard = /** @class */ (function () {\r\n function AdalGuard(adalService) {\r\n this.adalService = adalService;\r\n }\r\n AdalGuard.prototype.canActivate = function (route, state) {\r\n return this.adalService.userInfo.authenticated;\r\n };\r\n AdalGuard.prototype.canActivateChild = function (childRoute, state) {\r\n return this.canActivate(childRoute, state);\r\n };\r\n AdalGuard = __decorate([ __metadata(\"design:paramtypes\", [AdalService])\r\n ], AdalGuard);\nAdalGuard.ɵfac = function AdalGuard_Factory(t) { return new (t || AdalGuard)(ɵngcc0.ɵɵinject(ɵngcc1.AdalService)); };\nAdalGuard.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AdalGuard, factory: function (t) { return AdalGuard.ɵfac(t); } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AdalGuard, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.AdalService }]; }, null); })();\r\n return AdalGuard;\r\n}());\r\nexport { AdalGuard };\r\n\n","import * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from './adal.service';\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { Injectable } from '@angular/core';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { AdalService } from './adal.service';\r\nvar AdalInterceptor = /** @class */ (function () {\r\n function AdalInterceptor(adal) {\r\n this.adal = adal;\r\n }\r\n AdalInterceptor.prototype.intercept = function (request, next) {\r\n // if the endpoint is not registered \r\n // or if the header 'skip-adal' is set\r\n // then pass the request as it is to the next handler\r\n var resource = this.adal.getResourceForEndpoint(request.url);\r\n var skipAdal = request.headers.get('skip-adal');\r\n if (!resource || skipAdal) {\r\n return next.handle(request);\r\n }\r\n // if the user is not authenticated then drop the request\r\n if (!this.adal.userInfo.authenticated) {\r\n throw new Error('Cannot send request to registered endpoint if the user is not authenticated.');\r\n }\r\n // if the endpoint is registered then acquire and inject token\r\n return this.adal.acquireToken(resource)\r\n .pipe(mergeMap(function (token) {\r\n // clone the request and replace the original headers with\r\n // cloned headers, updated with the authorization\r\n var authorizedRequest = request.clone({\r\n headers: request.headers.set('Authorization', 'Bearer ' + token),\r\n });\r\n return next.handle(authorizedRequest);\r\n }));\r\n };\r\n AdalInterceptor = __decorate([ __metadata(\"design:paramtypes\", [AdalService])\r\n ], AdalInterceptor);\nAdalInterceptor.ɵfac = function AdalInterceptor_Factory(t) { return new (t || AdalInterceptor)(ɵngcc0.ɵɵinject(ɵngcc1.AdalService)); };\nAdalInterceptor.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AdalInterceptor, factory: function (t) { return AdalInterceptor.ɵfac(t); } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AdalInterceptor, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.AdalService }]; }, null); })();\r\n return AdalInterceptor;\r\n}());\r\nexport { AdalInterceptor };\r\n\n","/// \r\nimport * as ɵngcc0 from '@angular/core';\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __metadata = (this && this.__metadata) || function (k, v) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\r\n};\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { bindCallback, timer } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport * as lib from 'adal-angular';\r\nvar AdalService = /** @class */ (function () {\r\n function AdalService(ngZone) {\r\n this.ngZone = ngZone;\r\n this.context = null;\r\n this.loginRefreshTimer = null;\r\n this.user = {\r\n authenticated: false,\r\n userName: '',\r\n error: '',\r\n token: '',\r\n profile: {},\r\n loginCached: false\r\n };\r\n }\r\n AdalService.prototype.init = function (configOptions) {\r\n if (!configOptions) {\r\n throw new Error('You must set config, when calling init.');\r\n }\r\n // redirect and logout_redirect are set to current location by default\r\n var existingHash = window.location.hash;\r\n var pathDefault = window.location.href;\r\n if (existingHash) {\r\n pathDefault = pathDefault.replace(existingHash, '');\r\n }\r\n configOptions.redirectUri = configOptions.redirectUri || pathDefault;\r\n configOptions.postLogoutRedirectUri = configOptions.postLogoutRedirectUri || pathDefault;\r\n // create instance with given config\r\n this.context = lib.inject(configOptions);\r\n this.updateDataFromCache();\r\n if (this.user.loginCached && !this.user.authenticated && window.self == window.top && !this.isInCallbackRedirectMode) {\r\n this.refreshLoginToken();\r\n }\r\n else if (this.user.loginCached && this.user.authenticated && !this.loginRefreshTimer && window.self == window.top) {\r\n this.setupLoginTokenRefreshTimer();\r\n }\r\n };\r\n Object.defineProperty(AdalService.prototype, \"config\", {\r\n get: function () {\r\n return this.context.config;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AdalService.prototype, \"userInfo\", {\r\n get: function () {\r\n return this.user;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AdalService.prototype.login = function () {\r\n this.context.login();\r\n };\r\n AdalService.prototype.loginInProgress = function () {\r\n return this.context.loginInProgress();\r\n };\r\n AdalService.prototype.logOut = function () {\r\n this.context.logOut();\r\n };\r\n AdalService.prototype.handleWindowCallback = function (removeHash) {\r\n if (removeHash === void 0) { removeHash = true; }\r\n var hash = window.location.hash;\r\n if (this.context.isCallback(hash)) {\r\n var isPopup = false;\r\n if (this.context._openedWindows.length > 0 && this.context._openedWindows[this.context._openedWindows.length - 1].opener && this.context._openedWindows[this.context._openedWindows.length - 1].opener._adalInstance) {\r\n this.context = this.context._openedWindows[this.context._openedWindows.length - 1].opener._adalInstance;\r\n isPopup = true;\r\n }\r\n else if (window.parent && window.parent._adalInstance) {\r\n this.context = window.parent._adalInstance;\r\n }\r\n var requestInfo = this.context.getRequestInfo(hash);\r\n this.context.saveTokenFromHash(requestInfo);\r\n var callback = this.context._callBackMappedToRenewStates[requestInfo.stateResponse] || this.context.callback;\r\n if (requestInfo.requestType === this.context.REQUEST_TYPE.LOGIN) {\r\n this.updateDataFromCache();\r\n this.setupLoginTokenRefreshTimer();\r\n }\r\n if (requestInfo.stateMatch) {\r\n if (typeof callback === 'function') {\r\n if (requestInfo.requestType === this.context.REQUEST_TYPE.RENEW_TOKEN) {\r\n // Idtoken or Accestoken can be renewed\r\n if (requestInfo.parameters['access_token']) {\r\n callback(this.context._getItem(this.context.CONSTANTS.STORAGE.ERROR_DESCRIPTION), requestInfo.parameters['access_token']);\r\n }\r\n else if (requestInfo.parameters['id_token']) {\r\n callback(this.context._getItem(this.context.CONSTANTS.STORAGE.ERROR_DESCRIPTION), requestInfo.parameters['id_token']);\r\n }\r\n else if (requestInfo.parameters['error']) {\r\n callback(this.context._getItem(this.context.CONSTANTS.STORAGE.ERROR_DESCRIPTION), null);\r\n this.context._renewFailed = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Remove hash from url\r\n if (removeHash) {\r\n if (window.location.hash) {\r\n if (window.history.replaceState) {\r\n window.history.replaceState('', '/', window.location.pathname);\r\n }\r\n else {\r\n window.location.hash = '';\r\n }\r\n }\r\n }\r\n };\r\n AdalService.prototype.getCachedToken = function (resource) {\r\n return this.context.getCachedToken(resource);\r\n };\r\n AdalService.prototype.acquireToken = function (resource) {\r\n var _this = this;\r\n return bindCallback(function (callback) {\r\n _this.context.acquireToken(resource, function (error, tokenOut) {\r\n if (error) {\r\n _this.context.error('Error when acquiring token for resource: ' + resource, error);\r\n callback(null, error);\r\n }\r\n else {\r\n callback(tokenOut, null);\r\n }\r\n });\r\n })()\r\n .pipe(map(function (result) {\r\n if (!result[0] && result[1]) {\r\n throw (result[1]);\r\n }\r\n return result[0];\r\n }));\r\n };\r\n AdalService.prototype.getUser = function () {\r\n var _this = this;\r\n return bindCallback(function (callback) {\r\n _this.context.getUser(function (error, user) {\r\n if (error) {\r\n _this.context.error('Error when getting user', error);\r\n callback(null);\r\n }\r\n else {\r\n callback(user || null);\r\n }\r\n });\r\n })();\r\n };\r\n AdalService.prototype.clearCache = function () {\r\n this.context.clearCache();\r\n };\r\n AdalService.prototype.clearCacheForResource = function (resource) {\r\n this.context.clearCacheForResource(resource);\r\n };\r\n AdalService.prototype.info = function (message) {\r\n this.context.info(message);\r\n };\r\n AdalService.prototype.verbose = function (message) {\r\n this.context.verbose(message);\r\n };\r\n AdalService.prototype.getResourceForEndpoint = function (url) {\r\n return this.context.getResourceForEndpoint(url);\r\n };\r\n AdalService.prototype.refreshDataFromCache = function () {\r\n this.updateDataFromCache();\r\n };\r\n AdalService.prototype.updateDataFromCache = function () {\r\n var token = this.context.getCachedToken(this.context.config.loginResource);\r\n this.user.authenticated = token !== null && token.length > 0;\r\n var user = this.context.getCachedUser();\r\n if (user) {\r\n this.user.userName = user.userName;\r\n this.user.profile = user.profile;\r\n this.user.token = token;\r\n this.user.error = this.context.getLoginError();\r\n this.user.loginCached = true;\r\n }\r\n else {\r\n this.user.userName = '';\r\n this.user.profile = {};\r\n this.user.token = '';\r\n this.user.error = this.context.getLoginError();\r\n this.user.loginCached = false;\r\n }\r\n };\r\n AdalService.prototype.refreshLoginToken = function () {\r\n var _this = this;\r\n if (!this.user.loginCached)\r\n throw (\"User not logged in\");\r\n this.acquireToken(this.context.config.loginResource).subscribe(function (token) {\r\n _this.user.token = token;\r\n if (_this.user.authenticated == false) {\r\n _this.user.authenticated = true;\r\n _this.user.error = '';\r\n window.location.reload();\r\n }\r\n else {\r\n _this.setupLoginTokenRefreshTimer();\r\n }\r\n }, function (error) {\r\n _this.user.authenticated = false;\r\n _this.user.error = _this.context.getLoginError();\r\n });\r\n };\r\n AdalService.prototype.now = function () {\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n Object.defineProperty(AdalService.prototype, \"isInCallbackRedirectMode\", {\r\n get: function () {\r\n return window.location.href.indexOf(\"#access_token\") !== -1 || window.location.href.indexOf(\"#id_token\") !== -1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n AdalService.prototype.setupLoginTokenRefreshTimer = function () {\r\n var _this = this;\r\n // Get expiration of login token\r\n var exp = this.context._getItem(this.context.CONSTANTS.STORAGE.EXPIRATION_KEY + this.context.config.loginResource);\r\n // Either wait until the refresh window is valid or refresh in 1 second (measured in seconds)\r\n var timerDelay = exp - this.now() - (this.context.config.expireOffsetSeconds || 300) > 0 ? exp - this.now() - (this.context.config.expireOffsetSeconds || 300) : 1;\r\n if (this.loginRefreshTimer)\r\n this.loginRefreshTimer.unsubscribe();\r\n this.ngZone.runOutsideAngular(function () {\r\n _this.loginRefreshTimer = timer(timerDelay * 1000).subscribe(function (x) {\r\n _this.refreshLoginToken();\r\n });\r\n });\r\n };\r\n AdalService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\r\n ], AdalService);\nAdalService.ɵfac = function AdalService_Factory(t) { return new (t || AdalService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nAdalService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AdalService, factory: function (t) { return AdalService.ɵfac(t); } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AdalService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\r\n return AdalService;\r\n}());\r\nexport { AdalService };\r\n\n","export { AdalService } from './adal.service';\r\nexport { AdalGuard } from './adal.guard';\r\nexport { AdalInterceptor } from './adal.interceptor';\r\n\n","//----------------------------------------------------------------------\r\n// AdalJS v1.0.18\r\n// @preserve Copyright (c) Microsoft Open Technologies, Inc.\r\n// All Rights Reserved\r\n// Apache License 2.0\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//id\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n//----------------------------------------------------------------------\r\n\r\nvar AuthenticationContext = (function () {\r\n\r\n 'use strict';\r\n\r\n /**\r\n * Configuration options for Authentication Context.\r\n * @class config\r\n * @property {string} tenant - Your target tenant.\r\n * @property {string} clientId - Client ID assigned to your app by Azure Active Directory.\r\n * @property {string} redirectUri - Endpoint at which you expect to receive tokens.Defaults to `window.location.href`.\r\n * @property {string} instance - Azure Active Directory Instance.Defaults to `https://login.microsoftonline.com/`.\r\n * @property {Array} endpoints - Collection of {Endpoint-ResourceId} used for automatically attaching tokens in webApi calls.\r\n * @property {Boolean} popUp - Set this to true to enable login in a popup winodow instead of a full redirect.Defaults to `false`.\r\n * @property {string} localLoginUrl - Set this to redirect the user to a custom login page.\r\n * @property {function} displayCall - User defined function of handling the navigation to Azure AD authorization endpoint in case of login. Defaults to 'null'.\r\n * @property {string} postLogoutRedirectUri - Redirects the user to postLogoutRedirectUri after logout. Defaults is 'redirectUri'.\r\n * @property {string} cacheLocation - Sets browser storage to either 'localStorage' or sessionStorage'. Defaults to 'sessionStorage'.\r\n * @property {Array.} anonymousEndpoints Array of keywords or URI's. Adal will not attach a token to outgoing requests that have these keywords or uri. Defaults to 'null'.\r\n * @property {number} expireOffsetSeconds If the cached token is about to be expired in the expireOffsetSeconds (in seconds), Adal will renew the token instead of using the cached token. Defaults to 300 seconds.\r\n * @property {string} correlationId Unique identifier used to map the request with the response. Defaults to RFC4122 version 4 guid (128 bits).\r\n * @property {number} loadFrameTimeout The number of milliseconds of inactivity before a token renewal response from AAD should be considered timed out.\r\n */\r\n\r\n /**\r\n * Creates a new AuthenticationContext object.\r\n * @constructor\r\n * @param {config} config Configuration options for AuthenticationContext\r\n */\r\n\r\n AuthenticationContext = function (config) {\r\n /**\r\n * Enum for request type\r\n * @enum {string}\r\n */\r\n this.REQUEST_TYPE = {\r\n LOGIN: 'LOGIN',\r\n RENEW_TOKEN: 'RENEW_TOKEN',\r\n UNKNOWN: 'UNKNOWN'\r\n };\r\n\r\n this.RESPONSE_TYPE = {\r\n ID_TOKEN_TOKEN: 'id_token token',\r\n TOKEN: 'token'\r\n };\r\n\r\n /**\r\n * Enum for storage constants\r\n * @enum {string}\r\n */\r\n this.CONSTANTS = {\r\n ACCESS_TOKEN: 'access_token',\r\n EXPIRES_IN: 'expires_in',\r\n ID_TOKEN: 'id_token',\r\n ERROR_DESCRIPTION: 'error_description',\r\n SESSION_STATE: 'session_state',\r\n ERROR: 'error',\r\n STORAGE: {\r\n TOKEN_KEYS: 'adal.token.keys',\r\n ACCESS_TOKEN_KEY: 'adal.access.token.key',\r\n EXPIRATION_KEY: 'adal.expiration.key',\r\n STATE_LOGIN: 'adal.state.login',\r\n STATE_RENEW: 'adal.state.renew',\r\n NONCE_IDTOKEN: 'adal.nonce.idtoken',\r\n SESSION_STATE: 'adal.session.state',\r\n USERNAME: 'adal.username',\r\n IDTOKEN: 'adal.idtoken',\r\n ERROR: 'adal.error',\r\n ERROR_DESCRIPTION: 'adal.error.description',\r\n LOGIN_REQUEST: 'adal.login.request',\r\n LOGIN_ERROR: 'adal.login.error',\r\n RENEW_STATUS: 'adal.token.renew.status',\r\n ANGULAR_LOGIN_REQUEST: 'adal.angular.login.request'\r\n },\r\n RESOURCE_DELIMETER: '|',\r\n CACHE_DELIMETER: '||',\r\n LOADFRAME_TIMEOUT: 6000,\r\n TOKEN_RENEW_STATUS_CANCELED: 'Canceled',\r\n TOKEN_RENEW_STATUS_COMPLETED: 'Completed',\r\n TOKEN_RENEW_STATUS_IN_PROGRESS: 'In Progress',\r\n LOGGING_LEVEL: {\r\n ERROR: 0,\r\n WARN: 1,\r\n INFO: 2,\r\n VERBOSE: 3\r\n },\r\n LEVEL_STRING_MAP: {\r\n 0: 'ERROR:',\r\n 1: 'WARNING:',\r\n 2: 'INFO:',\r\n 3: 'VERBOSE:'\r\n },\r\n POPUP_WIDTH: 483,\r\n POPUP_HEIGHT: 600\r\n };\r\n\r\n if (AuthenticationContext.prototype._singletonInstance) {\r\n return AuthenticationContext.prototype._singletonInstance;\r\n }\r\n AuthenticationContext.prototype._singletonInstance = this;\r\n\r\n // public\r\n this.instance = 'https://login.microsoftonline.com/';\r\n this.config = {};\r\n this.callback = null;\r\n this.popUp = false;\r\n this.isAngular = false;\r\n\r\n // private\r\n this._user = null;\r\n this._activeRenewals = {};\r\n this._loginInProgress = false;\r\n this._acquireTokenInProgress = false;\r\n this._renewStates = [];\r\n this._callBackMappedToRenewStates = {};\r\n this._callBacksMappedToRenewStates = {};\r\n this._openedWindows = [];\r\n this._requestType = this.REQUEST_TYPE.LOGIN;\r\n window._adalInstance = this;\r\n\r\n // validate before constructor assignments\r\n if (config.displayCall && typeof config.displayCall !== 'function') {\r\n throw new Error('displayCall is not a function');\r\n }\r\n\r\n if (!config.clientId) {\r\n throw new Error('clientId is required');\r\n }\r\n\r\n this.config = this._cloneConfig(config);\r\n\r\n if (this.config.navigateToLoginRequestUrl === undefined)\r\n this.config.navigateToLoginRequestUrl = true;\r\n\r\n if (this.config.popUp)\r\n this.popUp = true;\r\n\r\n if (this.config.callback && typeof this.config.callback === 'function')\r\n this.callback = this.config.callback;\r\n\r\n if (this.config.instance) {\r\n this.instance = this.config.instance;\r\n }\r\n\r\n // App can request idtoken for itself using clientid as resource\r\n if (!this.config.loginResource) {\r\n this.config.loginResource = this.config.clientId;\r\n }\r\n\r\n // redirect and logout_redirect are set to current location by default\r\n if (!this.config.redirectUri) {\r\n // strip off query parameters or hashes from the redirect uri as AAD does not allow those.\r\n this.config.redirectUri = window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n }\r\n\r\n if (!this.config.postLogoutRedirectUri) {\r\n // strip off query parameters or hashes from the post logout redirect uri as AAD does not allow those.\r\n this.config.postLogoutRedirectUri = window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n }\r\n\r\n if (!this.config.anonymousEndpoints) {\r\n this.config.anonymousEndpoints = [];\r\n }\r\n\r\n if (this.config.isAngular) {\r\n this.isAngular = this.config.isAngular;\r\n }\r\n\r\n if (this.config.loadFrameTimeout) {\r\n this.CONSTANTS.LOADFRAME_TIMEOUT = this.config.loadFrameTimeout;\r\n }\r\n };\r\n\r\n if (typeof window !== 'undefined') {\r\n window.Logging = {\r\n piiLoggingEnabled: false,\r\n level: 0,\r\n log: function (message) { }\r\n };\r\n }\r\n\r\n /**\r\n * Initiates the login process by redirecting the user to Azure AD authorization endpoint.\r\n */\r\n AuthenticationContext.prototype.login = function () {\r\n if (this._loginInProgress) {\r\n this.info(\"Login in progress\");\r\n return;\r\n }\r\n\r\n this._loginInProgress = true;\r\n\r\n // Token is not present and user needs to login\r\n var expectedState = this._guid();\r\n this.config.state = expectedState;\r\n this._idTokenNonce = this._guid();\r\n var loginStartPage = this._getItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST);\r\n\r\n if (!loginStartPage || loginStartPage === \"\") {\r\n loginStartPage = window.location.href;\r\n }\r\n else {\r\n this._saveItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST, \"\")\r\n }\r\n\r\n this.verbose('Expected state: ' + expectedState + ' startPage:' + loginStartPage);\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST, loginStartPage);\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN, expectedState, true);\r\n this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN, this._idTokenNonce, true);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, '');\r\n var urlNavigate = this._getNavigateUrl('id_token', null) + '&nonce=' + encodeURIComponent(this._idTokenNonce);\r\n\r\n if (this.config.displayCall) {\r\n // User defined way of handling the navigation\r\n this.config.displayCall(urlNavigate);\r\n }\r\n else if (this.popUp) {\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN, '');// so requestInfo does not match redirect case\r\n this._renewStates.push(expectedState);\r\n this.registerCallback(expectedState, this.config.clientId, this.callback);\r\n this._loginPopup(urlNavigate);\r\n }\r\n else {\r\n this.promptUser(urlNavigate);\r\n }\r\n };\r\n\r\n /**\r\n * Configures popup window for login.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._openPopup = function (urlNavigate, title, popUpWidth, popUpHeight) {\r\n try {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window's height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var left = ((width / 2) - (popUpWidth / 2)) + winLeft;\r\n var top = ((height / 2) - (popUpHeight / 2)) + winTop;\r\n\r\n var popupWindow = window.open(urlNavigate, title, 'width=' + popUpWidth + ', height=' + popUpHeight + ', top=' + top + ', left=' + left);\r\n\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n\r\n return popupWindow;\r\n } catch (e) {\r\n this.warn('Error opening popup, ' + e.message);\r\n this._loginInProgress = false;\r\n this._acquireTokenInProgress = false;\r\n return null;\r\n }\r\n }\r\n\r\n AuthenticationContext.prototype._handlePopupError = function (loginCallback, resource, error, errorDesc, loginError) {\r\n this.warn(errorDesc);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, error);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, errorDesc);\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, loginError);\r\n\r\n if (resource && this._activeRenewals[resource]) {\r\n this._activeRenewals[resource] = null;\r\n }\r\n\r\n this._loginInProgress = false;\r\n this._acquireTokenInProgress = false;\r\n\r\n if (loginCallback) {\r\n loginCallback(errorDesc, null, error);\r\n }\r\n }\r\n\r\n /**\r\n * After authorization, the user will be sent to your specified redirect_uri with the user's bearer token\r\n * attached to the URI fragment as an id_token field. It closes popup window after redirection.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._loginPopup = function (urlNavigate, resource, callback) {\r\n var popupWindow = this._openPopup(urlNavigate, \"login\", this.CONSTANTS.POPUP_WIDTH, this.CONSTANTS.POPUP_HEIGHT);\r\n var loginCallback = callback || this.callback;\r\n\r\n if (popupWindow == null) {\r\n var error = 'Error opening popup';\r\n var errorDesc = 'Popup Window is null. This can happen if you are using IE';\r\n this._handlePopupError(loginCallback, resource, error, errorDesc, errorDesc);\r\n return;\r\n }\r\n\r\n this._openedWindows.push(popupWindow);\r\n\r\n if (this.config.redirectUri.indexOf('#') != -1) {\r\n var registeredRedirectUri = this.config.redirectUri.split(\"#\")[0];\r\n }\r\n\r\n else {\r\n var registeredRedirectUri = this.config.redirectUri;\r\n }\r\n\r\n var that = this;\r\n\r\n var pollTimer = window.setInterval(function () {\r\n if (!popupWindow || popupWindow.closed || popupWindow.closed === undefined) {\r\n var error = 'Popup Window closed';\r\n var errorDesc = 'Popup Window closed by UI action/ Popup Window handle destroyed due to cross zone navigation in IE/Edge'\r\n\r\n if (that.isAngular) {\r\n that._broadcast('adal:popUpClosed', errorDesc + that.CONSTANTS.RESOURCE_DELIMETER + error);\r\n }\r\n\r\n that._handlePopupError(loginCallback, resource, error, errorDesc, errorDesc);\r\n window.clearInterval(pollTimer);\r\n return;\r\n }\r\n try {\r\n var popUpWindowLocation = popupWindow.location;\r\n if (encodeURI(popUpWindowLocation.href).indexOf(encodeURI(registeredRedirectUri)) != -1) {\r\n if (that.isAngular) {\r\n that._broadcast('adal:popUpHashChanged', popUpWindowLocation.hash);\r\n }\r\n else {\r\n that.handleWindowCallback(popUpWindowLocation.hash);\r\n }\r\n\r\n window.clearInterval(pollTimer);\r\n that._loginInProgress = false;\r\n that._acquireTokenInProgress = false;\r\n that.info(\"Closing popup window\");\r\n that._openedWindows = [];\r\n popupWindow.close();\r\n return;\r\n }\r\n } catch (e) {\r\n }\r\n }, 1);\r\n };\r\n\r\n AuthenticationContext.prototype._broadcast = function (eventName, data) {\r\n // Custom Event is not supported in IE, below IIFE will polyfill the CustomEvent() constructor functionality in Internet Explorer 9 and higher\r\n (function () {\r\n\r\n if (typeof window.CustomEvent === \"function\") {\r\n return false;\r\n }\r\n\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype;\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n\r\n var evt = new CustomEvent(eventName, { detail: data });\r\n window.dispatchEvent(evt);\r\n };\r\n\r\n AuthenticationContext.prototype.loginInProgress = function () {\r\n return this._loginInProgress;\r\n };\r\n\r\n /**\r\n * Checks for the resource in the cache. By default, cache location is Session Storage\r\n * @ignore\r\n * @returns {Boolean} 'true' if login is in progress, else returns 'false'.\r\n */\r\n AuthenticationContext.prototype._hasResource = function (key) {\r\n var keys = this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS);\r\n return keys && !this._isEmpty(keys) && (keys.indexOf(key + this.CONSTANTS.RESOURCE_DELIMETER) > -1);\r\n };\r\n\r\n /**\r\n * Gets token for the specified resource from the cache.\r\n * @param {string} resource A URI that identifies the resource for which the token is requested.\r\n * @returns {string} token if if it exists and not expired, otherwise null.\r\n */\r\n AuthenticationContext.prototype.getCachedToken = function (resource) {\r\n if (!this._hasResource(resource)) {\r\n return null;\r\n }\r\n\r\n var token = this._getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource);\r\n var expiry = this._getItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource);\r\n\r\n // If expiration is within offset, it will force renew\r\n var offset = this.config.expireOffsetSeconds || 300;\r\n\r\n if (expiry && (expiry > this._now() + offset)) {\r\n return token;\r\n } else {\r\n this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource, 0);\r\n return null;\r\n }\r\n };\r\n\r\n /**\r\n * User information from idtoken.\r\n * @class User\r\n * @property {string} userName - username assigned from upn or email.\r\n * @property {object} profile - properties parsed from idtoken.\r\n */\r\n\r\n /**\r\n * If user object exists, returns it. Else creates a new user object by decoding id_token from the cache.\r\n * @returns {User} user object\r\n */\r\n AuthenticationContext.prototype.getCachedUser = function () {\r\n if (this._user) {\r\n return this._user;\r\n }\r\n\r\n var idtoken = this._getItem(this.CONSTANTS.STORAGE.IDTOKEN);\r\n this._user = this._createUser(idtoken);\r\n return this._user;\r\n };\r\n\r\n /**\r\n * Adds the passed callback to the array of callbacks for the specified resource and puts the array on the window object. \r\n * @param {string} resource A URI that identifies the resource for which the token is requested.\r\n * @param {string} expectedState A unique identifier (guid).\r\n * @param {tokenCallback} callback - The callback provided by the caller. It will be called with token or error.\r\n */\r\n AuthenticationContext.prototype.registerCallback = function (expectedState, resource, callback) {\r\n this._activeRenewals[resource] = expectedState;\r\n\r\n if (!this._callBacksMappedToRenewStates[expectedState]) {\r\n this._callBacksMappedToRenewStates[expectedState] = [];\r\n }\r\n\r\n var self = this;\r\n this._callBacksMappedToRenewStates[expectedState].push(callback);\r\n\r\n if (!this._callBackMappedToRenewStates[expectedState]) {\r\n this._callBackMappedToRenewStates[expectedState] = function (errorDesc, token, error, tokenType) {\r\n self._activeRenewals[resource] = null;\r\n\r\n for (var i = 0; i < self._callBacksMappedToRenewStates[expectedState].length; ++i) {\r\n try {\r\n self._callBacksMappedToRenewStates[expectedState][i](errorDesc, token, error, tokenType);\r\n }\r\n catch (error) {\r\n self.warn(error);\r\n }\r\n }\r\n\r\n self._callBacksMappedToRenewStates[expectedState] = null;\r\n self._callBackMappedToRenewStates[expectedState] = null;\r\n };\r\n }\r\n };\r\n\r\n // var errorResponse = {error:'', error_description:''};\r\n // var token = 'string token';\r\n // callback(errorResponse, token)\r\n // with callback\r\n /**\r\n * Acquires access token with hidden iframe\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._renewToken = function (resource, callback, responseType) {\r\n // use iframe to try to renew token\r\n // use given resource to create new authz url\r\n this.info('renewToken is called for resource:' + resource);\r\n var frameHandle = this._addAdalFrame('adalRenewFrame' + resource);\r\n var expectedState = this._guid() + '|' + resource;\r\n this.config.state = expectedState;\r\n // renew happens in iframe, so it keeps javascript context\r\n this._renewStates.push(expectedState);\r\n this.verbose('Renew token Expected state: ' + expectedState);\r\n // remove the existing prompt=... query parameter and add prompt=none\r\n responseType = responseType || 'token';\r\n var urlNavigate = this._urlRemoveQueryStringParameter(this._getNavigateUrl(responseType, resource), 'prompt');\r\n\r\n if (responseType === this.RESPONSE_TYPE.ID_TOKEN_TOKEN) {\r\n this._idTokenNonce = this._guid();\r\n this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN, this._idTokenNonce, true);\r\n urlNavigate += '&nonce=' + encodeURIComponent(this._idTokenNonce);\r\n }\r\n\r\n urlNavigate = urlNavigate + '&prompt=none';\r\n urlNavigate = this._addHintParameters(urlNavigate);\r\n this.registerCallback(expectedState, resource, callback);\r\n this.verbosePii('Navigate to:' + urlNavigate);\r\n frameHandle.src = 'about:blank';\r\n this._loadFrameTimeout(urlNavigate, 'adalRenewFrame' + resource, resource);\r\n\r\n };\r\n\r\n /**\r\n * Renews idtoken for app's own backend when resource is clientId and calls the callback with token/error\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._renewIdToken = function (callback, responseType) {\r\n // use iframe to try to renew token\r\n this.info('renewIdToken is called');\r\n var frameHandle = this._addAdalFrame('adalIdTokenFrame');\r\n var expectedState = this._guid() + '|' + this.config.clientId;\r\n this._idTokenNonce = this._guid();\r\n this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN, this._idTokenNonce, true);\r\n this.config.state = expectedState;\r\n // renew happens in iframe, so it keeps javascript context\r\n this._renewStates.push(expectedState);\r\n this.verbose('Renew Idtoken Expected state: ' + expectedState);\r\n // remove the existing prompt=... query parameter and add prompt=none\r\n var resource = responseType === null || typeof (responseType) === \"undefined\" ? null : this.config.clientId;\r\n var responseType = responseType || 'id_token';\r\n var urlNavigate = this._urlRemoveQueryStringParameter(this._getNavigateUrl(responseType, resource), 'prompt');\r\n urlNavigate = urlNavigate + '&prompt=none';\r\n urlNavigate = this._addHintParameters(urlNavigate);\r\n urlNavigate += '&nonce=' + encodeURIComponent(this._idTokenNonce);\r\n this.registerCallback(expectedState, this.config.clientId, callback);\r\n this.verbosePii('Navigate to:' + urlNavigate);\r\n frameHandle.src = 'about:blank';\r\n this._loadFrameTimeout(urlNavigate, 'adalIdTokenFrame', this.config.clientId);\r\n };\r\n\r\n /**\r\n * Checks if the authorization endpoint URL contains query string parameters\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._urlContainsQueryStringParameter = function (name, url) {\r\n // regex to detect pattern of a ? or & followed by the name parameter and an equals character\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=\");\r\n return regex.test(url);\r\n }\r\n\r\n /**\r\n * Removes the query string parameter from the authorization endpoint URL if it exists\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._urlRemoveQueryStringParameter = function (url, name) {\r\n // we remove &name=value, name=value& and name=value\r\n // &name=value\r\n var regex = new RegExp('(\\\\&' + name + '=)[^\\&]+');\r\n url = url.replace(regex, '');\r\n // name=value&\r\n regex = new RegExp('(' + name + '=)[^\\&]+&');\r\n url = url.replace(regex, '');\r\n // name=value\r\n regex = new RegExp('(' + name + '=)[^\\&]+');\r\n url = url.replace(regex, '');\r\n return url;\r\n }\r\n\r\n // Calling _loadFrame but with a timeout to signal failure in loadframeStatus. Callbacks are left\r\n // registered when network errors occur and subsequent token requests for same resource are registered to the pending request\r\n /**\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._loadFrameTimeout = function (urlNavigation, frameName, resource) {\r\n //set iframe session to pending\r\n this.verbose('Set loading state to pending for: ' + resource);\r\n this._saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource, this.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS);\r\n this._loadFrame(urlNavigation, frameName);\r\n var self = this;\r\n\r\n setTimeout(function () {\r\n if (self._getItem(self.CONSTANTS.STORAGE.RENEW_STATUS + resource) === self.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS) {\r\n // fail the iframe session if it's in pending state\r\n self.verbose('Loading frame has timed out after: ' + (self.CONSTANTS.LOADFRAME_TIMEOUT / 1000) + ' seconds for resource ' + resource);\r\n var expectedState = self._activeRenewals[resource];\r\n\r\n if (expectedState && self._callBackMappedToRenewStates[expectedState]) {\r\n self._callBackMappedToRenewStates[expectedState]('Token renewal operation failed due to timeout', null, 'Token Renewal Failed');\r\n }\r\n\r\n self._saveItem(self.CONSTANTS.STORAGE.RENEW_STATUS + resource, self.CONSTANTS.TOKEN_RENEW_STATUS_CANCELED);\r\n }\r\n }, self.CONSTANTS.LOADFRAME_TIMEOUT);\r\n }\r\n\r\n /**\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._loadFrame = function (urlNavigate, frameName) {\r\n // This trick overcomes iframe navigation in IE\r\n // IE does not load the page consistently in iframe\r\n var self = this;\r\n self.info('LoadFrame: ' + frameName);\r\n var frameCheck = frameName;\r\n setTimeout(function () {\r\n var frameHandle = self._addAdalFrame(frameCheck);\r\n\r\n if (frameHandle.src === '' || frameHandle.src === 'about:blank') {\r\n frameHandle.src = urlNavigate;\r\n self._loadFrame(urlNavigate, frameCheck);\r\n }\r\n\r\n }, 500);\r\n };\r\n\r\n /**\r\n * @callback tokenCallback\r\n * @param {string} error_description error description returned from AAD if token request fails.\r\n * @param {string} token token returned from AAD if token request is successful.\r\n * @param {string} error error message returned from AAD if token request fails.\r\n */\r\n\r\n /**\r\n * Acquires token from the cache if it is not expired. Otherwise sends request to AAD to obtain a new token.\r\n * @param {string} resource ResourceUri identifying the target resource\r\n * @param {tokenCallback} callback - The callback provided by the caller. It will be called with token or error.\r\n */\r\n AuthenticationContext.prototype.acquireToken = function (resource, callback) {\r\n if (this._isEmpty(resource)) {\r\n this.warn('resource is required');\r\n callback('resource is required', null, 'resource is required');\r\n return;\r\n }\r\n\r\n var token = this.getCachedToken(resource);\r\n\r\n if (token) {\r\n this.info('Token is already in cache for resource:' + resource);\r\n callback(null, token, null);\r\n return;\r\n }\r\n\r\n if (!this._user && !(this.config.extraQueryParameter && this.config.extraQueryParameter.indexOf('login_hint') !== -1)) {\r\n this.warn('User login is required');\r\n callback('User login is required', null, 'login required');\r\n return;\r\n }\r\n\r\n // renew attempt with iframe\r\n // Already renewing for this resource, callback when we get the token.\r\n if (this._activeRenewals[resource]) {\r\n // Active renewals contains the state for each renewal.\r\n this.registerCallback(this._activeRenewals[resource], resource, callback);\r\n }\r\n else {\r\n this._requestType = this.REQUEST_TYPE.RENEW_TOKEN;\r\n if (resource === this.config.clientId) {\r\n // App uses idtoken to send to api endpoints\r\n // Default resource is tracked as clientid to store this token\r\n if (this._user) {\r\n this.verbose('renewing idtoken');\r\n this._renewIdToken(callback);\r\n }\r\n else {\r\n this.verbose('renewing idtoken and access_token');\r\n this._renewIdToken(callback, this.RESPONSE_TYPE.ID_TOKEN_TOKEN);\r\n }\r\n } else {\r\n if (this._user) {\r\n this.verbose('renewing access_token');\r\n this._renewToken(resource, callback);\r\n }\r\n else {\r\n this.verbose('renewing idtoken and access_token');\r\n this._renewToken(resource, callback, this.RESPONSE_TYPE.ID_TOKEN_TOKEN);\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Acquires token (interactive flow using a popUp window) by sending request to AAD to obtain a new token.\r\n * @param {string} resource ResourceUri identifying the target resource\r\n * @param {string} extraQueryParameters extraQueryParameters to add to the authentication request\r\n * @param {tokenCallback} callback - The callback provided by the caller. It will be called with token or error.\r\n */\r\n AuthenticationContext.prototype.acquireTokenPopup = function (resource, extraQueryParameters, claims, callback) {\r\n if (this._isEmpty(resource)) {\r\n this.warn('resource is required');\r\n callback('resource is required', null, 'resource is required');\r\n return;\r\n }\r\n\r\n if (!this._user) {\r\n this.warn('User login is required');\r\n callback('User login is required', null, 'login required');\r\n return;\r\n }\r\n\r\n if (this._acquireTokenInProgress) {\r\n this.warn(\"Acquire token interactive is already in progress\")\r\n callback(\"Acquire token interactive is already in progress\", null, \"Acquire token interactive is already in progress\");\r\n return;\r\n }\r\n\r\n var expectedState = this._guid() + '|' + resource;\r\n this.config.state = expectedState;\r\n this._renewStates.push(expectedState);\r\n this._requestType = this.REQUEST_TYPE.RENEW_TOKEN;\r\n this.verbose('Renew token Expected state: ' + expectedState);\r\n // remove the existing prompt=... query parameter and add prompt=select_account\r\n var urlNavigate = this._urlRemoveQueryStringParameter(this._getNavigateUrl('token', resource), 'prompt');\r\n urlNavigate = urlNavigate + '&prompt=select_account';\r\n\r\n if (extraQueryParameters) {\r\n urlNavigate += extraQueryParameters;\r\n }\r\n\r\n if (claims && (urlNavigate.indexOf(\"&claims\") === -1)) {\r\n urlNavigate += '&claims=' + encodeURIComponent(claims);\r\n }\r\n else if (claims && (urlNavigate.indexOf(\"&claims\") !== -1)) {\r\n throw new Error('Claims cannot be passed as an extraQueryParameter');\r\n }\r\n\r\n urlNavigate = this._addHintParameters(urlNavigate);\r\n this._acquireTokenInProgress = true;\r\n this.info('acquireToken interactive is called for the resource ' + resource);\r\n this.registerCallback(expectedState, resource, callback);\r\n this._loginPopup(urlNavigate, resource, callback);\r\n\r\n };\r\n\r\n /**\r\n * Acquires token (interactive flow using a redirect) by sending request to AAD to obtain a new token. In this case the callback passed in the Authentication\r\n * request constructor will be called.\r\n * @param {string} resource ResourceUri identifying the target resource\r\n * @param {string} extraQueryParameters extraQueryParameters to add to the authentication request\r\n */\r\n AuthenticationContext.prototype.acquireTokenRedirect = function (resource, extraQueryParameters, claims) {\r\n if (this._isEmpty(resource)) {\r\n this.warn('resource is required');\r\n callback('resource is required', null, 'resource is required');\r\n return;\r\n }\r\n\r\n var callback = this.callback;\r\n\r\n if (!this._user) {\r\n this.warn('User login is required');\r\n callback('User login is required', null, 'login required');\r\n return;\r\n }\r\n\r\n if (this._acquireTokenInProgress) {\r\n this.warn(\"Acquire token interactive is already in progress\")\r\n callback(\"Acquire token interactive is already in progress\", null, \"Acquire token interactive is already in progress\");\r\n return;\r\n }\r\n\r\n var expectedState = this._guid() + '|' + resource;\r\n this.config.state = expectedState;\r\n this.verbose('Renew token Expected state: ' + expectedState);\r\n\r\n // remove the existing prompt=... query parameter and add prompt=select_account\r\n var urlNavigate = this._urlRemoveQueryStringParameter(this._getNavigateUrl('token', resource), 'prompt');\r\n urlNavigate = urlNavigate + '&prompt=select_account';\r\n if (extraQueryParameters) {\r\n urlNavigate += extraQueryParameters;\r\n }\r\n\r\n if (claims && (urlNavigate.indexOf(\"&claims\") === -1)) {\r\n urlNavigate += '&claims=' + encodeURIComponent(claims);\r\n }\r\n else if (claims && (urlNavigate.indexOf(\"&claims\") !== -1)) {\r\n throw new Error('Claims cannot be passed as an extraQueryParameter');\r\n }\r\n\r\n urlNavigate = this._addHintParameters(urlNavigate);\r\n this._acquireTokenInProgress = true;\r\n this.info('acquireToken interactive is called for the resource ' + resource);\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST, window.location.href);\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW, expectedState, true);\r\n this.promptUser(urlNavigate);\r\n };\r\n /**\r\n * Redirects the browser to Azure AD authorization endpoint.\r\n * @param {string} urlNavigate Url of the authorization endpoint.\r\n */\r\n AuthenticationContext.prototype.promptUser = function (urlNavigate) {\r\n if (urlNavigate) {\r\n this.infoPii('Navigate to:' + urlNavigate);\r\n window.location.replace(urlNavigate);\r\n } else {\r\n this.info('Navigate url is empty');\r\n }\r\n };\r\n\r\n /**\r\n * Clears cache items.\r\n */\r\n AuthenticationContext.prototype.clearCache = function () {\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_REQUEST, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ANGULAR_LOGIN_REQUEST, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.SESSION_STATE, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_LOGIN, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW, '');\r\n this._renewStates = [];\r\n this._saveItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.IDTOKEN, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, '');\r\n var keys = this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS);\r\n\r\n if (!this._isEmpty(keys)) {\r\n keys = keys.split(this.CONSTANTS.RESOURCE_DELIMETER);\r\n for (var i = 0; i < keys.length && keys[i] !== \"\"; i++) {\r\n this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + keys[i], '');\r\n this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + keys[i], 0);\r\n }\r\n }\r\n\r\n this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS, '');\r\n };\r\n\r\n /**\r\n * Clears cache items for a given resource.\r\n * @param {string} resource a URI that identifies the resource.\r\n */\r\n AuthenticationContext.prototype.clearCacheForResource = function (resource) {\r\n this._saveItem(this.CONSTANTS.STORAGE.STATE_RENEW, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, '');\r\n\r\n if (this._hasResource(resource)) {\r\n this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource, 0);\r\n }\r\n };\r\n\r\n /**\r\n * Redirects user to logout endpoint.\r\n * After logout, it will redirect to postLogoutRedirectUri if added as a property on the config object.\r\n */\r\n AuthenticationContext.prototype.logOut = function () {\r\n this.clearCache();\r\n this._user = null;\r\n var urlNavigate;\r\n\r\n if (this.config.logOutUri) {\r\n urlNavigate = this.config.logOutUri;\r\n } else {\r\n var tenant = 'common';\r\n var logout = '';\r\n\r\n if (this.config.tenant) {\r\n tenant = this.config.tenant;\r\n }\r\n\r\n if (this.config.postLogoutRedirectUri) {\r\n logout = 'post_logout_redirect_uri=' + encodeURIComponent(this.config.postLogoutRedirectUri);\r\n }\r\n\r\n urlNavigate = this.instance + tenant + '/oauth2/logout?' + logout;\r\n }\r\n\r\n this.infoPii('Logout navigate to: ' + urlNavigate);\r\n this.promptUser(urlNavigate);\r\n };\r\n\r\n AuthenticationContext.prototype._isEmpty = function (str) {\r\n return (typeof str === 'undefined' || !str || 0 === str.length);\r\n };\r\n\r\n /**\r\n * @callback userCallback\r\n * @param {string} error error message if user info is not available.\r\n * @param {User} user user object retrieved from the cache.\r\n */\r\n\r\n /**\r\n * Calls the passed in callback with the user object or error message related to the user.\r\n * @param {userCallback} callback - The callback provided by the caller. It will be called with user or error.\r\n */\r\n AuthenticationContext.prototype.getUser = function (callback) {\r\n // IDToken is first call\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback is not a function');\r\n }\r\n\r\n // user in memory\r\n if (this._user) {\r\n callback(null, this._user);\r\n return;\r\n }\r\n\r\n // frame is used to get idtoken\r\n var idtoken = this._getItem(this.CONSTANTS.STORAGE.IDTOKEN);\r\n\r\n if (!this._isEmpty(idtoken)) {\r\n this.info('User exists in cache: ');\r\n this._user = this._createUser(idtoken);\r\n callback(null, this._user);\r\n } else {\r\n this.warn('User information is not available');\r\n callback('User information is not available', null);\r\n }\r\n };\r\n\r\n /**\r\n * Adds login_hint to authorization URL which is used to pre-fill the username field of sign in page for the user if known ahead of time.\r\n * domain_hint can be one of users/organisations which when added skips the email based discovery process of the user.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._addHintParameters = function (urlNavigate) {\r\n //If you don�t use prompt=none, then if the session does not exist, there will be a failure.\r\n //If sid is sent alongside domain or login hints, there will be a failure since request is ambiguous.\r\n //If sid is sent with a prompt value other than none or attempt_none, there will be a failure since the request is ambiguous.\r\n\r\n if (this._user && this._user.profile) {\r\n if (this._user.profile.sid && urlNavigate.indexOf('&prompt=none') !== -1) {\r\n // don't add sid twice if user provided it in the extraQueryParameter value\r\n if (!this._urlContainsQueryStringParameter(\"sid\", urlNavigate)) {\r\n // add sid\r\n urlNavigate += '&sid=' + encodeURIComponent(this._user.profile.sid);\r\n }\r\n }\r\n else if (this._user.profile.upn) {\r\n // don't add login_hint twice if user provided it in the extraQueryParameter value\r\n if (!this._urlContainsQueryStringParameter(\"login_hint\", urlNavigate)) {\r\n // add login_hint\r\n urlNavigate += '&login_hint=' + encodeURIComponent(this._user.profile.upn);\r\n }\r\n // don't add domain_hint twice if user provided it in the extraQueryParameter value\r\n if (!this._urlContainsQueryStringParameter(\"domain_hint\", urlNavigate) && this._user.profile.upn.indexOf('@') > -1) {\r\n var parts = this._user.profile.upn.split('@');\r\n // local part can include @ in quotes. Sending last part handles that.\r\n urlNavigate += '&domain_hint=' + encodeURIComponent(parts[parts.length - 1]);\r\n }\r\n }\r\n\r\n }\r\n\r\n return urlNavigate;\r\n }\r\n\r\n /**\r\n * Creates a user object by decoding the id_token\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._createUser = function (idToken) {\r\n var user = null;\r\n var parsedJson = this._extractIdToken(idToken);\r\n if (parsedJson && parsedJson.hasOwnProperty('aud')) {\r\n if (parsedJson.aud.toLowerCase() === this.config.clientId.toLowerCase()) {\r\n\r\n user = {\r\n userName: '',\r\n profile: parsedJson\r\n };\r\n\r\n if (parsedJson.hasOwnProperty('upn')) {\r\n user.userName = parsedJson.upn;\r\n } else if (parsedJson.hasOwnProperty('email')) {\r\n user.userName = parsedJson.email;\r\n }\r\n } else {\r\n this.warn('IdToken has invalid aud field');\r\n }\r\n\r\n }\r\n\r\n return user;\r\n };\r\n\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._getHash = function (hash) {\r\n if (hash.indexOf('#/') > -1) {\r\n hash = hash.substring(hash.indexOf('#/') + 2);\r\n } else if (hash.indexOf('#') > -1) {\r\n hash = hash.substring(1);\r\n }\r\n\r\n return hash;\r\n };\r\n\r\n /**\r\n * Checks if the URL fragment contains access token, id token or error_description.\r\n * @param {string} hash - Hash passed from redirect page\r\n * @returns {Boolean} true if response contains id_token, access_token or error, false otherwise.\r\n */\r\n AuthenticationContext.prototype.isCallback = function (hash) {\r\n hash = this._getHash(hash);\r\n var parameters = this._deserialize(hash);\r\n return (\r\n parameters.hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION) ||\r\n parameters.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN) ||\r\n parameters.hasOwnProperty(this.CONSTANTS.ID_TOKEN)\r\n );\r\n };\r\n\r\n /**\r\n * Gets login error\r\n * @returns {string} error message related to login.\r\n */\r\n AuthenticationContext.prototype.getLoginError = function () {\r\n return this._getItem(this.CONSTANTS.STORAGE.LOGIN_ERROR);\r\n };\r\n\r\n /**\r\n * Request info object created from the response received from AAD.\r\n * @class RequestInfo\r\n * @property {object} parameters - object comprising of fields such as id_token/error, session_state, state, e.t.c.\r\n * @property {REQUEST_TYPE} requestType - either LOGIN, RENEW_TOKEN or UNKNOWN.\r\n * @property {boolean} stateMatch - true if state is valid, false otherwise.\r\n * @property {string} stateResponse - unique guid used to match the response with the request.\r\n * @property {boolean} valid - true if requestType contains id_token, access_token or error, false otherwise.\r\n */\r\n\r\n /**\r\n * Creates a requestInfo object from the URL fragment and returns it.\r\n * @returns {RequestInfo} an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n */\r\n AuthenticationContext.prototype.getRequestInfo = function (hash) {\r\n hash = this._getHash(hash);\r\n var parameters = this._deserialize(hash);\r\n var requestInfo = {\r\n valid: false,\r\n parameters: {},\r\n stateMatch: false,\r\n stateResponse: '',\r\n requestType: this.REQUEST_TYPE.UNKNOWN,\r\n };\r\n\r\n if (parameters) {\r\n requestInfo.parameters = parameters;\r\n if (parameters.hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION) ||\r\n parameters.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN) ||\r\n parameters.hasOwnProperty(this.CONSTANTS.ID_TOKEN)) {\r\n\r\n requestInfo.valid = true;\r\n\r\n // which call\r\n var stateResponse = '';\r\n if (parameters.hasOwnProperty('state')) {\r\n this.verbose('State: ' + parameters.state);\r\n stateResponse = parameters.state;\r\n } else {\r\n this.warn('No state returned');\r\n return requestInfo;\r\n }\r\n\r\n requestInfo.stateResponse = stateResponse;\r\n\r\n // async calls can fire iframe and login request at the same time if developer does not use the API as expected\r\n // incoming callback needs to be looked up to find the request type\r\n if (this._matchState(requestInfo)) { // loginRedirect or acquireTokenRedirect\r\n return requestInfo;\r\n }\r\n\r\n // external api requests may have many renewtoken requests for different resource\r\n if (!requestInfo.stateMatch && window.parent) {\r\n requestInfo.requestType = this._requestType;\r\n var statesInParentContext = this._renewStates;\r\n for (var i = 0; i < statesInParentContext.length; i++) {\r\n if (statesInParentContext[i] === requestInfo.stateResponse) {\r\n requestInfo.stateMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return requestInfo;\r\n };\r\n\r\n /**\r\n * Matches nonce from the request with the response.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._matchNonce = function (user) {\r\n var requestNonce = this._getItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN);\r\n\r\n if (requestNonce) {\r\n requestNonce = requestNonce.split(this.CONSTANTS.CACHE_DELIMETER);\r\n for (var i = 0; i < requestNonce.length; i++) {\r\n if (requestNonce[i] && requestNonce[i] === user.profile.nonce) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Matches state from the request with the response.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._matchState = function (requestInfo) {\r\n var loginStates = this._getItem(this.CONSTANTS.STORAGE.STATE_LOGIN);\r\n\r\n if (loginStates) {\r\n loginStates = loginStates.split(this.CONSTANTS.CACHE_DELIMETER);\r\n for (var i = 0; i < loginStates.length; i++) {\r\n if (loginStates[i] && loginStates[i] === requestInfo.stateResponse) {\r\n requestInfo.requestType = this.REQUEST_TYPE.LOGIN;\r\n requestInfo.stateMatch = true;\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var acquireTokenStates = this._getItem(this.CONSTANTS.STORAGE.STATE_RENEW);\r\n\r\n if (acquireTokenStates) {\r\n acquireTokenStates = acquireTokenStates.split(this.CONSTANTS.CACHE_DELIMETER);\r\n for (var i = 0; i < acquireTokenStates.length; i++) {\r\n if (acquireTokenStates[i] && acquireTokenStates[i] === requestInfo.stateResponse) {\r\n requestInfo.requestType = this.REQUEST_TYPE.RENEW_TOKEN;\r\n requestInfo.stateMatch = true;\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n\r\n };\r\n\r\n /**\r\n * Extracts resource value from state.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._getResourceFromState = function (state) {\r\n if (state) {\r\n var splitIndex = state.indexOf('|');\r\n\r\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\r\n return state.substring(splitIndex + 1);\r\n }\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /**\r\n * Saves token or error received in the response from AAD in the cache. In case of id_token, it also creates the user object.\r\n */\r\n AuthenticationContext.prototype.saveTokenFromHash = function (requestInfo) {\r\n this.info('State status:' + requestInfo.stateMatch + '; Request type:' + requestInfo.requestType);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, '');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, '');\r\n\r\n var resource = this._getResourceFromState(requestInfo.stateResponse);\r\n\r\n // Record error\r\n if (requestInfo.parameters.hasOwnProperty(this.CONSTANTS.ERROR_DESCRIPTION)) {\r\n this.infoPii('Error :' + requestInfo.parameters.error + '; Error description:' + requestInfo.parameters[this.CONSTANTS.ERROR_DESCRIPTION]);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, requestInfo.parameters.error);\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, requestInfo.parameters[this.CONSTANTS.ERROR_DESCRIPTION]);\r\n\r\n if (requestInfo.requestType === this.REQUEST_TYPE.LOGIN) {\r\n this._loginInProgress = false;\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, requestInfo.parameters.error_description);\r\n }\r\n } else {\r\n // It must verify the state from redirect\r\n if (requestInfo.stateMatch) {\r\n // record tokens to storage if exists\r\n this.info('State is right');\r\n if (requestInfo.parameters.hasOwnProperty(this.CONSTANTS.SESSION_STATE)) {\r\n this._saveItem(this.CONSTANTS.STORAGE.SESSION_STATE, requestInfo.parameters[this.CONSTANTS.SESSION_STATE]);\r\n }\r\n\r\n var keys;\r\n\r\n if (requestInfo.parameters.hasOwnProperty(this.CONSTANTS.ACCESS_TOKEN)) {\r\n this.info('Fragment has access token');\r\n\r\n if (!this._hasResource(resource)) {\r\n keys = this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS) || '';\r\n this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS, keys + resource + this.CONSTANTS.RESOURCE_DELIMETER);\r\n }\r\n\r\n // save token with related resource\r\n this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource, requestInfo.parameters[this.CONSTANTS.ACCESS_TOKEN]);\r\n this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource, this._expiresIn(requestInfo.parameters[this.CONSTANTS.EXPIRES_IN]));\r\n }\r\n\r\n if (requestInfo.parameters.hasOwnProperty(this.CONSTANTS.ID_TOKEN)) {\r\n this.info('Fragment has id token');\r\n this._loginInProgress = false;\r\n this._user = this._createUser(requestInfo.parameters[this.CONSTANTS.ID_TOKEN]);\r\n if (this._user && this._user.profile) {\r\n if (!this._matchNonce(this._user)) {\r\n this._saveItem(this.CONSTANTS.STORAGE.LOGIN_ERROR, 'Nonce received: ' + this._user.profile.nonce + ' is not same as requested: ' +\r\n this._getItem(this.CONSTANTS.STORAGE.NONCE_IDTOKEN));\r\n this._user = null;\r\n } else {\r\n this._saveItem(this.CONSTANTS.STORAGE.IDTOKEN, requestInfo.parameters[this.CONSTANTS.ID_TOKEN]);\r\n\r\n // Save idtoken as access token for app itself\r\n resource = this.config.loginResource ? this.config.loginResource : this.config.clientId;\r\n\r\n if (!this._hasResource(resource)) {\r\n keys = this._getItem(this.CONSTANTS.STORAGE.TOKEN_KEYS) || '';\r\n this._saveItem(this.CONSTANTS.STORAGE.TOKEN_KEYS, keys + resource + this.CONSTANTS.RESOURCE_DELIMETER);\r\n }\r\n\r\n this._saveItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource, requestInfo.parameters[this.CONSTANTS.ID_TOKEN]);\r\n this._saveItem(this.CONSTANTS.STORAGE.EXPIRATION_KEY + resource, this._user.profile.exp);\r\n }\r\n }\r\n else {\r\n requestInfo.parameters['error'] = 'invalid id_token';\r\n requestInfo.parameters['error_description'] = 'Invalid id_token. id_token: ' + requestInfo.parameters[this.CONSTANTS.ID_TOKEN];\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, 'invalid id_token');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, 'Invalid id_token. id_token: ' + requestInfo.parameters[this.CONSTANTS.ID_TOKEN]);\r\n }\r\n }\r\n } else {\r\n requestInfo.parameters['error'] = 'Invalid_state';\r\n requestInfo.parameters['error_description'] = 'Invalid_state. state: ' + requestInfo.stateResponse;\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR, 'Invalid_state');\r\n this._saveItem(this.CONSTANTS.STORAGE.ERROR_DESCRIPTION, 'Invalid_state. state: ' + requestInfo.stateResponse);\r\n }\r\n }\r\n\r\n this._saveItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource, this.CONSTANTS.TOKEN_RENEW_STATUS_COMPLETED);\r\n };\r\n\r\n /**\r\n * Gets resource for given endpoint if mapping is provided with config.\r\n * @param {string} endpoint - The URI for which the resource Id is requested.\r\n * @returns {string} resource for this API endpoint.\r\n */\r\n AuthenticationContext.prototype.getResourceForEndpoint = function (endpoint) {\r\n\r\n // if user specified list of anonymous endpoints, no need to send token to these endpoints, return null.\r\n if (this.config && this.config.anonymousEndpoints) {\r\n for (var i = 0; i < this.config.anonymousEndpoints.length; i++) {\r\n if (endpoint.indexOf(this.config.anonymousEndpoints[i]) > -1) {\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n if (this.config && this.config.endpoints) {\r\n for (var configEndpoint in this.config.endpoints) {\r\n // configEndpoint is like /api/Todo requested endpoint can be /api/Todo/1\r\n if (endpoint.indexOf(configEndpoint) > -1) {\r\n return this.config.endpoints[configEndpoint];\r\n }\r\n }\r\n }\r\n\r\n // default resource will be clientid if nothing specified\r\n // App will use idtoken for calls to itself\r\n // check if it's staring from http or https, needs to match with app host\r\n if (endpoint.indexOf('http://') > -1 || endpoint.indexOf('https://') > -1) {\r\n if (this._getHostFromUri(endpoint) === this._getHostFromUri(this.config.redirectUri)) {\r\n return this.config.loginResource;\r\n }\r\n }\r\n else {\r\n // in angular level, the url for $http interceptor call could be relative url,\r\n // if it's relative call, we'll treat it as app backend call. \r\n return this.config.loginResource;\r\n }\r\n\r\n // if not the app's own backend or not a domain listed in the endpoints structure\r\n return null;\r\n };\r\n\r\n /**\r\n * Strips the protocol part of the URL and returns it.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._getHostFromUri = function (uri) {\r\n // remove http:// or https:// from uri\r\n var extractedUri = String(uri).replace(/^(https?:)\\/\\//, '');\r\n extractedUri = extractedUri.split('/')[0];\r\n return extractedUri;\r\n };\r\n\r\n /**\r\n * This method must be called for processing the response received from AAD. It extracts the hash, processes the token or error, saves it in the cache and calls the registered callbacks with the result.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n AuthenticationContext.prototype.handleWindowCallback = function (hash) {\r\n // This is for regular javascript usage for redirect handling\r\n // need to make sure this is for callback\r\n if (hash == null) {\r\n hash = window.location.hash;\r\n }\r\n\r\n if (this.isCallback(hash)) {\r\n var self = null;\r\n var isPopup = false;\r\n\r\n if (this._openedWindows.length > 0 && this._openedWindows[this._openedWindows.length - 1].opener\r\n && this._openedWindows[this._openedWindows.length - 1].opener._adalInstance) {\r\n self = this._openedWindows[this._openedWindows.length - 1].opener._adalInstance;\r\n isPopup = true;\r\n }\r\n else if (window.parent && window.parent._adalInstance) {\r\n self = window.parent._adalInstance;\r\n }\r\n\r\n var requestInfo = self.getRequestInfo(hash);\r\n var token, tokenReceivedCallback, tokenType = null;\r\n\r\n if (isPopup || window.parent !== window) {\r\n tokenReceivedCallback = self._callBackMappedToRenewStates[requestInfo.stateResponse];\r\n }\r\n else {\r\n tokenReceivedCallback = self.callback;\r\n }\r\n\r\n self.info(\"Returned from redirect url\");\r\n self.saveTokenFromHash(requestInfo);\r\n\r\n if ((requestInfo.requestType === this.REQUEST_TYPE.RENEW_TOKEN) && window.parent) {\r\n if (window.parent !== window) {\r\n self.verbose(\"Window is in iframe, acquiring token silently\");\r\n } else {\r\n self.verbose(\"acquiring token interactive in progress\");\r\n }\r\n\r\n token = requestInfo.parameters[self.CONSTANTS.ACCESS_TOKEN] || requestInfo.parameters[self.CONSTANTS.ID_TOKEN];\r\n tokenType = self.CONSTANTS.ACCESS_TOKEN;\r\n } else if (requestInfo.requestType === this.REQUEST_TYPE.LOGIN) {\r\n token = requestInfo.parameters[self.CONSTANTS.ID_TOKEN];\r\n tokenType = self.CONSTANTS.ID_TOKEN;\r\n }\r\n\r\n var errorDesc = requestInfo.parameters[self.CONSTANTS.ERROR_DESCRIPTION];\r\n var error = requestInfo.parameters[self.CONSTANTS.ERROR];\r\n try {\r\n if (tokenReceivedCallback) {\r\n tokenReceivedCallback(errorDesc, token, error, tokenType);\r\n }\r\n\r\n } catch (err) {\r\n self.error(\"Error occurred in user defined callback function: \" + err);\r\n }\r\n\r\n if (window.parent === window && !isPopup) {\r\n if (self.config.navigateToLoginRequestUrl) {\r\n window.location.href = self._getItem(self.CONSTANTS.STORAGE.LOGIN_REQUEST);\r\n } else window.location.hash = '';\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Constructs the authorization endpoint URL and returns it.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._getNavigateUrl = function (responseType, resource) {\r\n var tenant = 'common';\r\n if (this.config.tenant) {\r\n tenant = this.config.tenant;\r\n }\r\n\r\n var urlNavigate = this.instance + tenant + '/oauth2/authorize' + this._serialize(responseType, this.config, resource) + this._addLibMetadata();\r\n this.info('Navigate url:' + urlNavigate);\r\n return urlNavigate;\r\n };\r\n\r\n /**\r\n * Returns the decoded id_token.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._extractIdToken = function (encodedIdToken) {\r\n // id token will be decoded to get the username\r\n var decodedToken = this._decodeJwt(encodedIdToken);\r\n\r\n if (!decodedToken) {\r\n return null;\r\n }\r\n\r\n try {\r\n var base64IdToken = decodedToken.JWSPayload;\r\n var base64Decoded = this._base64DecodeStringUrlSafe(base64IdToken);\r\n\r\n if (!base64Decoded) {\r\n this.info('The returned id_token could not be base64 url safe decoded.');\r\n return null;\r\n }\r\n\r\n // ECMA script has JSON built-in support\r\n return JSON.parse(base64Decoded);\r\n } catch (err) {\r\n this.error('The returned id_token could not be decoded', err);\r\n }\r\n\r\n return null;\r\n };\r\n\r\n /**\r\n * Decodes a string of data which has been encoded using base-64 encoding.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._base64DecodeStringUrlSafe = function (base64IdToken) {\r\n // html5 should support atob function for decoding\r\n base64IdToken = base64IdToken.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n if (window.atob) {\r\n return decodeURIComponent(escape(window.atob(base64IdToken))); // jshint ignore:line\r\n }\r\n else {\r\n return decodeURIComponent(escape(this._decode(base64IdToken)));\r\n }\r\n };\r\n\r\n //Take https://cdnjs.cloudflare.com/ajax/libs/Base64/0.3.0/base64.js and https://en.wikipedia.org/wiki/Base64 as reference. \r\n AuthenticationContext.prototype._decode = function (base64IdToken) {\r\n var codes = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\n base64IdToken = String(base64IdToken).replace(/=+$/, '');\r\n\r\n var length = base64IdToken.length;\r\n\r\n if (length % 4 === 1) {\r\n throw new Error('The token to be decoded is not correctly encoded.');\r\n }\r\n\r\n var h1, h2, h3, h4, bits, c1, c2, c3, decoded = '';\r\n\r\n for (var i = 0; i < length; i += 4) {\r\n //Every 4 base64 encoded character will be converted to 3 byte string, which is 24 bits\r\n // then 6 bits per base64 encoded character\r\n h1 = codes.indexOf(base64IdToken.charAt(i));\r\n h2 = codes.indexOf(base64IdToken.charAt(i + 1));\r\n h3 = codes.indexOf(base64IdToken.charAt(i + 2));\r\n h4 = codes.indexOf(base64IdToken.charAt(i + 3));\r\n\r\n // For padding, if last two are '='\r\n if (i + 2 === length - 1) {\r\n bits = h1 << 18 | h2 << 12 | h3 << 6;\r\n c1 = bits >> 16 & 255;\r\n c2 = bits >> 8 & 255;\r\n decoded += String.fromCharCode(c1, c2);\r\n break;\r\n }\r\n // if last one is '='\r\n else if (i + 1 === length - 1) {\r\n bits = h1 << 18 | h2 << 12\r\n c1 = bits >> 16 & 255;\r\n decoded += String.fromCharCode(c1);\r\n break;\r\n }\r\n\r\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\r\n\r\n // then convert to 3 byte chars\r\n c1 = bits >> 16 & 255;\r\n c2 = bits >> 8 & 255;\r\n c3 = bits & 255;\r\n\r\n decoded += String.fromCharCode(c1, c2, c3);\r\n }\r\n\r\n return decoded;\r\n };\r\n\r\n /**\r\n * Decodes an id token into an object with header, payload and signature fields.\r\n * @ignore\r\n */\r\n // Adal.node js crack function\r\n AuthenticationContext.prototype._decodeJwt = function (jwtToken) {\r\n if (this._isEmpty(jwtToken)) {\r\n return null;\r\n };\r\n\r\n var idTokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n\r\n var matches = idTokenPartsRegex.exec(jwtToken);\r\n\r\n if (!matches || matches.length < 4) {\r\n this.warn('The returned id_token is not parseable.');\r\n return null;\r\n }\r\n\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n\r\n return crackedToken;\r\n };\r\n\r\n /**\r\n * Converts string to represent binary data in ASCII string format by translating it into a radix-64 representation and returns it\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._convertUrlSafeToRegularBase64EncodedString = function (str) {\r\n return str.replace('-', '+').replace('_', '/');\r\n };\r\n\r\n /**\r\n * Serializes the parameters for the authorization endpoint URL and returns the serialized uri string.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._serialize = function (responseType, obj, resource) {\r\n var str = [];\r\n\r\n if (obj !== null) {\r\n str.push('?response_type=' + responseType);\r\n str.push('client_id=' + encodeURIComponent(obj.clientId));\r\n if (resource) {\r\n str.push('resource=' + encodeURIComponent(resource));\r\n }\r\n\r\n str.push('redirect_uri=' + encodeURIComponent(obj.redirectUri));\r\n str.push('state=' + encodeURIComponent(obj.state));\r\n\r\n if (obj.hasOwnProperty('slice')) {\r\n str.push('slice=' + encodeURIComponent(obj.slice));\r\n }\r\n\r\n if (obj.hasOwnProperty('extraQueryParameter')) {\r\n str.push(obj.extraQueryParameter);\r\n }\r\n\r\n var correlationId = obj.correlationId ? obj.correlationId : this._guid();\r\n str.push('client-request-id=' + encodeURIComponent(correlationId));\r\n }\r\n\r\n return str.join('&');\r\n };\r\n\r\n /**\r\n * Parses the query string parameters into a key-value pair object.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._deserialize = function (query) {\r\n var match,\r\n pl = /\\+/g, // Regex for replacing addition symbol with a space\r\n search = /([^&=]+)=([^&]*)/g,\r\n decode = function (s) {\r\n return decodeURIComponent(s.replace(pl, ' '));\r\n },\r\n obj = {};\r\n match = search.exec(query);\r\n\r\n while (match) {\r\n obj[decode(match[1])] = decode(match[2]);\r\n match = search.exec(query);\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n /**\r\n * Converts decimal value to hex equivalent\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._decimalToHex = function (number) {\r\n var hex = number.toString(16);\r\n\r\n while (hex.length < 2) {\r\n hex = '0' + hex;\r\n }\r\n return hex;\r\n }\r\n\r\n /**\r\n * Generates RFC4122 version 4 guid (128 bits)\r\n * @ignore\r\n */\r\n /* jshint ignore:start */\r\n AuthenticationContext.prototype._guid = function () {\r\n // RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n // pseudo-random numbers.\r\n // The algorithm is as follows:\r\n // Set the two most significant bits (bits 6 and 7) of the\r\n // clock_seq_hi_and_reserved to zero and one, respectively.\r\n // Set the four most significant bits (bits 12 through 15) of the\r\n // time_hi_and_version field to the 4-bit version number from\r\n // Section 4.1.3. Version4\r\n // Set all the other bits to randomly (or pseudo-randomly) chosen\r\n // values.\r\n // UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n // time-low = 4hexOctet\r\n // time-mid = 2hexOctet\r\n // time-high-and-version = 2hexOctet\r\n // clock-seq-and-reserved = hexOctet:\r\n // clock-seq-low = hexOctet\r\n // node = 6hexOctet\r\n // Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n // y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n // y values are 8, 9, A, B\r\n var cryptoObj = window.crypto || window.msCrypto; // for IE 11\r\n if (cryptoObj && cryptoObj.getRandomValues) {\r\n var buffer = new Uint8Array(16);\r\n cryptoObj.getRandomValues(buffer);\r\n //buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; //buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; //buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n //buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; //buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; //buffer[8] & 10111111 will set the 6 bit to 0.\r\n return this._decimalToHex(buffer[0]) + this._decimalToHex(buffer[1]) + this._decimalToHex(buffer[2]) + this._decimalToHex(buffer[3]) + '-' + this._decimalToHex(buffer[4]) + this._decimalToHex(buffer[5]) + '-' + this._decimalToHex(buffer[6]) + this._decimalToHex(buffer[7]) + '-' +\r\n this._decimalToHex(buffer[8]) + this._decimalToHex(buffer[9]) + '-' + this._decimalToHex(buffer[10]) + this._decimalToHex(buffer[11]) + this._decimalToHex(buffer[12]) + this._decimalToHex(buffer[13]) + this._decimalToHex(buffer[14]) + this._decimalToHex(buffer[15]);\r\n }\r\n else {\r\n var guidHolder = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\r\n var hex = '0123456789abcdef';\r\n var r = 0;\r\n var guidResponse = \"\";\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== '-' && guidHolder[i] !== '4') {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === 'x') {\r\n guidResponse += hex[r];\r\n } else if (guidHolder[i] === 'y') {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n } else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /* jshint ignore:end */\r\n\r\n /**\r\n * Calculates the expires in value in milliseconds for the acquired token\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._expiresIn = function (expires) {\r\n // if AAD did not send \"expires_in\" property, use default expiration of 3599 seconds, for some reason AAD sends 3599 as \"expires_in\" value instead of 3600\r\n if (!expires) expires = 3599;\r\n return this._now() + parseInt(expires, 10);\r\n };\r\n\r\n /**\r\n * Return the number of milliseconds since 1970/01/01\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._now = function () {\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n\r\n /**\r\n * Adds the hidden iframe for silent token renewal\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._addAdalFrame = function (iframeId) {\r\n if (typeof iframeId === 'undefined') {\r\n return;\r\n }\r\n\r\n this.info('Add adal frame to document:' + iframeId);\r\n var adalFrame = document.getElementById(iframeId);\r\n\r\n if (!adalFrame) {\r\n if (document.createElement && document.documentElement &&\r\n (window.opera || window.navigator.userAgent.indexOf('MSIE 5.0') === -1)) {\r\n var ifr = document.createElement('iframe');\r\n ifr.setAttribute('id', iframeId);\r\n ifr.setAttribute('aria-hidden', 'true');\r\n ifr.style.visibility = 'hidden';\r\n ifr.style.position = 'absolute';\r\n ifr.style.width = ifr.style.height = ifr.borderWidth = '0px';\r\n\r\n adalFrame = document.getElementsByTagName('body')[0].appendChild(ifr);\r\n }\r\n else if (document.body && document.body.insertAdjacentHTML) {\r\n document.body.insertAdjacentHTML('beforeEnd', '');\r\n }\r\n if (window.frames && window.frames[iframeId]) {\r\n adalFrame = window.frames[iframeId];\r\n }\r\n }\r\n\r\n return adalFrame;\r\n };\r\n\r\n /**\r\n * Saves the key-value pair in the cache\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._saveItem = function (key, obj, preserve) {\r\n\r\n if (this.config && this.config.cacheLocation && this.config.cacheLocation === 'localStorage') {\r\n\r\n if (!this._supportsLocalStorage()) {\r\n this.info('Local storage is not supported');\r\n return false;\r\n }\r\n\r\n if (preserve) {\r\n var value = this._getItem(key) || '';\r\n localStorage.setItem(key, value + obj + this.CONSTANTS.CACHE_DELIMETER);\r\n }\r\n else {\r\n localStorage.setItem(key, obj);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Default as session storage\r\n if (!this._supportsSessionStorage()) {\r\n this.info('Session storage is not supported');\r\n return false;\r\n }\r\n\r\n sessionStorage.setItem(key, obj);\r\n return true;\r\n };\r\n\r\n /**\r\n * Searches the value for the given key in the cache\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._getItem = function (key) {\r\n\r\n if (this.config && this.config.cacheLocation && this.config.cacheLocation === 'localStorage') {\r\n\r\n if (!this._supportsLocalStorage()) {\r\n this.info('Local storage is not supported');\r\n return null;\r\n }\r\n\r\n return localStorage.getItem(key);\r\n }\r\n\r\n // Default as session storage\r\n if (!this._supportsSessionStorage()) {\r\n this.info('Session storage is not supported');\r\n return null;\r\n }\r\n\r\n return sessionStorage.getItem(key);\r\n };\r\n\r\n /**\r\n * Returns true if browser supports localStorage, false otherwise.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._supportsLocalStorage = function () {\r\n try {\r\n if (!window.localStorage) return false; // Test availability\r\n window.localStorage.setItem('storageTest', 'A'); // Try write\r\n if (window.localStorage.getItem('storageTest') != 'A') return false; // Test read/write\r\n window.localStorage.removeItem('storageTest'); // Try delete\r\n if (window.localStorage.getItem('storageTest')) return false; // Test delete\r\n return true; // Success\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Returns true if browser supports sessionStorage, false otherwise.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._supportsSessionStorage = function () {\r\n try {\r\n if (!window.sessionStorage) return false; // Test availability\r\n window.sessionStorage.setItem('storageTest', 'A'); // Try write\r\n if (window.sessionStorage.getItem('storageTest') != 'A') return false; // Test read/write\r\n window.sessionStorage.removeItem('storageTest'); // Try delete\r\n if (window.sessionStorage.getItem('storageTest')) return false; // Test delete\r\n return true; // Success\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Returns a cloned copy of the passed object.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._cloneConfig = function (obj) {\r\n if (null === obj || 'object' !== typeof obj) {\r\n return obj;\r\n }\r\n\r\n var copy = {};\r\n for (var attr in obj) {\r\n if (obj.hasOwnProperty(attr)) {\r\n copy[attr] = obj[attr];\r\n }\r\n }\r\n return copy;\r\n };\r\n\r\n /**\r\n * Adds the library version and returns it.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._addLibMetadata = function () {\r\n // x-client-SKU\r\n // x-client-Ver\r\n return '&x-client-SKU=Js&x-client-Ver=' + this._libVersion();\r\n };\r\n\r\n /**\r\n * Checks the Logging Level, constructs the Log message and logs it. Users need to implement/override this method to turn on Logging. \r\n * @param {number} level - Level can be set 0,1,2 and 3 which turns on 'error', 'warning', 'info' or 'verbose' level logging respectively.\r\n * @param {string} message - Message to log.\r\n * @param {string} error - Error to log.\r\n */\r\n AuthenticationContext.prototype.log = function (level, message, error, containsPii) {\r\n\r\n if (level <= Logging.level) {\r\n\r\n if (!Logging.piiLoggingEnabled && containsPii)\r\n return;\r\n\r\n var timestamp = new Date().toUTCString();\r\n var formattedMessage = '';\r\n\r\n if (this.config.correlationId)\r\n formattedMessage = timestamp + ':' + this.config.correlationId + '-' + this._libVersion() + '-' + this.CONSTANTS.LEVEL_STRING_MAP[level] + ' ' + message;\r\n else\r\n formattedMessage = timestamp + ':' + this._libVersion() + '-' + this.CONSTANTS.LEVEL_STRING_MAP[level] + ' ' + message;\r\n\r\n if (error) {\r\n formattedMessage += '\\nstack:\\n' + error.stack;\r\n }\r\n\r\n Logging.log(formattedMessage);\r\n }\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 0.\r\n * @param {string} message - Message to log.\r\n * @param {string} error - Error to log.\r\n */\r\n AuthenticationContext.prototype.error = function (message, error) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.ERROR, message, error);\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 1.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.warn = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.WARN, message, null);\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 2.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.info = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.INFO, message, null);\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 3.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.verbose = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.VERBOSE, message, null);\r\n };\r\n\r\n /**\r\n * Logs Pii messages when Logging Level is set to 0 and window.piiLoggingEnabled is set to true.\r\n * @param {string} message - Message to log.\r\n * @param {string} error - Error to log.\r\n */\r\n AuthenticationContext.prototype.errorPii = function (message, error) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.ERROR, message, error, true);\r\n };\r\n\r\n /**\r\n * Logs Pii messages when Logging Level is set to 1 and window.piiLoggingEnabled is set to true.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.warnPii = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.WARN, message, null, true);\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 2 and window.piiLoggingEnabled is set to true.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.infoPii = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.INFO, message, null, true);\r\n };\r\n\r\n /**\r\n * Logs messages when Logging Level is set to 3 and window.piiLoggingEnabled is set to true.\r\n * @param {string} message - Message to log.\r\n */\r\n AuthenticationContext.prototype.verbosePii = function (message) {\r\n this.log(this.CONSTANTS.LOGGING_LEVEL.VERBOSE, message, null, true);\r\n };\r\n /**\r\n * Returns the library version.\r\n * @ignore\r\n */\r\n AuthenticationContext.prototype._libVersion = function () {\r\n return '1.0.18';\r\n };\r\n\r\n /**\r\n * Returns a reference of Authentication Context as a result of a require call.\r\n * @ignore\r\n */\r\n if (typeof module !== 'undefined' && module.exports) {\r\n module.exports = AuthenticationContext;\r\n module.exports.inject = function (conf) {\r\n return new AuthenticationContext(conf);\r\n };\r\n }\r\n\r\n return AuthenticationContext;\r\n\r\n}());\r\n","\"use strict\";\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var Telemetry;\r\n (function (Telemetry) {\r\n \"use strict\";\r\n /**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\n var Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n }());\r\n Telemetry.Base = Base;\r\n })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var Telemetry;\r\n (function (Telemetry) {\r\n \"use strict\";\r\n /**\r\n * System variables for a telemetry item.\r\n */\r\n var Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n this.ver = 1;\r\n this.sampleRate = 100.0;\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n }());\r\n Telemetry.Envelope = Envelope;\r\n })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n var Context;\r\n (function (Context) {\r\n \"use strict\";\r\n })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {}));\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nvar AI;\r\n(function (AI) {\r\n \"use strict\";\r\n /**\r\n * Defines the level of severity for the event.\r\n */\r\n var SeverityLevel;\r\n (function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n })(SeverityLevel = AI.SeverityLevel || (AI.SeverityLevel = {}));\r\n})(AI || (AI = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/// \r\n/// \r\n/// \r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Microsoft;\r\n(function (Microsoft) {\r\n var ApplicationInsights;\r\n (function (ApplicationInsights) {\r\n \"use strict\";\r\n var UtilHelpers = /** @class */ (function () {\r\n function UtilHelpers() {\r\n }\r\n /**\r\n * generate random id string\r\n */\r\n UtilHelpers.newId = function () {\r\n var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var result = \"\";\r\n // tslint:disable-next-line:insecure-random\r\n var random = Math.random() * 1073741824; //5 symbols in base64, almost maxint\r\n while (random > 0) {\r\n var char = base64chars.charAt(random % 64);\r\n result += char;\r\n random = Math.floor(random / 64);\r\n }\r\n return result;\r\n };\r\n return UtilHelpers;\r\n }());\r\n ApplicationInsights.UtilHelpers = UtilHelpers;\r\n })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {}));\r\n})(Microsoft || (Microsoft = {}));\r\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\ndefine(\"JavaScriptSDK.Module/AppInsightsModule\", [\"require\", \"exports\"], function (require, exports) {\r\n /// \r\n /// \r\n /// \r\n \"use strict\";\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n var AppInsightsModule = /** @class */ (function () {\r\n function AppInsightsModule() {\r\n }\r\n AppInsightsModule._createLazyMethod = function (name) {\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // Define a temporary method that queues-up a the real method call\r\n aiObject[name] = function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n // If the queue is available, it means that the function wasn't yet replaced with actual function value\r\n if (aiObject.queue) {\r\n aiObject.queue.push(function () { return aiObject[name].apply(aiObject, originalArguments); });\r\n }\r\n else {\r\n // otherwise execute the function\r\n aiObject[name].apply(aiObject, originalArguments);\r\n }\r\n };\r\n };\r\n ;\r\n AppInsightsModule._defineLazyMethods = function () {\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // capture initial cookie if possible\r\n try {\r\n aiObject.cookie = document.cookie;\r\n }\r\n catch (e) {\r\n }\r\n aiObject.queue = [];\r\n var method = [\r\n \"clearAuthenticatedUserContext\",\r\n \"flush\",\r\n \"setAuthenticatedUserContext\",\r\n \"startTrackEvent\",\r\n \"startTrackPage\",\r\n \"stopTrackEvent\",\r\n \"stopTrackPage\",\r\n \"trackDependency\",\r\n \"trackEvent\",\r\n \"trackException\",\r\n \"trackMetric\",\r\n \"trackPageView\",\r\n \"trackTrace\"\r\n ];\r\n while (method.length) {\r\n AppInsightsModule._createLazyMethod(method.pop());\r\n }\r\n };\r\n AppInsightsModule._download = function (aiConfig) {\r\n AppInsightsModule.getAppInsightsInstance().config = aiConfig;\r\n var aiObject = window[AppInsightsModule.appInsightsName];\r\n // if script was previously downloaded and initialized, queue will be deleted, reinitialize it\r\n if (!aiObject.queue) {\r\n aiObject.queue = [];\r\n }\r\n setTimeout(function () {\r\n var scriptElement = document.createElement(\"script\");\r\n scriptElement.src = aiConfig.url || \"https://az416426.vo.msecnd.net/scripts/a/ai.0.js\";\r\n document.head.appendChild(scriptElement);\r\n });\r\n // collect global errors by wrapping the window.onerror method\r\n if (!aiConfig.disableExceptionTracking) {\r\n var method_1 = \"onerror\";\r\n AppInsightsModule._createLazyMethod(\"_\" + method_1);\r\n var originalOnError = window[method_1];\r\n window[method_1] = function (message, url, lineNumber, columnNumber, error) {\r\n var handled = originalOnError && originalOnError(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) {\r\n aiObject[\"_\" + method_1](message, url, lineNumber, columnNumber, error);\r\n }\r\n return handled;\r\n };\r\n }\r\n };\r\n AppInsightsModule.getAppInsightsInstance = function () {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n if (!window[AppInsightsModule.appInsightsName]) {\r\n window[AppInsightsModule.appInsightsName] = {\r\n downloadAndSetup: AppInsightsModule._download,\r\n // exposing it for unit tests only, not part of interface\r\n _defineLazyMethods: AppInsightsModule._defineLazyMethods\r\n };\r\n AppInsightsModule._defineLazyMethods();\r\n }\r\n return window[AppInsightsModule.appInsightsName];\r\n };\r\n AppInsightsModule.appInsightsInitialized = false;\r\n AppInsightsModule.appInsightsName = \"appInsights\";\r\n /**\r\n * Static constructor, attempt to ES5 get accessor\r\n */\r\n AppInsightsModule._staticInit = (function () {\r\n // Dynamically create get/set property accessors\r\n var defineProp = Object[\"defineProperty\"];\r\n try {\r\n defineProp && defineProp(AppInsightsModule.prototype, \"appInsightsInstance\", {\r\n get: AppInsightsModule.getAppInsightsInstance,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n })();\r\n return AppInsightsModule;\r\n }());\r\n exports.AppInsights = AppInsightsModule.getAppInsightsInstance();\r\n});\r\n","import { __decorate, __metadata } from 'tslib';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, Output, NgModule } from '@angular/core';\nimport { OnChange } from 'ngx-bootstrap/utils';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nfunction AlertComponent_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function AlertComponent_ng_template_0_ng_template_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r2.close()); });\n ɵngcc0.ɵɵelementStart(1, \"span\", 3);\n ɵngcc0.ɵɵtext(2, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"span\", 4);\n ɵngcc0.ɵɵtext(4, \"Close\");\n ɵngcc0.ɵɵelementEnd()();\n} }\nfunction AlertComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵtemplate(1, AlertComponent_ng_template_0_ng_template_1_Template, 5, 0, \"ng-template\", 0);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(\"alert alert-\" + ctx_r0.type);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.classes);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.dismissible);\n} }\nconst _c0 = [\"*\"];\nclass AlertConfig {\n constructor() {\n /**\n * default alert type\n */\n this.type = 'warning';\n /**\n * is alerts are dismissible by default\n */\n this.dismissible = false;\n /**\n * default time before alert will dismiss\n */\n this.dismissOnTimeout = undefined;\n }\n}\nAlertConfig.ɵfac = function AlertConfig_Factory(t) { return new (t || AlertConfig)(); };\nAlertConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AlertConfig, factory: AlertConfig.ɵfac });\nif (false) {\n /**\n * default alert type\n * @type {?}\n */\n AlertConfig.prototype.type;\n /**\n * is alerts are dismissible by default\n * @type {?}\n */\n AlertConfig.prototype.dismissible;\n /**\n * default time before alert will dismiss\n * @type {?}\n */\n AlertConfig.prototype.dismissOnTimeout;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass AlertComponent {\n /**\n * @param {?} _config\n * @param {?} changeDetection\n */\n constructor(_config, changeDetection) {\n this.changeDetection = changeDetection;\n /**\n * Alert type.\n * Provides one of four bootstrap supported contextual classes:\n * `success`, `info`, `warning` and `danger`\n */\n this.type = 'warning';\n /**\n * If set, displays an inline \"Close\" button\n */\n this.dismissible = false;\n /**\n * Is alert visible\n */\n this.isOpen = true;\n /**\n * This event fires immediately after close instance method is called,\n * $event is an instance of Alert component.\n */\n this.onClose = new EventEmitter();\n /**\n * This event fires when alert closed, $event is an instance of Alert component\n */\n this.onClosed = new EventEmitter();\n this.classes = '';\n this.dismissibleChange = new EventEmitter();\n Object.assign(this, _config);\n this.dismissibleChange.subscribe((/**\n * @param {?} dismissible\n * @return {?}\n */\n (dismissible) => {\n this.classes = this.dismissible ? 'alert-dismissible' : '';\n this.changeDetection.markForCheck();\n }));\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n if (this.dismissOnTimeout) {\n // if dismissOnTimeout used as attr without binding, it will be a string\n setTimeout((/**\n * @return {?}\n */\n () => this.close()), parseInt((/** @type {?} */ (this.dismissOnTimeout)), 10));\n }\n }\n // todo: animation ` If the .fade and .in classes are present on the element,\n // the alert will fade out before it is removed`\n /**\n * Closes an alert by removing it from the DOM.\n * @return {?}\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this.onClose.emit(this);\n this.isOpen = false;\n this.changeDetection.markForCheck();\n this.onClosed.emit(this);\n }\n}\nAlertComponent.ɵfac = function AlertComponent_Factory(t) { return new (t || AlertComponent)(ɵngcc0.ɵɵdirectiveInject(AlertConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nAlertComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AlertComponent, selectors: [[\"alert\"], [\"bs-alert\"]], inputs: { type: \"type\", dismissible: \"dismissible\", isOpen: \"isOpen\", dismissOnTimeout: \"dismissOnTimeout\" }, outputs: { onClose: \"onClose\", onClosed: \"onClosed\" }, ngContentSelectors: _c0, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [\"role\", \"alert\", 3, \"ngClass\"], [\"type\", \"button\", \"aria-label\", \"Close\", 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"], [1, \"sr-only\"]], template: function AlertComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, AlertComponent_ng_template_0_Template, 3, 4, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, dependencies: [ɵngcc1.NgClass, ɵngcc1.NgIf], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nAlertComponent.ctorParameters = () => [\n { type: AlertConfig },\n { type: ChangeDetectorRef }\n];\nAlertComponent.propDecorators = {\n type: [{ type: Input }],\n dismissible: [{ type: Input }],\n dismissOnTimeout: [{ type: Input }],\n isOpen: [{ type: Input }],\n onClose: [{ type: Output }],\n onClosed: [{ type: Output }]\n};\n__decorate([\n OnChange(),\n __metadata(\"design:type\", Object)\n], AlertComponent.prototype, \"dismissible\", void 0);\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AlertConfig, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AlertComponent, [{\n type: Component,\n args: [{\n selector: 'alert,bs-alert',\n template: \"\\n
\\n \\n \\n \\n \\n
\\n
\\n\",\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return [{ type: AlertConfig }, { type: ɵngcc0.ChangeDetectorRef }]; }, { type: [{\n type: Input\n }], dismissible: [{\n type: Input\n }], isOpen: [{\n type: Input\n }], onClose: [{\n type: Output\n }], onClosed: [{\n type: Output\n }], dismissOnTimeout: [{\n type: Input\n }] }); })();\nif (false) {\n /**\n * Alert type.\n * Provides one of four bootstrap supported contextual classes:\n * `success`, `info`, `warning` and `danger`\n * @type {?}\n */\n AlertComponent.prototype.type;\n /**\n * If set, displays an inline \"Close\" button\n * @type {?}\n */\n AlertComponent.prototype.dismissible;\n /**\n * Number in milliseconds, after which alert will be closed\n * @type {?}\n */\n AlertComponent.prototype.dismissOnTimeout;\n /**\n * Is alert visible\n * @type {?}\n */\n AlertComponent.prototype.isOpen;\n /**\n * This event fires immediately after close instance method is called,\n * $event is an instance of Alert component.\n * @type {?}\n */\n AlertComponent.prototype.onClose;\n /**\n * This event fires when alert closed, $event is an instance of Alert component\n * @type {?}\n */\n AlertComponent.prototype.onClosed;\n /** @type {?} */\n AlertComponent.prototype.classes;\n /** @type {?} */\n AlertComponent.prototype.dismissibleChange;\n /**\n * @type {?}\n * @private\n */\n AlertComponent.prototype.changeDetection;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass AlertModule {\n /**\n * @return {?}\n */\n static forRoot() {\n return { ngModule: AlertModule, providers: [AlertConfig] };\n }\n}\nAlertModule.ɵfac = function AlertModule_Factory(t) { return new (t || AlertModule)(); };\nAlertModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AlertModule });\nAlertModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AlertModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n entryComponents: [AlertComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AlertModule, { declarations: function () { return [AlertComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [AlertComponent]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { AlertComponent, AlertConfig, AlertModule };\n\n","import { style, animate, AnimationBuilder } from '@angular/animations';\nimport { EventEmitter, Directive, ElementRef, Renderer2, Output, HostBinding, Input, NgModule } from '@angular/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/animations';\nconst COLLAPSE_ANIMATION_TIMING = '400ms cubic-bezier(0.4,0.0,0.2,1)';\n/** @type {?} */\nconst expandAnimation = [\n style({ height: 0, visibility: 'hidden' }),\n animate(COLLAPSE_ANIMATION_TIMING, style({ height: '*', visibility: 'visible' }))\n];\n/** @type {?} */\nconst collapseAnimation = [\n style({ height: '*', visibility: 'visible' }),\n animate(COLLAPSE_ANIMATION_TIMING, style({ height: 0, visibility: 'hidden' }))\n];\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass CollapseDirective {\n /**\n * @param {?} _el\n * @param {?} _renderer\n * @param {?} _builder\n */\n constructor(_el, _renderer, _builder) {\n this._el = _el;\n this._renderer = _renderer;\n /**\n * This event fires as soon as content collapses\n */\n this.collapsed = new EventEmitter();\n /**\n * This event fires when collapsing is started\n */\n this.collapses = new EventEmitter();\n /**\n * This event fires as soon as content becomes visible\n */\n this.expanded = new EventEmitter();\n /**\n * This event fires when expansion is started\n */\n this.expands = new EventEmitter();\n // shown\n this.isExpanded = true;\n this.collapseNewValue = true;\n // hidden\n this.isCollapsed = false;\n // stale state\n this.isCollapse = true;\n // animation state\n this.isCollapsing = false;\n /**\n * turn on/off animation\n */\n this.isAnimated = false;\n this._display = 'block';\n this._stylesLoaded = false;\n this._COLLAPSE_ACTION_NAME = 'collapse';\n this._EXPAND_ACTION_NAME = 'expand';\n this._factoryCollapseAnimation = _builder.build(collapseAnimation);\n this._factoryExpandAnimation = _builder.build(expandAnimation);\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set display(value) {\n if (!this.isAnimated) {\n this._renderer.setStyle(this._el.nativeElement, 'display', value);\n return;\n }\n this._display = value;\n if (value === 'none') {\n this.hide();\n return;\n }\n this.show();\n }\n /**\n * A flag indicating visibility of content (shown or hidden)\n * @param {?} value\n * @return {?}\n */\n set collapse(value) {\n this.collapseNewValue = value;\n if (!this._player || this._isAnimationDone) {\n this.isExpanded = value;\n this.toggle();\n }\n }\n /**\n * @return {?}\n */\n get collapse() {\n return this.isExpanded;\n }\n /**\n * @return {?}\n */\n ngAfterViewChecked() {\n this._stylesLoaded = true;\n if (!this._player || !this._isAnimationDone) {\n return;\n }\n this._player.reset();\n this._renderer.setStyle(this._el.nativeElement, 'height', '*');\n }\n /**\n * allows to manually toggle content visibility\n * @return {?}\n */\n toggle() {\n if (this.isExpanded) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n /**\n * allows to manually hide content\n * @return {?}\n */\n hide() {\n this.isCollapsing = true;\n this.isExpanded = false;\n this.isCollapsed = true;\n this.isCollapsing = false;\n this.collapses.emit(this);\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated, this._COLLAPSE_ACTION_NAME)((/**\n * @return {?}\n */\n () => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.show();\n return;\n }\n this.collapsed.emit(this);\n this._renderer.setStyle(this._el.nativeElement, 'display', 'none');\n }));\n }\n /**\n * allows to manually show collapsed content\n * @return {?}\n */\n show() {\n this._renderer.setStyle(this._el.nativeElement, 'display', this._display);\n this.isCollapsing = true;\n this.isExpanded = true;\n this.isCollapsed = false;\n this.isCollapsing = false;\n this.expands.emit(this);\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated, this._EXPAND_ACTION_NAME)((/**\n * @return {?}\n */\n () => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.hide();\n return;\n }\n this.expanded.emit(this);\n this._renderer.removeStyle(this._el.nativeElement, 'overflow');\n }));\n }\n /**\n * @param {?} isAnimated\n * @param {?} action\n * @return {?}\n */\n animationRun(isAnimated, action) {\n if (!isAnimated || !this._stylesLoaded) {\n return (/**\n * @param {?} callback\n * @return {?}\n */\n (callback) => callback());\n }\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'hidden');\n this._renderer.addClass(this._el.nativeElement, 'collapse');\n /** @type {?} */\n const factoryAnimation = (action === this._EXPAND_ACTION_NAME)\n ? this._factoryExpandAnimation\n : this._factoryCollapseAnimation;\n if (this._player) {\n this._player.destroy();\n }\n this._player = factoryAnimation.create(this._el.nativeElement);\n this._player.play();\n return (/**\n * @param {?} callback\n * @return {?}\n */\n (callback) => this._player.onDone(callback));\n }\n}\nCollapseDirective.ɵfac = function CollapseDirective_Factory(t) { return new (t || CollapseDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.AnimationBuilder)); };\nCollapseDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CollapseDirective, selectors: [[\"\", \"collapse\", \"\"]], hostVars: 10, hostBindings: function CollapseDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.isExpanded)(\"aria-hidden\", ctx.isCollapsed);\n ɵngcc0.ɵɵclassProp(\"collapse\", ctx.isCollapse)(\"in\", ctx.isExpanded)(\"show\", ctx.isExpanded)(\"collapsing\", ctx.isCollapsing);\n } }, inputs: { isAnimated: \"isAnimated\", display: \"display\", collapse: \"collapse\" }, outputs: { collapsed: \"collapsed\", collapses: \"collapses\", expanded: \"expanded\", expands: \"expands\" }, exportAs: [\"bs-collapse\"] });\n/** @nocollapse */\nCollapseDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: AnimationBuilder }\n];\nCollapseDirective.propDecorators = {\n collapsed: [{ type: Output }],\n collapses: [{ type: Output }],\n expanded: [{ type: Output }],\n expands: [{ type: Output }],\n isExpanded: [{ type: HostBinding, args: ['class.in',] }, { type: HostBinding, args: ['class.show',] }, { type: HostBinding, args: ['attr.aria-expanded',] }],\n isCollapsed: [{ type: HostBinding, args: ['attr.aria-hidden',] }],\n isCollapse: [{ type: HostBinding, args: ['class.collapse',] }],\n isCollapsing: [{ type: HostBinding, args: ['class.collapsing',] }],\n display: [{ type: Input }],\n isAnimated: [{ type: Input }],\n collapse: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CollapseDirective, [{\n type: Directive,\n args: [{\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n host: {\n '[class.collapse]': 'true'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.AnimationBuilder }]; }, { collapsed: [{\n type: Output\n }], collapses: [{\n type: Output\n }], expanded: [{\n type: Output\n }], expands: [{\n type: Output\n }], isExpanded: [{\n type: HostBinding,\n args: ['class.in']\n }, {\n type: HostBinding,\n args: ['class.show']\n }, {\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], isCollapsed: [{\n type: HostBinding,\n args: ['attr.aria-hidden']\n }], isCollapse: [{\n type: HostBinding,\n args: ['class.collapse']\n }], isCollapsing: [{\n type: HostBinding,\n args: ['class.collapsing']\n }], isAnimated: [{\n type: Input\n }], display: [{\n type: Input\n }], collapse: [{\n type: Input\n }] }); })();\nif (false) {\n /**\n * This event fires as soon as content collapses\n * @type {?}\n */\n CollapseDirective.prototype.collapsed;\n /**\n * This event fires when collapsing is started\n * @type {?}\n */\n CollapseDirective.prototype.collapses;\n /**\n * This event fires as soon as content becomes visible\n * @type {?}\n */\n CollapseDirective.prototype.expanded;\n /**\n * This event fires when expansion is started\n * @type {?}\n */\n CollapseDirective.prototype.expands;\n /** @type {?} */\n CollapseDirective.prototype.isExpanded;\n /** @type {?} */\n CollapseDirective.prototype.collapseNewValue;\n /** @type {?} */\n CollapseDirective.prototype.isCollapsed;\n /** @type {?} */\n CollapseDirective.prototype.isCollapse;\n /** @type {?} */\n CollapseDirective.prototype.isCollapsing;\n /**\n * turn on/off animation\n * @type {?}\n */\n CollapseDirective.prototype.isAnimated;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._display;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._factoryCollapseAnimation;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._factoryExpandAnimation;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._isAnimationDone;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._player;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._stylesLoaded;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._COLLAPSE_ACTION_NAME;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._EXPAND_ACTION_NAME;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._el;\n /**\n * @type {?}\n * @private\n */\n CollapseDirective.prototype._renderer;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass CollapseModule {\n /**\n * @return {?}\n */\n static forRoot() {\n return { ngModule: CollapseModule, providers: [] };\n }\n}\nCollapseModule.ɵfac = function CollapseModule_Factory(t) { return new (t || CollapseModule)(); };\nCollapseModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CollapseModule });\nCollapseModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CollapseModule, [{\n type: NgModule,\n args: [{\n declarations: [CollapseDirective],\n exports: [CollapseDirective]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CollapseModule, { declarations: [CollapseDirective], exports: [CollapseDirective] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { CollapseDirective, CollapseModule };\n\n","import { EventEmitter, Injector, ElementRef, TemplateRef, Injectable, ComponentFactoryResolver, NgZone, ApplicationRef } from '@angular/core';\nimport { listenToTriggersV2, registerOutsideClick, registerEscClick } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template T\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from 'ngx-bootstrap/positioning';\nclass BsComponentRef {\n}\nif (false) {\n /** @type {?} */\n BsComponentRef.prototype.templateRef;\n /** @type {?} */\n BsComponentRef.prototype.viewContainer;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass ContentRef {\n /**\n * @param {?} nodes\n * @param {?=} viewRef\n * @param {?=} componentRef\n */\n constructor(\n /* tslint:disable-next-line: no-any */\n nodes, viewRef, \n /* tslint:disable-next-line: no-any */\n componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\nif (false) {\n /** @type {?} */\n ContentRef.prototype.nodes;\n /** @type {?} */\n ContentRef.prototype.viewRef;\n /** @type {?} */\n ContentRef.prototype.componentRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template T\n */\nclass ComponentLoader {\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * \\@internal\n * @param {?} _viewContainerRef\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _injector\n * @param {?} _componentFactoryResolver\n * @param {?} _ngZone\n * @param {?} _applicationRef\n * @param {?} _posService\n */\n // tslint:disable-next-line\n constructor(_viewContainerRef, _renderer, _elementRef, _injector, _componentFactoryResolver, _ngZone, _applicationRef, _posService) {\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._injector = _injector;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._applicationRef = _applicationRef;\n this._posService = _posService;\n this.onBeforeShow = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n this.onShown = new EventEmitter();\n /* tslint:disable-next-line: no-any*/\n this.onBeforeHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this._providers = [];\n this._isHiding = false;\n /**\n * A selector used if container element was not found\n */\n this.containerDefaultSelector = 'body';\n this._listenOpts = {};\n this._globalListener = Function.prototype;\n }\n /**\n * @return {?}\n */\n get isShown() {\n if (this._isHiding) {\n return false;\n }\n return !!this._componentRef;\n }\n /**\n * @param {?} compType\n * @return {?}\n */\n attach(compType) {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory(compType);\n return this;\n }\n // todo: add behaviour: to target element, `body`, custom element\n /**\n * @param {?=} container\n * @return {?}\n */\n to(container) {\n this.container = container || this.container;\n return this;\n }\n /**\n * @param {?=} opts\n * @return {?}\n */\n position(opts) {\n this.attachment = opts.attachment || this.attachment;\n /* tslint:disable-next-line: no-unnecessary-type-assertion */\n this._elementRef = ((/** @type {?} */ (opts.target))) || this._elementRef;\n return this;\n }\n /**\n * @param {?} provider\n * @return {?}\n */\n provide(provider) {\n this._providers.push(provider);\n return this;\n }\n // todo: appendChild to element or document.querySelector(this.container)\n /**\n * @param {?=} opts\n * @return {?}\n */\n show(opts = {}) {\n this._subscribePositioning();\n this._innerComponent = null;\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n /** @type {?} */\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n Object.assign(this._componentRef.instance, opts);\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\n /** @type {?} */\n const selectedElement = document.querySelector(this.container) ||\n document.querySelector(this.containerDefaultSelector);\n selectedElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (!this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement);\n }\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n this._registerOutsideClick();\n return this._componentRef;\n }\n /**\n * @return {?}\n */\n hide() {\n if (!this._componentRef) {\n return this;\n }\n this._posService.deletePositionElement(this._componentRef.location);\n this.onBeforeHide.emit(this._componentRef.instance);\n /** @type {?} */\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n this.onHidden.emit();\n return this;\n }\n /**\n * @return {?}\n */\n toggle() {\n if (this.isShown) {\n this.hide();\n return;\n }\n this.show();\n }\n /**\n * @return {?}\n */\n dispose() {\n if (this.isShown) {\n this.hide();\n }\n this._unsubscribePositioning();\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n /**\n * @param {?} listenOpts\n * @return {?}\n */\n listen(listenOpts) {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n /** @type {?} */\n const hide = (this._listenOpts.hide = (/**\n * @return {?}\n */\n () => listenOpts.hide ? listenOpts.hide() : void this.hide()));\n /** @type {?} */\n const show = (this._listenOpts.show = (/**\n * @param {?} registerHide\n * @return {?}\n */\n (registerHide) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n }));\n /** @type {?} */\n const toggle = (/**\n * @param {?} registerHide\n * @return {?}\n */\n (registerHide) => {\n this.isShown ? hide() : show(registerHide);\n });\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n return this;\n }\n /**\n * @return {?}\n */\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n /**\n * @param {?} vRef\n * @param {?} template\n * @return {?}\n */\n attachInline(vRef, \n /* tslint:disable-next-line: no-any*/\n template) {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n return this;\n }\n /**\n * @return {?}\n */\n _registerOutsideClick() {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n /** @type {?} */\n const target = this._componentRef.location.nativeElement;\n setTimeout((/**\n * @return {?}\n */\n () => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: (/**\n * @return {?}\n */\n () => this._listenOpts.hide())\n });\n }));\n }\n if (this._listenOpts.outsideEsc) {\n /** @type {?} */\n const target = this._componentRef.location.nativeElement;\n this._globalListener = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: (/**\n * @return {?}\n */\n () => this._listenOpts.hide())\n });\n }\n }\n /**\n * @return {?}\n */\n getInnerComponent() {\n return this._innerComponent;\n }\n /**\n * @private\n * @return {?}\n */\n _subscribePositioning() {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n this.onShown.subscribe((/**\n * @return {?}\n */\n () => {\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n }));\n this._zoneSubscription = this._ngZone.onStable.subscribe((/**\n * @return {?}\n */\n () => {\n if (!this._componentRef) {\n return;\n }\n this._posService.calcPosition();\n }));\n }\n /**\n * @private\n * @return {?}\n */\n _unsubscribePositioning() {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n /**\n * @private\n * @param {?} content\n * @param {?=} context\n * @param {?=} initialState\n * @return {?}\n */\n _getContentRef(\n /* tslint:disable-next-line: no-any*/\n content, \n /* tslint:disable-next-line: no-any*/\n context, \n /* tslint:disable-next-line: no-any*/\n initialState) {\n if (!content) {\n return new ContentRef([]);\n }\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n /** @type {?} */\n const _viewRef = this._viewContainerRef\n .createEmbeddedView(content, context);\n _viewRef.markForCheck();\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n /** @type {?} */\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n if (typeof content === 'function') {\n /** @type {?} */\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n /** @type {?} */\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n /** @type {?} */\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n }\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\nif (false) {\n /** @type {?} */\n ComponentLoader.prototype.onBeforeShow;\n /** @type {?} */\n ComponentLoader.prototype.onShown;\n /** @type {?} */\n ComponentLoader.prototype.onBeforeHide;\n /** @type {?} */\n ComponentLoader.prototype.onHidden;\n /** @type {?} */\n ComponentLoader.prototype.instance;\n /** @type {?} */\n ComponentLoader.prototype._componentRef;\n /** @type {?} */\n ComponentLoader.prototype._inlineViewRef;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._providers;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._componentFactory;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._zoneSubscription;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._contentRef;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._innerComponent;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._unregisterListenersFn;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._isHiding;\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n * @type {?}\n * @private\n */\n ComponentLoader.prototype.attachment;\n /**\n * A selector specifying the element the popover should be appended to.\n * @type {?}\n * @private\n */\n ComponentLoader.prototype.container;\n /**\n * A selector used if container element was not found\n * @type {?}\n * @private\n */\n ComponentLoader.prototype.containerDefaultSelector;\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n * @type {?}\n * @private\n */\n ComponentLoader.prototype.triggers;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._listenOpts;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._globalListener;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._viewContainerRef;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._elementRef;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._injector;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._componentFactoryResolver;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._ngZone;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._applicationRef;\n /**\n * @type {?}\n * @private\n */\n ComponentLoader.prototype._posService;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass ComponentLoaderFactory {\n /**\n * @param {?} _componentFactoryResolver\n * @param {?} _ngZone\n * @param {?} _injector\n * @param {?} _posService\n * @param {?} _applicationRef\n */\n constructor(_componentFactoryResolver, _ngZone, _injector, _posService, _applicationRef) {\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._injector = _injector;\n this._posService = _posService;\n this._applicationRef = _applicationRef;\n }\n /**\n *\n * @template T\n * @param {?} _elementRef\n * @param {?} _viewContainerRef\n * @param {?} _renderer\n * @return {?}\n */\n createLoader(_elementRef, _viewContainerRef, _renderer) {\n return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._componentFactoryResolver, this._ngZone, this._applicationRef, this._posService);\n }\n}\nComponentLoaderFactory.ɵfac = function ComponentLoaderFactory_Factory(t) { return new (t || ComponentLoaderFactory)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc1.PositioningService), ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef)); };\nComponentLoaderFactory.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ComponentLoaderFactory, factory: ComponentLoaderFactory.ɵfac });\n/** @nocollapse */\nComponentLoaderFactory.ctorParameters = () => [\n { type: ComponentFactoryResolver },\n { type: NgZone },\n { type: Injector },\n { type: PositioningService },\n { type: ApplicationRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ComponentLoaderFactory, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Injector }, { type: ɵngcc1.PositioningService }, { type: ɵngcc0.ApplicationRef }]; }, null); })();\nif (false) {\n /**\n * @type {?}\n * @private\n */\n ComponentLoaderFactory.prototype._componentFactoryResolver;\n /**\n * @type {?}\n * @private\n */\n ComponentLoaderFactory.prototype._ngZone;\n /**\n * @type {?}\n * @private\n */\n ComponentLoaderFactory.prototype._injector;\n /**\n * @type {?}\n * @private\n */\n ComponentLoaderFactory.prototype._posService;\n /**\n * @type {?}\n * @private\n */\n ComponentLoaderFactory.prototype._applicationRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { BsComponentRef, ComponentLoader, ComponentLoaderFactory, ContentRef };\n\n","import { Injectable, NgZone, RendererFactory2, Inject, PLATFORM_ID, ElementRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, merge, fromEvent, of, animationFrameScheduler } from 'rxjs';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Get CSS computed property of the given element\n * @param {?} element\n * @param {?=} property\n * @return {?}\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n /** @type {?} */\n const window = element.ownerDocument.defaultView;\n /** @type {?} */\n const css = window.getComputedStyle(element, null);\n return property ? css[(/** @type {?} */ (property))] : css;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Returns the parentNode or the host of the element\n * @param {?} element\n * @return {?}\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst isIE11 = isBrowser && !!(((/** @type {?} */ (window))).MSInputMethodContext && ((/** @type {?} */ (document))).documentMode);\n/** @type {?} */\nconst isIE10 = isBrowser && !!(((/** @type {?} */ (window))).MSInputMethodContext && /MSIE 10/.test(((/** @type {?} */ (navigator))).userAgent));\n/**\n * @param {?=} version\n * @return {?}\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n /** @type {?} */\n const noOffsetParent = isIE(10) ? document.body : null;\n // NOTE: 1 DOM access here\n /** @type {?} */\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n /** @type {?} */\n let sibling;\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n sibling = element.nextElementSibling;\n offsetParent = sibling.offsetParent;\n }\n /** @type {?} */\n const nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @param {?} node\n * @return {?}\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element1\n * @param {?} element2\n * @return {?}\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n /* tslint:disable-next-line: no-bitwise */\n /** @type {?} */\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n /** @type {?} */\n const start = order ? element1 : element2;\n /** @type {?} */\n const end = order ? element2 : element1;\n // Get common ancestor container\n /** @type {?} */\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n // Both nodes are inside #document\n if ((element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n // one of the nodes is inside shadowDOM, find which one\n /** @type {?} */\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n }\n else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Helper to detect borders of a given element\n */\n/**\n * @param {?} styles\n * @param {?} axis\n * @return {?}\n */\nfunction getBordersSize(styles, axis) {\n /** @type {?} */\n const sideA = axis === 'x' ? 'Left' : 'Top';\n /** @type {?} */\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return (parseFloat(styles[(/** @type {?} */ (`border${sideA}Width`))]) +\n parseFloat(styles[(/** @type {?} */ (`border${sideB}Width`))]));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} axis\n * @param {?} body\n * @param {?} html\n * @param {?} computedStyle\n * @return {?}\n */\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(((/** @type {?} */ (body)))[`offset${axis}`], ((/** @type {?} */ (body)))[`scroll${axis}`], ((/** @type {?} */ (html)))[`client${axis}`], ((/** @type {?} */ (html)))[`offset${axis}`], ((/** @type {?} */ (html)))[`scroll${axis}`], isIE(10)\n ? (parseInt(((/** @type {?} */ (html)))[`offset${axis}`], 10) +\n parseInt(computedStyle[(/** @type {?} */ (`margin${axis === 'Height' ? 'Top' : 'Left'}`))], 10) +\n parseInt(computedStyle[(/** @type {?} */ (`margin${axis === 'Height' ? 'Bottom' : 'Right'}`))], 10))\n : 0);\n}\n/**\n * @param {?} document\n * @return {?}\n */\nfunction getWindowSizes(document) {\n /** @type {?} */\n const body = document.body;\n /** @type {?} */\n const html = document.documentElement;\n /** @type {?} */\n const computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @param {?} element\n * @param {?=} side\n * @return {?}\n */\nfunction getScroll(element, side = 'top') {\n /** @type {?} */\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n /** @type {?} */\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n /** @type {?} */\n const html = element.ownerDocument.documentElement;\n /** @type {?} */\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} offsets\n * @return {?}\n */\nfunction getClientRect(offsets) {\n return Object.assign({}, offsets, { right: offsets.left + offsets.width, bottom: offsets.top + offsets.height });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction getBoundingClientRect(element) {\n /** @type {?} */\n let rect = {};\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n /** @type {?} */\n const scrollTop = getScroll(element, 'top');\n /** @type {?} */\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch (e) {\n return undefined;\n }\n /** @type {?} */\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n // subtract scrollbar size from sizes\n /** @type {?} */\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n /** @type {?} */\n const width = sizes.width || element.clientWidth || result.right - result.left;\n /** @type {?} */\n const height = sizes.height || element.clientHeight || result.bottom - result.top;\n /** @type {?} */\n let horizScrollbar = element.offsetWidth - width;\n /** @type {?} */\n let vertScrollbar = element.offsetHeight - height;\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n /** @type {?} */\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} rect\n * @param {?} element\n * @param {?=} subtract\n * @return {?}\n */\nfunction includeScroll(rect, element, subtract = false) {\n /** @type {?} */\n const scrollTop = getScroll(element, 'top');\n /** @type {?} */\n const scrollLeft = getScroll(element, 'left');\n /** @type {?} */\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} children\n * @param {?} parent\n * @param {?=} fixedPosition\n * @return {?}\n */\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n /** @type {?} */\n const isIE10 = isIE(10);\n /** @type {?} */\n const isHTML = parent.nodeName === 'HTML';\n /** @type {?} */\n const childrenRect = getBoundingClientRect(children);\n /** @type {?} */\n const parentRect = getBoundingClientRect(parent);\n /** @type {?} */\n const scrollParent = getScrollParent(children);\n /** @type {?} */\n const styles = getStyleComputedProperty(parent);\n /** @type {?} */\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n /** @type {?} */\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n /** @type {?} */\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n /** @type {?} */\n const marginTop = parseFloat(styles.marginTop);\n /** @type {?} */\n const marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n if (isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n return offsets;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @param {?=} excludeScroll\n * @return {?}\n */\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n /** @type {?} */\n const html = element.ownerDocument.documentElement;\n /** @type {?} */\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n /** @type {?} */\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n /** @type {?} */\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n /** @type {?} */\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n /** @type {?} */\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n /** @type {?} */\n const offset = {\n top: scrollTop - Number(relativeOffset.top) + Number(relativeOffset.marginTop),\n left: scrollLeft - Number(relativeOffset.left) + Number(relativeOffset.marginLeft),\n width,\n height\n };\n return getClientRect(offset);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction isFixed(element) {\n /** @type {?} */\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @return {?}\n */\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n /** @type {?} */\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} target\n * @param {?} host\n * @param {?=} padding\n * @param {?=} boundariesElement\n * @param {?=} fixedPosition\n * @return {?}\n */\nfunction getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {\n // NOTE: 1 DOM access here\n // NOTE: 1 DOM access here\n /** @type {?} */\n let boundaries = { top: 0, left: 0 };\n /** @type {?} */\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n else {\n // Handle other cases based on DOM element used as boundaries\n /** @type {?} */\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n }\n else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n else {\n boundariesNode = boundariesElement;\n }\n /** @type {?} */\n const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = Number(height) + Number(offsets.top);\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = Number(width) + Number(offsets.left);\n }\n else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n return boundaries;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction getArea({ width, height }) {\n return width * height;\n}\n/**\n * @param {?} placement\n * @param {?} refRect\n * @param {?} target\n * @param {?} host\n * @param {?=} allowedPositions\n * @param {?=} boundariesElement\n * @param {?=} padding\n * @return {?}\n */\nfunction computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'bottom', 'right', 'left'], boundariesElement = 'viewport', padding = 0) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n /** @type {?} */\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n /** @type {?} */\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n /** @type {?} */\n const sortedAreas = Object.keys(rects)\n .map((/**\n * @param {?} key\n * @return {?}\n */\n key => (Object.assign({ key }, rects[key], { area: getArea(rects[key]) }))))\n .sort((/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n (a, b) => b.area - a.area));\n /** @type {?} */\n let filteredAreas = sortedAreas.filter((/**\n * @param {?} __0\n * @return {?}\n */\n ({ width, height }) => {\n return width >= target.clientWidth\n && height >= target.clientHeight;\n }));\n filteredAreas = filteredAreas.filter((/**\n * @param {?} position\n * @return {?}\n */\n (position) => {\n return allowedPositions\n .some((/**\n * @param {?} allowedPosition\n * @return {?}\n */\n (allowedPosition) => {\n return allowedPosition === position.key;\n }));\n }));\n /** @type {?} */\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n /** @type {?} */\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${computedPlacement}`);\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @return {?}\n */\nfunction getOffsets(data) {\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor(data.offsets.target.left),\n top: Math.round(data.offsets.target.top),\n bottom: Math.round(data.offsets.target.bottom),\n right: Math.floor(data.offsets.target.right)\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Get the opposite placement of the given one\n * @param {?} placement\n * @return {?}\n */\nfunction getOppositePlacement(placement) {\n /** @type {?} */\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, (/**\n * @param {?} matched\n * @return {?}\n */\n matched => ((/** @type {?} */ (hash)))[matched]));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Get the opposite placement variation of the given one\n * @param {?} variation\n * @return {?}\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'right') {\n return 'left';\n }\n else if (variation === 'left') {\n return 'right';\n }\n return variation;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @param {?} element\n * @return {?}\n */\nfunction getOuterSizes(element) {\n /** @type {?} */\n const window = element.ownerDocument.defaultView;\n /** @type {?} */\n const styles = window.getComputedStyle(element);\n /** @type {?} */\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n /** @type {?} */\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} target\n * @param {?} host\n * @param {?=} fixedPosition\n * @return {?}\n */\nfunction getReferenceOffsets(target, host, fixedPosition = null) {\n /** @type {?} */\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} target\n * @param {?} hostOffsets\n * @param {?} position\n * @return {?}\n */\nfunction getTargetOffsets(target, hostOffsets, position) {\n /** @type {?} */\n const placement = position.split(' ')[0];\n // Get target node sizes\n /** @type {?} */\n const targetRect = getOuterSizes(target);\n // Add position, width and height to our offsets object\n /** @type {?} */\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n // depending by the target placement we have to compute its offsets slightly differently\n /** @type {?} */\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n /** @type {?} */\n const mainSide = isHoriz ? 'top' : 'left';\n /** @type {?} */\n const secondarySide = isHoriz ? 'left' : 'top';\n /** @type {?} */\n const measurement = isHoriz ? 'height' : 'width';\n /** @type {?} */\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n ((/** @type {?} */ (targetOffsets)))[mainSide] =\n hostOffsets[mainSide] +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n ((/** @type {?} */ (targetOffsets)))[secondarySide] = placement === secondarySide\n ? hostOffsets[secondarySide] - targetRect[secondaryMeasurement]\n : ((/** @type {?} */ (hostOffsets)))[getOppositePlacement(secondarySide)];\n return targetOffsets;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Helper used to know if the given modifier is enabled.\n * @param {?} options\n * @param {?} modifierName\n * @return {?}\n */\nfunction isModifierEnabled(options, modifierName) {\n return options\n && options.modifiers\n && options.modifiers[modifierName]\n && options.modifiers[modifierName].enabled;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Tells if a given input is a number\n * @param {?} n\n * @return {?}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @param {?=} renderer\n * @return {?}\n */\nfunction updateContainerClass(data, renderer) {\n /** @type {?} */\n const target = data.instance.target;\n /** @type {?} */\n let containerClass = target.className;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${data.placement}`);\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${data.placement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${data.placement}`);\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom/g, `${data.placement.split(' ')[0]}`);\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n return;\n }\n target.className = containerClass;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} element\n * @param {?} styles\n * @param {?=} renderer\n * @return {?}\n */\nfunction setStyles(element, styles, renderer) {\n Object.keys(styles).forEach((/**\n * @param {?} prop\n * @return {?}\n */\n (prop) => {\n /** @type {?} */\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop])) {\n unit = 'px';\n }\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n return;\n }\n element.style[prop] = String(styles[prop]) + unit;\n }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @return {?}\n */\nfunction arrow(data) {\n /** @type {?} */\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n /** @type {?} */\n const arrowElement = data.instance.target.querySelector('.arrow');\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n /** @type {?} */\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n /** @type {?} */\n const len = isVertical ? 'height' : 'width';\n /** @type {?} */\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n /** @type {?} */\n const side = sideCapitalized.toLowerCase();\n /** @type {?} */\n const altSide = isVertical ? 'left' : 'top';\n /** @type {?} */\n const opSide = isVertical ? 'bottom' : 'right';\n /** @type {?} */\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n /** @type {?} */\n const placementVariation = data.placement.split(' ')[1];\n // top/left side\n if (data.offsets.host[opSide] - arrowElementSize < ((/** @type {?} */ (targetOffsets)))[side]) {\n ((/** @type {?} */ (targetOffsets)))[side] -=\n ((/** @type {?} */ (targetOffsets)))[side] - (data.offsets.host[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (Number(((/** @type {?} */ (data))).offsets.host[side]) + Number(arrowElementSize) > ((/** @type {?} */ (targetOffsets)))[opSide]) {\n ((/** @type {?} */ (targetOffsets)))[side] +=\n Number(((/** @type {?} */ (data))).offsets.host[side]) + Number(arrowElementSize) - Number(((/** @type {?} */ (targetOffsets)))[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n /** @type {?} */\n const css = getStyleComputedProperty(data.instance.target);\n /** @type {?} */\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n /** @type {?} */\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n // compute center of the target\n /** @type {?} */\n let center;\n if (!placementVariation) {\n center = Number(((/** @type {?} */ (data))).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n }\n else {\n /** @type {?} */\n const targetBorderRadius = parseFloat(css.borderRadius);\n /** @type {?} */\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number(((/** @type {?} */ (data))).offsets.host[side]) + targetSideArrowOffset :\n Number(((/** @type {?} */ (data))).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n /** @type {?} */\n let sideValue = center - ((/** @type {?} */ (targetOffsets)))[side] - targetMarginSide - targetBorderSide;\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - arrowElementSize, sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n data.instance.arrow = arrowElement;\n return data;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @return {?}\n */\nfunction flip(data) {\n data.offsets.target = getClientRect(data.offsets.target);\n if (!isModifierEnabled(data.options, 'flip')) {\n data.offsets.target = Object.assign({}, data.offsets.target, getTargetOffsets(data.instance.target, data.offsets.host, data.placement));\n return data;\n }\n /** @type {?} */\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n 'viewport', false // positionFixed\n );\n /** @type {?} */\n let placement = data.placement.split(' ')[0];\n /** @type {?} */\n let variation = data.placement.split(' ')[1] || '';\n /** @type {?} */\n const offsetsHost = data.offsets.host;\n /** @type {?} */\n const target = data.instance.target;\n /** @type {?} */\n const host = data.instance.host;\n /** @type {?} */\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n /** @type {?} */\n const flipOrder = [placement, adaptivePosition];\n /* tslint:disable-next-line: cyclomatic-complexity */\n flipOrder.forEach((/**\n * @param {?} step\n * @param {?} index\n * @return {?}\n */\n (step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n placement = data.placement.split(' ')[0];\n // using floor because the host offsets may contain decimals we are not going to consider here\n /** @type {?} */\n const overlapsRef = (placement === 'left' &&\n Math.floor(data.offsets.target.right) > Math.floor(data.offsets.host.left)) ||\n (placement === 'right' &&\n Math.floor(data.offsets.target.left) < Math.floor(data.offsets.host.right)) ||\n (placement === 'top' &&\n Math.floor(data.offsets.target.bottom) > Math.floor(data.offsets.host.top)) ||\n (placement === 'bottom' &&\n Math.floor(data.offsets.target.top) < Math.floor(data.offsets.host.bottom));\n /** @type {?} */\n const overflowsLeft = Math.floor(data.offsets.target.left) < Math.floor(boundaries.left);\n /** @type {?} */\n const overflowsRight = Math.floor(data.offsets.target.right) > Math.floor(boundaries.right);\n /** @type {?} */\n const overflowsTop = Math.floor(data.offsets.target.top) < Math.floor(boundaries.top);\n /** @type {?} */\n const overflowsBottom = Math.floor(data.offsets.target.bottom) > Math.floor(boundaries.bottom);\n /** @type {?} */\n const overflowsBoundaries = (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n // flip the variation if required\n /** @type {?} */\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n /** @type {?} */\n const flippedVariation = ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? ` ${variation}` : '');\n data.offsets.target = Object.assign({}, data.offsets.target, getTargetOffsets(data.instance.target, data.offsets.host, data.placement));\n }\n }));\n return data;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} targetElement\n * @param {?} hostElement\n * @param {?} position\n * @param {?} options\n * @return {?}\n */\nfunction initData(targetElement, hostElement, position, options) {\n /** @type {?} */\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom)*$/)\n && !position.match(/^(left|right|top|bottom)*(?: (left|right|top|bottom))?\\s*(start|end)*$/)) {\n /* tslint:disable-next-line: no-parameter-reassignment */\n position = 'auto';\n }\n /** @type {?} */\n const placementAuto = !!position.match(/auto/g);\n // support old placements 'auto left|right|top|bottom'\n /** @type {?} */\n let placement = position.match(/auto\\s(left|right|top|bottom)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n /** @type {?} */\n const matches = placement.match(/^(left|right|top|bottom)* ?(?!\\1)(left|right|top|bottom)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n /** @type {?} */\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement, options ? options.allowedPositions : undefined);\n return {\n options,\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: null\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: null\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @return {?}\n */\nfunction preventOverflow(data) {\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n // NOTE: DOM access here\n // resets the targetOffsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n /** @type {?} */\n const transformProp = 'transform';\n /** @type {?} */\n const targetStyles = data.instance.target.style;\n // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n /** @type {?} */\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n 'scrollParent', false // positionFixed\n );\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n /** @type {?} */\n const order = ['left', 'right', 'top', 'bottom'];\n /** @type {?} */\n const check = {\n /**\n * @param {?} placement\n * @return {?}\n */\n primary(placement) {\n /** @type {?} */\n let value = ((/** @type {?} */ (data))).offsets.target[placement];\n if (((/** @type {?} */ (data))).offsets.target[placement] < boundaries[placement] &&\n !false // options.escapeWithReference\n ) {\n value = Math.max(((/** @type {?} */ (data))).offsets.target[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n /**\n * @param {?} placement\n * @return {?}\n */\n secondary(placement) {\n /** @type {?} */\n const mainSide = placement === 'right' ? 'left' : 'top';\n /** @type {?} */\n let value = data.offsets.target[mainSide];\n if (((/** @type {?} */ (data))).offsets.target[placement] > boundaries[placement] &&\n !false // escapeWithReference\n ) {\n value = Math.min(data.offsets.target[mainSide], boundaries[placement] -\n (placement === 'right' ? data.offsets.target.width : data.offsets.target.height));\n }\n return { [mainSide]: value };\n }\n };\n /** @type {?} */\n let side;\n order.forEach((/**\n * @param {?} placement\n * @return {?}\n */\n placement => {\n side = ['left', 'top']\n .indexOf(placement) !== -1\n ? 'primary'\n : 'secondary';\n data.offsets.target = Object.assign({}, data.offsets.target, ((/** @type {?} */ (check)))[side](placement));\n }));\n return data;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} data\n * @return {?}\n */\nfunction shift(data) {\n /** @type {?} */\n const placement = data.placement;\n /** @type {?} */\n const basePlacement = placement.split(' ')[0];\n /** @type {?} */\n const shiftVariation = placement.split(' ')[1];\n if (shiftVariation) {\n const { host, target } = data.offsets;\n /** @type {?} */\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n /** @type {?} */\n const side = isVertical ? 'left' : 'top';\n /** @type {?} */\n const measurement = isVertical ? 'width' : 'height';\n /** @type {?} */\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: host[side] + host[measurement] - target[measurement]\n }\n };\n data.offsets.target = Object.assign({}, target, {\n [side]: (side === shiftVariation ? ((/** @type {?} */ (shiftOffsets))).start[side] : ((/** @type {?} */ (shiftOffsets))).end[side])\n });\n }\n return data;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass Positioning {\n /**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?=} round\n * @return {?}\n */\n position(hostElement, targetElement, round = true) {\n return this.offset(hostElement, targetElement, false);\n }\n /**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?=} round\n * @return {?}\n */\n offset(hostElement, targetElement, round = true) {\n return getReferenceOffsets(targetElement, hostElement);\n }\n /**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?} position\n * @param {?=} appendToBody\n * @param {?=} options\n * @return {?}\n */\n positionElements(hostElement, targetElement, position, appendToBody, options) {\n /** @type {?} */\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n return chainOfModifiers.reduce((/**\n * @param {?} modifiedData\n * @param {?} modifier\n * @return {?}\n */\n (modifiedData, modifier) => modifier(modifiedData)), initData(targetElement, hostElement, position, options));\n }\n}\n/** @type {?} */\nconst positionService = new Positioning();\n/**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?} placement\n * @param {?=} appendToBody\n * @param {?=} options\n * @param {?=} renderer\n * @return {?}\n */\nfunction positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {\n /** @type {?} */\n const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);\n /** @type {?} */\n const offsets = getOffsets(data);\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n updateContainerClass(data, renderer);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction PositioningOptions() { }\nif (false) {\n /**\n * The DOM element, ElementRef, or a selector string of an element which will be moved\n * @type {?|undefined}\n */\n PositioningOptions.prototype.element;\n /**\n * The DOM element, ElementRef, or a selector string of an element which the element will be attached to\n * @type {?|undefined}\n */\n PositioningOptions.prototype.target;\n /**\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\n * not yet supported:\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\n * - horiz-attachment can be any of 'left', 'center', 'right'\n * @type {?|undefined}\n */\n PositioningOptions.prototype.attachment;\n /**\n * A string similar to `attachment`. The one difference is that, if it's not provided,\n * `targetAttachment` will assume the mirror image of `attachment`.\n * @type {?|undefined}\n */\n PositioningOptions.prototype.targetAttachment;\n /**\n * A string of the form 'vert-offset horiz-offset'\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\n * @type {?|undefined}\n */\n PositioningOptions.prototype.offset;\n /**\n * A string similar to `offset`, but referring to the offset of the target\n * @type {?|undefined}\n */\n PositioningOptions.prototype.targetOffset;\n /**\n * If true component will be attached to body\n * @type {?|undefined}\n */\n PositioningOptions.prototype.appendToBody;\n}\nclass PositioningService {\n /**\n * @param {?} ngZone\n * @param {?} rendererFactory\n * @param {?} platformId\n */\n constructor(ngZone, rendererFactory, platformId) {\n this.update$$ = new Subject();\n this.positionElements = new Map();\n this.isDisabled = false;\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular((/**\n * @return {?}\n */\n () => {\n this.triggerEvent$ = merge(fromEvent(window, 'scroll', { passive: true }), fromEvent(window, 'resize', { passive: true }), \n /* tslint:disable-next-line: deprecation */\n of(0, animationFrameScheduler), this.update$$);\n this.triggerEvent$.subscribe((/**\n * @return {?}\n */\n () => {\n if (this.isDisabled) {\n return;\n }\n this.positionElements\n /* tslint:disable-next-line: no-any */\n .forEach((/**\n * @param {?} positionElement\n * @return {?}\n */\n (positionElement) => {\n positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));\n }));\n }));\n }));\n }\n }\n /**\n * @param {?} options\n * @return {?}\n */\n position(options) {\n this.addPositionElement(options);\n }\n /**\n * @return {?}\n */\n get event$() {\n return this.triggerEvent$;\n }\n /**\n * @return {?}\n */\n disable() {\n this.isDisabled = true;\n }\n /**\n * @return {?}\n */\n enable() {\n this.isDisabled = false;\n }\n /**\n * @param {?} options\n * @return {?}\n */\n addPositionElement(options) {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n /**\n * @return {?}\n */\n calcPosition() {\n this.update$$.next();\n }\n /**\n * @param {?} elRef\n * @return {?}\n */\n deletePositionElement(elRef) {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n /**\n * @param {?} options\n * @return {?}\n */\n setOptions(options) {\n this.options = options;\n }\n}\nPositioningService.ɵfac = function PositioningService_Factory(t) { return new (t || PositioningService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2), ɵngcc0.ɵɵinject(PLATFORM_ID)); };\nPositioningService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PositioningService, factory: PositioningService.ɵfac });\n/** @nocollapse */\nPositioningService.ctorParameters = () => [\n { type: NgZone },\n { type: RendererFactory2 },\n { type: Number, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PositioningService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.RendererFactory2 }, { type: Number, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, null); })();\nif (false) {\n /**\n * @type {?}\n * @private\n */\n PositioningService.prototype.options;\n /**\n * @type {?}\n * @private\n */\n PositioningService.prototype.update$$;\n /**\n * @type {?}\n * @private\n */\n PositioningService.prototype.positionElements;\n /**\n * @type {?}\n * @private\n */\n PositioningService.prototype.triggerEvent$;\n /**\n * @type {?}\n * @private\n */\n PositioningService.prototype.isDisabled;\n}\n/**\n * @param {?} element\n * @return {?}\n */\nfunction _getHtmlElement(element) {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n return element;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { Positioning, PositioningService, positionElements };\n\n","import { EventEmitter, Component, Renderer2, ElementRef, ChangeDetectorRef, Output, ViewChild, ViewChildren, HostListener, Injectable, Directive, ViewContainerRef, Input, NgModule } from '@angular/core';\nimport { isBs3, Utils } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { NgControl } from '@angular/forms';\nimport { isObservable, from } from 'rxjs';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { debounceTime, switchMap, mergeMap, filter, toArray } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/* tslint:disable */\n/** @type {?} */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from 'ngx-bootstrap/positioning';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from 'ngx-bootstrap/component-loader';\nimport * as ɵngcc4 from '@angular/forms';\n\nconst _c0 = [\"ulElement\"];\nconst _c1 = [\"liElements\"];\nfunction TypeaheadContainerComponent_ng_template_0_Template(rf, ctx) { }\nfunction TypeaheadContainerComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 4);\n} if (rf & 2) {\n const match_r7 = ctx.match;\n const query_r8 = ctx.query;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"innerHtml\", ctx_r2.highlight(match_r7, query_r8), ɵngcc0.ɵɵsanitizeHtml);\n} }\nfunction TypeaheadContainerComponent_ng_template_3_ng_template_2_li_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 10, 11);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const match_r11 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(match_r11);\n} }\nfunction TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_ng_template_3_Template(rf, ctx) { }\nconst _c2 = function (a0, a1, a2, a3) { return { item: a0, index: a1, match: a2, query: a3 }; };\nfunction TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 12, 11);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_Template_li_mouseenter_0_listener() { ɵngcc0.ɵɵrestoreView(_r21); const match_r11 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r19 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r19.selectActive(match_r11)); });\n ɵngcc0.ɵɵelementStart(2, \"a\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_Template_a_click_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r21); const match_r11 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r22 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r22.selectMatch(match_r11, $event)); });\n ɵngcc0.ɵɵtemplate(3, TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_ng_template_3_Template, 0, 0, \"ng-template\", 0);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r24 = ɵngcc0.ɵɵnextContext();\n const match_r11 = ctx_r24.$implicit;\n const i_r12 = ctx_r24.index;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n const _r1 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵclassProp(\"active\", ctx_r14.isActive(match_r11));\n ɵngcc0.ɵɵproperty(\"id\", ctx_r14.popupId + \"-\" + i_r12)(\"@typeaheadAnimation\", ctx_r14.animationState);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r14.itemTemplate || _r1)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(6, _c2, match_r11.item, i_r12, match_r11, ctx_r14.query));\n} }\nfunction TypeaheadContainerComponent_ng_template_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TypeaheadContainerComponent_ng_template_3_ng_template_2_li_0_Template, 3, 1, \"li\", 8);\n ɵngcc0.ɵɵtemplate(1, TypeaheadContainerComponent_ng_template_3_ng_template_2_li_1_Template, 4, 11, \"li\", 9);\n} if (rf & 2) {\n const match_r11 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", match_r11.isHeader());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !match_r11.isHeader());\n} }\nfunction TypeaheadContainerComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 5, 6);\n ɵngcc0.ɵɵtemplate(2, TypeaheadContainerComponent_ng_template_3_ng_template_2_Template, 2, 2, \"ng-template\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"overflow-y\", ctx_r4.needScrollbar ? \"scroll\" : \"auto\")(\"height\", ctx_r4.needScrollbar ? ctx_r4.guiHeight : \"auto\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.matches);\n} }\nfunction TypeaheadContainerComponent_ng_template_5_ng_template_0_h6_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"h6\", 10);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const match_r26 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(match_r26);\n} }\nfunction TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_ng_template_2_Template(rf, ctx) { }\nfunction TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r35 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 15, 11);\n ɵngcc0.ɵɵlistener(\"click\", function TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r35); const match_r26 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r33 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r33.selectMatch(match_r26, $event)); })(\"mouseenter\", function TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_Template_button_mouseenter_0_listener() { ɵngcc0.ɵɵrestoreView(_r35); const match_r26 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r36 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r36.selectActive(match_r26)); });\n ɵngcc0.ɵɵtemplate(2, TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_ng_template_2_Template, 0, 0, \"ng-template\", 0);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r38 = ɵngcc0.ɵɵnextContext();\n const match_r26 = ctx_r38.$implicit;\n const i_r27 = ctx_r38.index;\n const ctx_r29 = ɵngcc0.ɵɵnextContext(2);\n const _r1 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵclassProp(\"active\", ctx_r29.isActive(match_r26));\n ɵngcc0.ɵɵproperty(\"id\", ctx_r29.popupId + \"-\" + i_r27)(\"@typeaheadAnimation\", ctx_r29.animationState);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r29.itemTemplate || _r1)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(6, _c2, match_r26.item, i_r27, match_r26, ctx_r29.query));\n} }\nfunction TypeaheadContainerComponent_ng_template_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TypeaheadContainerComponent_ng_template_5_ng_template_0_h6_0_Template, 2, 1, \"h6\", 8);\n ɵngcc0.ɵɵtemplate(1, TypeaheadContainerComponent_ng_template_5_ng_template_0_ng_template_1_Template, 3, 11, \"ng-template\", 14);\n} if (rf & 2) {\n const match_r26 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", match_r26.isHeader());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !match_r26.isHeader());\n} }\nfunction TypeaheadContainerComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TypeaheadContainerComponent_ng_template_5_ng_template_0_Template, 2, 2, \"ng-template\", 7);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r6.matches);\n} }\nconst _c3 = function (a0, a1, a2, a3) { return { matches: a0, itemTemplate: a1, query: a2, $implicit: a3 }; };\nconst latinMap = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x'\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass TypeaheadOptions {\n /**\n * @param {?} options\n */\n constructor(options) {\n Object.assign(this, options);\n }\n}\nif (false) {\n /** @type {?} */\n TypeaheadOptions.prototype.placement;\n /** @type {?} */\n TypeaheadOptions.prototype.animation;\n /** @type {?} */\n TypeaheadOptions.prototype.typeaheadRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass TypeaheadMatch {\n // tslint:disable-next-line:no-any\n /**\n * @param {?} item\n * @param {?=} value\n * @param {?=} header\n */\n constructor(item, value = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n /**\n * @return {?}\n */\n isHeader() {\n return this.header;\n }\n /**\n * @return {?}\n */\n toString() {\n return this.value;\n }\n}\nif (false) {\n /** @type {?} */\n TypeaheadMatch.prototype.value;\n /** @type {?} */\n TypeaheadMatch.prototype.item;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadMatch.prototype.header;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass TypeaheadOrder {\n}\nif (false) {\n /**\n * field for sorting\n * @type {?}\n */\n TypeaheadOrder.prototype.field;\n /**\n * ordering direction, could be 'asc' or 'desc'\n * @type {?}\n */\n TypeaheadOrder.prototype.direction;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} str\n * @return {?}\n */\nfunction latinize(str) {\n if (!str) {\n return '';\n }\n return str.replace(/[^A-Za-z0-9\\[\\] ]/g, (/**\n * @param {?} a\n * @return {?}\n */\n function (a) {\n return latinMap[a] || a;\n }));\n}\n/**\n * @param {?} queryToEscape\n * @return {?}\n */\nfunction escapeRegexp(queryToEscape) {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\n/* tslint:disable */\n/**\n * @param {?} str\n * @param {?=} wordRegexDelimiters\n * @param {?=} phraseRegexDelimiters\n * @return {?}\n */\nfunction tokenize(str, wordRegexDelimiters = ' ', phraseRegexDelimiters = '') {\n /* tslint:enable */\n /** @type {?} */\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n /** @type {?} */\n const preTokenized = str.split(new RegExp(regexStr, 'g'));\n /** @type {?} */\n const result = [];\n /** @type {?} */\n const preTokenizedLength = preTokenized.length;\n /** @type {?} */\n let token;\n /** @type {?} */\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n return result;\n}\n// tslint:disable-next-line:no-any\n/**\n * @param {?} object\n * @param {?} option\n * @return {?}\n */\nfunction getValueFromObject(object, option) {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n if (option.endsWith('()')) {\n /** @type {?} */\n const functionName = option.slice(0, option.length - 2);\n return object[functionName]().toString();\n }\n /** @type {?} */\n const properties = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n /** @type {?} */\n const propertiesArray = properties.split('.');\n for (const property of propertiesArray) {\n if (property in object) {\n // tslint:disable-next-line\n object = object[property];\n }\n }\n if (!object) {\n return '';\n }\n return object.toString();\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n/** @type {?} */\nconst typeaheadAnimation = trigger('typeaheadAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n]);\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextWindowId = 0;\nclass TypeaheadContainerComponent {\n /**\n * @param {?} positionService\n * @param {?} renderer\n * @param {?} element\n * @param {?} changeDetectorRef\n */\n constructor(positionService, renderer, element, changeDetectorRef) {\n this.positionService = positionService;\n this.renderer = renderer;\n this.element = element;\n this.changeDetectorRef = changeDetectorRef;\n // tslint:disable-next-line: no-output-rename\n this.activeChangeEvent = new EventEmitter();\n this.isFocused = false;\n this.height = 0;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._matches = [];\n this.isScrolledIntoView = (/**\n * @param {?} elem\n * @return {?}\n */\n function (elem) {\n /** @type {?} */\n const containerViewTop = this.ulElement.nativeElement.scrollTop;\n /** @type {?} */\n const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n /** @type {?} */\n const elemTop = elem.offsetTop;\n /** @type {?} */\n const elemBottom = elemTop + elem.offsetHeight;\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n });\n this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n this.positionServiceSubscription = this.positionService.event$.subscribe((/**\n * @return {?}\n */\n () => {\n if (this.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n this.changeDetectorRef.detectChanges();\n return;\n }\n this.animationState = 'unanimated';\n this.changeDetectorRef.detectChanges();\n }));\n }\n /**\n * @return {?}\n */\n get isBs4() {\n return !isBs3();\n }\n /**\n * @return {?}\n */\n get typeaheadTemplateMethods() {\n /* tslint:disable:no-this-assignment */\n /** @type {?} */\n const _that = this;\n return {\n selectMatch: this.selectMatch.bind(_that),\n selectActive: this.selectActive.bind(_that),\n isActive: this.isActive.bind(_that)\n };\n }\n /**\n * @return {?}\n */\n get active() {\n return this._active;\n }\n /**\n * @param {?} active\n * @return {?}\n */\n set active(active) {\n this._active = active;\n this.activeChanged();\n }\n /**\n * @return {?}\n */\n get matches() {\n return this._matches;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set matches(value) {\n this.positionService.setOptions({\n modifiers: { flip: { enabled: this.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n this._matches = value;\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n if (this.typeaheadScrollable) {\n setTimeout((/**\n * @return {?}\n */\n () => {\n this.setScrollableMode();\n }));\n }\n if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n this.active = this._matches[0];\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n }\n if (this._active && !this.typeaheadIsFirstItemActive) {\n /** @type {?} */\n const concurrency = this._matches.find((/**\n * @param {?} match\n * @return {?}\n */\n match => match.value === this._active.value));\n if (concurrency) {\n this.selectActive(concurrency);\n return;\n }\n this.active = null;\n }\n }\n /**\n * @return {?}\n */\n get isTopPosition() {\n return this.element.nativeElement.classList.contains('top');\n }\n // tslint:disable-next-line:no-any\n /**\n * @return {?}\n */\n get optionsListTemplate() {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n /**\n * @return {?}\n */\n get isAnimated() {\n return this.parent ? this.parent.isAnimated : false;\n }\n /**\n * @return {?}\n */\n get adaptivePosition() {\n return this.parent ? this.parent.adaptivePosition : false;\n }\n /**\n * @return {?}\n */\n get typeaheadScrollable() {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n /**\n * @return {?}\n */\n get typeaheadOptionsInScrollableView() {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n /**\n * @return {?}\n */\n get typeaheadIsFirstItemActive() {\n return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n }\n // tslint:disable-next-line:no-any\n /**\n * @return {?}\n */\n get itemTemplate() {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n /**\n * @param {?=} isActiveItemChanged\n * @return {?}\n */\n selectActiveMatch(isActiveItemChanged) {\n if (this._active && this.parent.typeaheadSelectFirstItem) {\n this.selectMatch(this._active);\n }\n if (!this.parent.typeaheadSelectFirstItem && isActiveItemChanged) {\n this.selectMatch(this._active);\n }\n }\n /**\n * @return {?}\n */\n activeChanged() {\n /** @type {?} */\n const index = this.matches.indexOf(this._active);\n this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n }\n /**\n * @return {?}\n */\n prevActiveMatch() {\n /** @type {?} */\n const index = this.matches.indexOf(this._active);\n this.active = this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1];\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n /**\n * @return {?}\n */\n nextActiveMatch() {\n /** @type {?} */\n const index = this.matches.indexOf(this._active);\n this.active = this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1];\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n /**\n * @param {?} value\n * @return {?}\n */\n selectActive(value) {\n this.isFocused = true;\n this.active = value;\n }\n /**\n * @param {?} match\n * @param {?} query\n * @return {?}\n */\n highlight(match, query) {\n /** @type {?} */\n let itemStr = match.value;\n /** @type {?} */\n let itemStrHelper = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n /** @type {?} */\n let startIdx;\n /** @type {?} */\n let tokenLen;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n /** @type {?} */\n const queryLen = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}${itemStr.substring(startIdx, startIdx + tokenLen)}` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n }\n else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}${itemStr.substring(startIdx, startIdx + tokenLen)}` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n return itemStr;\n }\n /**\n * @return {?}\n */\n focusLost() {\n this.isFocused = false;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n isActive(value) {\n return this.active === value;\n }\n /**\n * @param {?} value\n * @param {?=} e\n * @return {?}\n */\n selectMatch(value, e = void 0) {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.parent.changeModel(value);\n setTimeout((/**\n * @return {?}\n */\n () => this.parent.typeaheadOnSelect.emit(value)), 0);\n return false;\n }\n /**\n * @return {?}\n */\n setScrollableMode() {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n if (this.liElements.first) {\n /** @type {?} */\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n /** @type {?} */\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n /** @type {?} */\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n .replace('px', ''));\n /** @type {?} */\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n .replace('px', ''));\n /** @type {?} */\n const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n .replace('px', ''));\n /** @type {?} */\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n /**\n * @param {?} index\n * @return {?}\n */\n scrollPrevious(index) {\n if (index === 0) {\n this.scrollToBottom();\n return;\n }\n if (this.liElements) {\n /** @type {?} */\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n /**\n * @param {?} index\n * @return {?}\n */\n scrollNext(index) {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n return;\n }\n if (this.liElements) {\n /** @type {?} */\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n Number(this.ulElement.nativeElement.offsetHeight) +\n Number(liElement.nativeElement.offsetHeight);\n }\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.positionServiceSubscription.unsubscribe();\n }\n /**\n * @private\n * @return {?}\n */\n scrollToBottom() {\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n /**\n * @private\n * @return {?}\n */\n scrollToTop() {\n this.ulElement.nativeElement.scrollTop = 0;\n }\n}\nTypeaheadContainerComponent.ɵfac = function TypeaheadContainerComponent_Factory(t) { return new (t || TypeaheadContainerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.PositioningService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nTypeaheadContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TypeaheadContainerComponent, selectors: [[\"typeahead-container\"]], viewQuery: function TypeaheadContainerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ulElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.liElements = _t);\n } }, hostAttrs: [1, \"dropdown\", \"open\", \"bottom\", 2, \"position\", \"absolute\", \"display\", \"block\"], hostVars: 9, hostBindings: function TypeaheadContainerComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mouseleave\", function TypeaheadContainerComponent_mouseleave_HostBindingHandler() { return ctx.focusLost(); })(\"blur\", function TypeaheadContainerComponent_blur_HostBindingHandler() { return ctx.focusLost(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.isBs4 ? \"listbox\" : null);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.isBs4 && ctx.needScrollbar ? ctx.guiHeight : \"auto\")(\"visibility\", \"inherit\");\n ɵngcc0.ɵɵclassProp(\"dropdown-menu\", ctx.isBs4)(\"dropup\", ctx.dropup);\n } }, outputs: { activeChangeEvent: \"activeChange\" }, decls: 7, vars: 7, consts: [[3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"bsItemTemplate\", \"\"], [\"bs3Template\", \"\"], [\"bs4Template\", \"\"], [3, \"innerHtml\"], [\"role\", \"listbox\", 1, \"dropdown-menu\"], [\"ulElement\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"dropdown-header\", 4, \"ngIf\"], [\"role\", \"option\", 3, \"id\", \"active\", \"mouseenter\", 4, \"ngIf\"], [1, \"dropdown-header\"], [\"liElements\", \"\"], [\"role\", \"option\", 3, \"id\", \"mouseenter\"], [\"href\", \"#\", \"tabindex\", \"-1\", 3, \"click\"], [3, \"ngIf\"], [\"role\", \"option\", 1, \"dropdown-item\", 3, \"id\", \"click\", \"mouseenter\"]], template: function TypeaheadContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TypeaheadContainerComponent_ng_template_0_Template, 0, 0, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(1, TypeaheadContainerComponent_ng_template_1_Template, 1, 1, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(3, TypeaheadContainerComponent_ng_template_3_Template, 3, 5, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(5, TypeaheadContainerComponent_ng_template_5_Template, 1, 1, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(2);\n const _r3 = ɵngcc0.ɵɵreference(4);\n const _r5 = ɵngcc0.ɵɵreference(6);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.optionsListTemplate || (ctx.isBs4 ? _r5 : _r3))(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(2, _c3, ctx.matches, ctx.itemTemplate || _r1, ctx.query, ctx.typeaheadTemplateMethods));\n } }, dependencies: [ɵngcc2.NgForOf, ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet], styles: [\".dropdown[_nghost-%COMP%] {\\n z-index: 1000;\\n }\\n\\n .dropdown-menu[_nghost-%COMP%], .dropdown-menu[_ngcontent-%COMP%] {\\n overflow-y: auto;\\n height: 100px;\\n }\"], data: { animation: [typeaheadAnimation] } });\n/** @nocollapse */\nTypeaheadContainerComponent.ctorParameters = () => [\n { type: PositioningService },\n { type: Renderer2 },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n];\nTypeaheadContainerComponent.propDecorators = {\n activeChangeEvent: [{ type: Output, args: ['activeChange',] }],\n ulElement: [{ type: ViewChild, args: ['ulElement', { static: false },] }],\n liElements: [{ type: ViewChildren, args: ['liElements',] }],\n focusLost: [{ type: HostListener, args: ['mouseleave',] }, { type: HostListener, args: ['blur',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TypeaheadContainerComponent, [{\n type: Component,\n args: [{ selector: 'typeahead-container', template: \"\\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n \\n\\n\\n\\n\\n \\n
{{ match }}
\\n \\n \\n \\n
\\n
\\n\", host: {\n class: 'dropdown open bottom',\n '[class.dropdown-menu]': 'isBs4',\n '[style.height]': `isBs4 && needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `'inherit'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;',\n '[attr.role]': `isBs4 ? 'listbox' : null `\n }, animations: [typeaheadAnimation], styles: [\"\\n :host.dropdown {\\n z-index: 1000;\\n }\\n\\n :host.dropdown-menu, .dropdown-menu {\\n overflow-y: auto;\\n height: 100px;\\n }\\n \"] }]\n }], function () { return [{ type: ɵngcc1.PositioningService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }], \n /**\n * @return {?}\n */\n focusLost: [{\n type: HostListener,\n args: ['mouseleave']\n }, {\n type: HostListener,\n args: ['blur']\n }], ulElement: [{\n type: ViewChild,\n args: ['ulElement', { static: false }]\n }], liElements: [{\n type: ViewChildren,\n args: ['liElements']\n }] }); })();\nif (false) {\n /** @type {?} */\n TypeaheadContainerComponent.prototype.activeChangeEvent;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.parent;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.query;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.isFocused;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.top;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.left;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.display;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.placement;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.dropup;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.guiHeight;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.needScrollbar;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.animationState;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.positionServiceSubscription;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.height;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.popupId;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadContainerComponent.prototype._active;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadContainerComponent.prototype._matches;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.ulElement;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.liElements;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.isScrolledIntoView;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.positionService;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.renderer;\n /** @type {?} */\n TypeaheadContainerComponent.prototype.element;\n /**\n * @type {?}\n * @private\n */\n TypeaheadContainerComponent.prototype.changeDetectorRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Default values provider for typeahead\n */\nclass TypeaheadConfig {\n constructor() {\n /**\n * sets use adaptive position\n */\n this.adaptivePosition = false;\n /**\n * turn on/off animation\n */\n this.isAnimated = false;\n /**\n * used to hide results on blur\n */\n this.hideResultsOnBlur = true;\n /**\n * if true, typeahead will cancel async request on blur\n */\n this.cancelRequestOnFocusLost = false;\n /**\n * used to choose the first item in typeahead container\n */\n this.selectFirstItem = true;\n /**\n * used to active/inactive the first item in typeahead container\n */\n this.isFirstItemActive = true;\n /**\n * used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n */\n this.minLength = 1;\n }\n}\nTypeaheadConfig.ɵfac = function TypeaheadConfig_Factory(t) { return new (t || TypeaheadConfig)(); };\nTypeaheadConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TypeaheadConfig, factory: TypeaheadConfig.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TypeaheadConfig, [{\n type: Injectable\n }], function () { return []; }, null); })();\nif (false) {\n /**\n * sets use adaptive position\n * @type {?}\n */\n TypeaheadConfig.prototype.adaptivePosition;\n /**\n * turn on/off animation\n * @type {?}\n */\n TypeaheadConfig.prototype.isAnimated;\n /**\n * used to hide results on blur\n * @type {?}\n */\n TypeaheadConfig.prototype.hideResultsOnBlur;\n /**\n * if true, typeahead will cancel async request on blur\n * @type {?}\n */\n TypeaheadConfig.prototype.cancelRequestOnFocusLost;\n /**\n * used to choose the first item in typeahead container\n * @type {?}\n */\n TypeaheadConfig.prototype.selectFirstItem;\n /**\n * used to active/inactive the first item in typeahead container\n * @type {?}\n */\n TypeaheadConfig.prototype.isFirstItemActive;\n /**\n * used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n * @type {?}\n */\n TypeaheadConfig.prototype.minLength;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass TypeaheadDirective {\n /**\n * @param {?} cis\n * @param {?} config\n * @param {?} changeDetection\n * @param {?} element\n * @param {?} ngControl\n * @param {?} renderer\n * @param {?} viewContainerRef\n */\n constructor(cis, config, changeDetection, element, ngControl, renderer, viewContainerRef) {\n this.changeDetection = changeDetection;\n this.element = element;\n this.ngControl = ngControl;\n this.renderer = renderer;\n /**\n * minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n this.typeaheadMinLength = void 0;\n /**\n * turn on/off animation\n */\n this.isAnimated = false;\n /**\n * should be used only in case of typeahead attribute is Observable of array.\n * If true - loading of options will be async, otherwise - sync.\n * true make sense if options array is large.\n */\n this.typeaheadAsync = void 0;\n /**\n * match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n this.typeaheadLatinize = true;\n /**\n * Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n this.typeaheadSingleWords = true;\n /**\n * should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n this.typeaheadWordDelimiters = ' ';\n /**\n * should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n this.typeaheadPhraseDelimiters = '\\'\"';\n /**\n * specifies if typeahead is scrollable\n */\n this.typeaheadScrollable = false;\n /**\n * specifies number of options to show in scroll view\n */\n this.typeaheadOptionsInScrollableView = 5;\n /**\n * fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n */\n this.typeaheadSelectFirstItem = true;\n /**\n * makes active first item in a list\n */\n this.typeaheadIsFirstItemActive = true;\n /**\n * fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n this.typeaheadLoading = new EventEmitter();\n /**\n * fired on every key event and returns true\n * in case of matches are not detected\n */\n this.typeaheadNoResults = new EventEmitter();\n /**\n * fired when option was selected, return object with data of this option\n */\n this.typeaheadOnSelect = new EventEmitter();\n /**\n * fired when blur event occurs. returns the active item\n */\n this.typeaheadOnBlur = new EventEmitter();\n /**\n * This attribute indicates that the dropdown should be opened upwards\n */\n this.dropup = false;\n this.isOpen = false;\n this.list = 'list';\n this.isActiveItemChanged = false;\n this.isFocused = false;\n this.cancelRequestOnFocusLost = false;\n // tslint:disable-next-line:no-any\n this.keyUpEventEmitter = new EventEmitter();\n this.placement = 'bottom left';\n this._subscriptions = [];\n this._typeahead = cis.createLoader(element, viewContainerRef, renderer)\n .provide({ provide: TypeaheadConfig, useValue: config });\n Object.assign(this, {\n typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n typeaheadCancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n typeaheadSelectFirstItem: config.selectFirstItem,\n typeaheadIsFirstItemActive: config.isFirstItemActive,\n typeaheadMinLength: config.minLength,\n adaptivePosition: config.adaptivePosition,\n isAnimated: config.isAnimated\n });\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n this.typeaheadMinLength =\n this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n this.typeaheadWaitMs = this.typeaheadWaitMs || 0;\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !(isObservable(this.typeahead))) {\n this.typeaheadAsync = false;\n }\n if (isObservable(this.typeahead)) {\n this.typeaheadAsync = true;\n }\n if (this.typeaheadAsync) {\n this.asyncActions();\n }\n else {\n this.syncActions();\n }\n }\n /**\n * @param {?} e\n * @return {?}\n */\n // tslint:disable-next-line:no-any\n onInput(e) {\n // For ``s, use the `value` property. For others that don't have a\n // `value` (such as ``), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n /** @type {?} */\n const value = e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n }\n else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onChange(event) {\n if (this._container) {\n // esc\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 27 || event.key === 'Escape') {\n this.hide();\n return;\n }\n // up\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 38 || event.key === 'ArrowUp') {\n this.isActiveItemChanged = true;\n this._container.prevActiveMatch();\n return;\n }\n // down\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 40 || event.key === 'ArrowDown') {\n this.isActiveItemChanged = true;\n this._container.nextActiveMatch();\n return;\n }\n // enter\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 13 || event.key === 'Enter') {\n this._container.selectActiveMatch();\n return;\n }\n }\n }\n /**\n * @return {?}\n */\n onFocus() {\n this.isFocused = true;\n // add setTimeout to fix issue #5251\n // to get and emit updated value if it's changed on focus\n setTimeout((/**\n * @return {?}\n */\n () => {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }), 0);\n }\n /**\n * @return {?}\n */\n onBlur() {\n this.isFocused = false;\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n if (!this.container && this._matches.length === 0) {\n this.typeaheadOnBlur.emit(new TypeaheadMatch(this.element.nativeElement.value, this.element.nativeElement.value, false));\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onKeydown(event) {\n // no container - no problems\n if (!this._container) {\n return;\n }\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab') {\n this.onBlur();\n }\n /* tslint:disable-next-line: deprecation */\n if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n event.preventDefault();\n if (this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch();\n return;\n }\n if (!this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch(this.isActiveItemChanged);\n this.isActiveItemChanged = false;\n this.hide();\n }\n }\n }\n /**\n * @param {?} match\n * @return {?}\n */\n changeModel(match) {\n /** @type {?} */\n const valueStr = match.value;\n this.ngControl.viewToModelUpdate(valueStr);\n (this.ngControl.control).setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n /**\n * @return {?}\n */\n get matches() {\n return this._matches;\n }\n /**\n * @return {?}\n */\n show() {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n .to(this.container)\n .position({ attachment: `${this.dropup ? 'top' : 'bottom'} left` })\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n this._outsideClickListener = this.renderer.listen('document', 'click', (/**\n * @param {?} e\n * @return {?}\n */\n (e) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(e.target)) {\n return undefined;\n }\n this.onOutsideClick();\n }));\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n /** @type {?} */\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n : normalizedQuery;\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n this._container.activeChangeEvent.subscribe((/**\n * @param {?} activeId\n * @return {?}\n */\n (activeId) => {\n this.activeDescendant = activeId;\n this.changeDetection.markForCheck();\n }));\n this.isOpen = true;\n }\n /**\n * @return {?}\n */\n hide() {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = null;\n this.isOpen = false;\n this.changeDetection.markForCheck();\n }\n }\n /**\n * @return {?}\n */\n onOutsideClick() {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n /**\n * @protected\n * @return {?}\n */\n asyncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), switchMap((/**\n * @return {?}\n */\n () => this.typeahead)))\n .subscribe((/**\n * @param {?} matches\n * @return {?}\n */\n (matches) => {\n this.finalizeAsyncCall(matches);\n })));\n }\n /**\n * @protected\n * @return {?}\n */\n syncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), mergeMap((/**\n * @param {?} value\n * @return {?}\n */\n (value) => {\n /** @type {?} */\n const normalizedQuery = this.normalizeQuery(value);\n return from(this.typeahead)\n .pipe(filter((/**\n * @param {?} option\n * @return {?}\n */\n (option) => {\n return option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n })), toArray());\n })))\n .subscribe((/**\n * @param {?} matches\n * @return {?}\n */\n (matches) => {\n this.finalizeAsyncCall(matches);\n })));\n }\n /**\n * @protected\n * @param {?} option\n * @return {?}\n */\n normalizeOption(option) {\n /** @type {?} */\n const optionValue = getValueFromObject(option, this.typeaheadOptionField);\n /** @type {?} */\n const normalizedOption = this.typeaheadLatinize\n ? latinize(optionValue)\n : optionValue;\n return normalizedOption.toLowerCase();\n }\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n normalizeQuery(value) {\n // If singleWords, break model here to not be doing extra work on each iteration\n /** @type {?} */\n let normalizedQuery = (this.typeaheadLatinize\n ? latinize(value)\n : value)\n .toString()\n .toLowerCase();\n normalizedQuery = this.typeaheadSingleWords\n ? tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n : normalizedQuery;\n return normalizedQuery;\n }\n /**\n * @protected\n * @param {?} match\n * @param {?} test\n * @return {?}\n */\n testMatch(match, test) {\n /** @type {?} */\n let spaceLength;\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n return match.indexOf(test) >= 0;\n }\n /**\n * @protected\n * @param {?} matches\n * @return {?}\n */\n finalizeAsyncCall(matches) {\n this.prepareMatches(matches || []);\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n if (!this.hasMatches()) {\n this.hide();\n return;\n }\n if (!this.isFocused && this.cancelRequestOnFocusLost) {\n return;\n }\n if (this._container) {\n // fix: remove usage of ngControl internals\n /** @type {?} */\n const _controlValue = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value) || '';\n // This improves the speed as it won't have to be done for each list item\n /** @type {?} */\n const normalizedQuery = _controlValue.toString().toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? tokenize(normalizedQuery, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters)\n : normalizedQuery;\n this._container.matches = this._matches;\n }\n else {\n this.show();\n }\n }\n /**\n * @protected\n * @param {?} options\n * @return {?}\n */\n prepareMatches(options) {\n /** @type {?} */\n const limited = options.slice(0, this.typeaheadOptionsLimit);\n /** @type {?} */\n const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n if (this.typeaheadGroupField) {\n /** @type {?} */\n let matches = [];\n // extract all group names\n /** @type {?} */\n const groups = sorted\n .map((/**\n * @param {?} option\n * @return {?}\n */\n (option) => getValueFromObject(option, this.typeaheadGroupField)))\n .filter((/**\n * @param {?} v\n * @param {?} i\n * @param {?} a\n * @return {?}\n */\n (v, i, a) => a.indexOf(v) === i));\n groups.forEach((/**\n * @param {?} group\n * @return {?}\n */\n (group) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n // add each item of group to array of matches\n matches = matches.concat(sorted\n .filter((/**\n * @param {?} option\n * @return {?}\n */\n (option) => getValueFromObject(option, this.typeaheadGroupField) === group))\n .map((/**\n * @param {?} option\n * @return {?}\n */\n (option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField)))));\n }));\n this._matches = matches;\n }\n else {\n this._matches = sorted.map((\n // tslint:disable-next-line:no-any\n /**\n * @param {?} option\n * @return {?}\n */\n (option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField))));\n }\n }\n /**\n * @protected\n * @param {?} options\n * @return {?}\n */\n orderMatches(options) {\n if (!options.length) {\n return options;\n }\n if (this.typeaheadOrderBy !== null\n && this.typeaheadOrderBy !== undefined\n && typeof this.typeaheadOrderBy === 'object'\n && Object.keys(this.typeaheadOrderBy).length === 0) {\n // tslint:disable-next-line:no-console\n console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n return options;\n }\n const { field, direction } = this.typeaheadOrderBy;\n if (!direction || !(direction === 'asc' || direction === 'desc')) {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n return options;\n }\n if (typeof options[0] === 'string') {\n return direction === 'asc' ? options.sort() : options.sort().reverse();\n }\n if (!field || typeof field !== 'string') {\n // tslint:disable-next-line:no-console\n console.error('typeaheadOrderBy field has to set according to the documentation.');\n return options;\n }\n return options.sort((/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n (a, b) => {\n /** @type {?} */\n const stringA = getValueFromObject(a, field);\n /** @type {?} */\n const stringB = getValueFromObject(b, field);\n if (stringA < stringB) {\n return direction === 'asc' ? -1 : 1;\n }\n if (stringA > stringB) {\n return direction === 'asc' ? 1 : -1;\n }\n return 0;\n }));\n }\n /**\n * @protected\n * @return {?}\n */\n hasMatches() {\n return this._matches.length > 0;\n }\n}\nTypeaheadDirective.ɵfac = function TypeaheadDirective_Factory(t) { return new (t || TypeaheadDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.ComponentLoaderFactory), ɵngcc0.ɵɵdirectiveInject(TypeaheadConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.NgControl), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTypeaheadDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TypeaheadDirective, selectors: [[\"\", \"typeahead\", \"\"]], hostVars: 4, hostBindings: function TypeaheadDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function TypeaheadDirective_input_HostBindingHandler($event) { return ctx.onInput($event); })(\"keyup\", function TypeaheadDirective_keyup_HostBindingHandler($event) { return ctx.onChange($event); })(\"click\", function TypeaheadDirective_click_HostBindingHandler() { return ctx.onFocus(); })(\"focus\", function TypeaheadDirective_focus_HostBindingHandler() { return ctx.onFocus(); })(\"blur\", function TypeaheadDirective_blur_HostBindingHandler() { return ctx.onBlur(); })(\"keydown\", function TypeaheadDirective_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-aria-owns\", ctx.isOpen ? ctx._container.popupId : null)(\"aria-aria-expanded\", ctx.isOpen)(\"aria-autocomplete\", ctx.list);\n } }, inputs: { isAnimated: \"isAnimated\", typeaheadLatinize: \"typeaheadLatinize\", typeaheadSingleWords: \"typeaheadSingleWords\", typeaheadWordDelimiters: \"typeaheadWordDelimiters\", typeaheadPhraseDelimiters: \"typeaheadPhraseDelimiters\", typeaheadScrollable: \"typeaheadScrollable\", typeaheadOptionsInScrollableView: \"typeaheadOptionsInScrollableView\", typeaheadSelectFirstItem: \"typeaheadSelectFirstItem\", typeaheadIsFirstItemActive: \"typeaheadIsFirstItemActive\", dropup: \"dropup\", typeaheadOptionsLimit: \"typeaheadOptionsLimit\", typeaheadMinLength: \"typeaheadMinLength\", typeaheadWaitMs: \"typeaheadWaitMs\", typeaheadAsync: \"typeaheadAsync\", typeahead: \"typeahead\", adaptivePosition: \"adaptivePosition\", typeaheadOptionField: \"typeaheadOptionField\", typeaheadGroupField: \"typeaheadGroupField\", typeaheadOrderBy: \"typeaheadOrderBy\", typeaheadItemTemplate: \"typeaheadItemTemplate\", optionsListTemplate: \"optionsListTemplate\", typeaheadHideResultsOnBlur: \"typeaheadHideResultsOnBlur\", container: \"container\" }, outputs: { typeaheadLoading: \"typeaheadLoading\", typeaheadNoResults: \"typeaheadNoResults\", typeaheadOnSelect: \"typeaheadOnSelect\", typeaheadOnBlur: \"typeaheadOnBlur\" }, exportAs: [\"bs-typeahead\"] });\n/** @nocollapse */\nTypeaheadDirective.ctorParameters = () => [\n { type: ComponentLoaderFactory },\n { type: TypeaheadConfig },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgControl },\n { type: Renderer2 },\n { type: ViewContainerRef }\n];\nTypeaheadDirective.propDecorators = {\n typeahead: [{ type: Input }],\n typeaheadMinLength: [{ type: Input }],\n adaptivePosition: [{ type: Input }],\n isAnimated: [{ type: Input }],\n typeaheadWaitMs: [{ type: Input }],\n typeaheadOptionsLimit: [{ type: Input }],\n typeaheadOptionField: [{ type: Input }],\n typeaheadGroupField: [{ type: Input }],\n typeaheadOrderBy: [{ type: Input }],\n typeaheadAsync: [{ type: Input }],\n typeaheadLatinize: [{ type: Input }],\n typeaheadSingleWords: [{ type: Input }],\n typeaheadWordDelimiters: [{ type: Input }],\n typeaheadPhraseDelimiters: [{ type: Input }],\n typeaheadItemTemplate: [{ type: Input }],\n optionsListTemplate: [{ type: Input }],\n typeaheadScrollable: [{ type: Input }],\n typeaheadOptionsInScrollableView: [{ type: Input }],\n typeaheadHideResultsOnBlur: [{ type: Input }],\n typeaheadSelectFirstItem: [{ type: Input }],\n typeaheadIsFirstItemActive: [{ type: Input }],\n typeaheadLoading: [{ type: Output }],\n typeaheadNoResults: [{ type: Output }],\n typeaheadOnSelect: [{ type: Output }],\n typeaheadOnBlur: [{ type: Output }],\n container: [{ type: Input }],\n dropup: [{ type: Input }],\n onInput: [{ type: HostListener, args: ['input', ['$event'],] }],\n onChange: [{ type: HostListener, args: ['keyup', ['$event'],] }],\n onFocus: [{ type: HostListener, args: ['click',] }, { type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n onKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TypeaheadDirective, [{\n type: Directive,\n args: [{\n selector: '[typeahead]',\n exportAs: 'bs-typeahead',\n host: {\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-aria-owns]': 'isOpen ? this._container.popupId : null',\n '[attr.aria-aria-expanded]': 'isOpen',\n '[attr.aria-autocomplete]': 'list'\n }\n }]\n }], function () { return [{ type: ɵngcc3.ComponentLoaderFactory }, { type: TypeaheadConfig }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc4.NgControl }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ViewContainerRef }]; }, { isAnimated: [{\n type: Input\n }], typeaheadLatinize: [{\n type: Input\n }], typeaheadSingleWords: [{\n type: Input\n }], typeaheadWordDelimiters: [{\n type: Input\n }], typeaheadPhraseDelimiters: [{\n type: Input\n }], typeaheadScrollable: [{\n type: Input\n }], typeaheadOptionsInScrollableView: [{\n type: Input\n }], typeaheadSelectFirstItem: [{\n type: Input\n }], typeaheadIsFirstItemActive: [{\n type: Input\n }], typeaheadLoading: [{\n type: Output\n }], typeaheadNoResults: [{\n type: Output\n }], typeaheadOnSelect: [{\n type: Output\n }], typeaheadOnBlur: [{\n type: Output\n }], dropup: [{\n type: Input\n }], typeaheadOptionsLimit: [{\n type: Input\n }], typeaheadMinLength: [{\n type: Input\n }], typeaheadWaitMs: [{\n type: Input\n }], typeaheadAsync: [{\n type: Input\n }], \n /**\n * @param {?} e\n * @return {?}\n */\n // tslint:disable-next-line:no-any\n onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onChange: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }], \n /**\n * @return {?}\n */\n onFocus: [{\n type: HostListener,\n args: ['click']\n }, {\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @return {?}\n */\n onBlur: [{\n type: HostListener,\n args: ['blur']\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], typeahead: [{\n type: Input\n }], adaptivePosition: [{\n type: Input\n }], typeaheadOptionField: [{\n type: Input\n }], typeaheadGroupField: [{\n type: Input\n }], typeaheadOrderBy: [{\n type: Input\n }], typeaheadItemTemplate: [{\n type: Input\n }], optionsListTemplate: [{\n type: Input\n }], typeaheadHideResultsOnBlur: [{\n type: Input\n }], container: [{\n type: Input\n }] }); })();\nif (false) {\n /**\n * options source, can be Array of strings, objects or\n * an Observable for external matching process\n * @type {?}\n */\n TypeaheadDirective.prototype.typeahead;\n /**\n * minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadMinLength;\n /**\n * sets use adaptive position\n * @type {?}\n */\n TypeaheadDirective.prototype.adaptivePosition;\n /**\n * turn on/off animation\n * @type {?}\n */\n TypeaheadDirective.prototype.isAnimated;\n /**\n * minimal wait time after last character typed before typeahead kicks-in\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadWaitMs;\n /**\n * maximum length of options items list. The default value is 20\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOptionsLimit;\n /**\n * when options source is an array of objects, the name of field\n * that contains the options value, we use array item as option in case\n * of this field is missing. Supports nested properties and methods.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOptionField;\n /**\n * when options source is an array of objects, the name of field that\n * contains the group value, matches are grouped by this field when set.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadGroupField;\n /**\n * Used to specify a custom order of matches. When options source is an array of objects\n * a field for sorting has to be set up. In case of options source is an array of string,\n * a field for sorting is absent. The ordering direction could be changed to ascending or descending.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOrderBy;\n /**\n * should be used only in case of typeahead attribute is Observable of array.\n * If true - loading of options will be async, otherwise - sync.\n * true make sense if options array is large.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadAsync;\n /**\n * match latin symbols.\n * If true the word súper would match super and vice versa.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadLatinize;\n /**\n * Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadSingleWords;\n /**\n * should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadWordDelimiters;\n /**\n * should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadPhraseDelimiters;\n /**\n * used to specify a custom item template.\n * Template variables exposed are called item and index;\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadItemTemplate;\n /**\n * used to specify a custom options list template.\n * Template variables: matches, itemTemplate, query\n * @type {?}\n */\n TypeaheadDirective.prototype.optionsListTemplate;\n /**\n * specifies if typeahead is scrollable\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadScrollable;\n /**\n * specifies number of options to show in scroll view\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOptionsInScrollableView;\n /**\n * used to hide result on blur\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadHideResultsOnBlur;\n /**\n * fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadSelectFirstItem;\n /**\n * makes active first item in a list\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadIsFirstItemActive;\n /**\n * fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadLoading;\n /**\n * fired on every key event and returns true\n * in case of matches are not detected\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadNoResults;\n /**\n * fired when option was selected, return object with data of this option\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOnSelect;\n /**\n * fired when blur event occurs. returns the active item\n * @type {?}\n */\n TypeaheadDirective.prototype.typeaheadOnBlur;\n /**\n * A selector specifying the element the typeahead should be appended to.\n * @type {?}\n */\n TypeaheadDirective.prototype.container;\n /**\n * This attribute indicates that the dropdown should be opened upwards\n * @type {?}\n */\n TypeaheadDirective.prototype.dropup;\n /**\n * if false don't focus the input element the typeahead directive is associated with on selection\n * @type {?}\n */\n TypeaheadDirective.prototype.activeDescendant;\n /** @type {?} */\n TypeaheadDirective.prototype.isOpen;\n /** @type {?} */\n TypeaheadDirective.prototype.list;\n /** @type {?} */\n TypeaheadDirective.prototype._container;\n /** @type {?} */\n TypeaheadDirective.prototype.isActiveItemChanged;\n /** @type {?} */\n TypeaheadDirective.prototype.isFocused;\n /** @type {?} */\n TypeaheadDirective.prototype.cancelRequestOnFocusLost;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadDirective.prototype.keyUpEventEmitter;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadDirective.prototype._matches;\n /**\n * @type {?}\n * @protected\n */\n TypeaheadDirective.prototype.placement;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype._typeahead;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype._subscriptions;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype._outsideClickListener;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype.changeDetection;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype.element;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype.ngControl;\n /**\n * @type {?}\n * @private\n */\n TypeaheadDirective.prototype.renderer;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass TypeaheadModule {\n /**\n * @return {?}\n */\n static forRoot() {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService, TypeaheadConfig]\n };\n }\n}\nTypeaheadModule.ɵfac = function TypeaheadModule_Factory(t) { return new (t || TypeaheadModule)(); };\nTypeaheadModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TypeaheadModule });\nTypeaheadModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TypeaheadModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective],\n entryComponents: [TypeaheadContainerComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TypeaheadModule, { declarations: function () { return [TypeaheadContainerComponent, TypeaheadDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [TypeaheadContainerComponent, TypeaheadDirective]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { TypeaheadConfig, TypeaheadContainerComponent, TypeaheadDirective, TypeaheadMatch, TypeaheadModule, TypeaheadOptions, TypeaheadOrder, escapeRegexp, getValueFromObject, latinMap, latinize, tokenize, typeaheadAnimation as ɵa };\n\n","import { isDevMode } from '@angular/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass Trigger {\n /**\n * @param {?} open\n * @param {?=} close\n */\n constructor(open, close) {\n this.open = open;\n this.close = close || open;\n }\n /**\n * @return {?}\n */\n isManual() {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\nif (false) {\n /** @type {?} */\n Trigger.prototype.open;\n /** @type {?} */\n Trigger.prototype.close;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction ListenOptions() { }\nif (false) {\n /** @type {?|undefined} */\n ListenOptions.prototype.target;\n /** @type {?|undefined} */\n ListenOptions.prototype.targets;\n /** @type {?|undefined} */\n ListenOptions.prototype.triggers;\n /** @type {?|undefined} */\n ListenOptions.prototype.outsideClick;\n /** @type {?|undefined} */\n ListenOptions.prototype.outsideEsc;\n /** @type {?|undefined} */\n ListenOptions.prototype.show;\n /** @type {?|undefined} */\n ListenOptions.prototype.hide;\n /** @type {?|undefined} */\n ListenOptions.prototype.toggle;\n}\n/** @type {?} */\nconst DEFAULT_ALIASES = {\n hover: ['mouseover', 'mouseout'],\n focus: ['focusin', 'focusout']\n};\n/* tslint:disable-next-line: no-any */\n/**\n * @param {?} triggers\n * @param {?=} aliases\n * @return {?}\n */\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\n /** @type {?} */\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n /** @type {?} */\n const parsedTriggers = trimmedTriggers\n .split(/\\s+/)\n .map((/**\n * @param {?} trigger\n * @return {?}\n */\n (trigger) => trigger.split(':')))\n .map((/**\n * @param {?} triggerPair\n * @return {?}\n */\n (triggerPair) => {\n /** @type {?} */\n const alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n }));\n /** @type {?} */\n const manualTriggers = parsedTriggers.filter((/**\n * @param {?} triggerPair\n * @return {?}\n */\n (triggerPair) => triggerPair.isManual()));\n if (manualTriggers.length > 1) {\n throw new Error('Triggers parse error: only one manual trigger is allowed');\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\n }\n return parsedTriggers;\n}\n/**\n * @param {?} renderer\n * @param {?} target\n * @param {?} triggers\n * @param {?} showFn\n * @param {?} hideFn\n * @param {?} toggleFn\n * @return {?}\n */\nfunction listenToTriggers(renderer, \n/* tslint:disable-next-line: no-any */\ntarget, triggers, showFn, hideFn, toggleFn) {\n /** @type {?} */\n const parsedTriggers = parseTriggers(triggers);\n /* tslint:disable-next-line: no-any */\n /** @type {?} */\n const listeners = [];\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n parsedTriggers.forEach((/**\n * @param {?} trigger\n * @return {?}\n */\n (trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\n return;\n }\n listeners.push(renderer.listen(target, trigger.open, showFn), renderer.listen(target, trigger.close, hideFn));\n }));\n return (/**\n * @return {?}\n */\n () => {\n listeners.forEach((/**\n * @param {?} unsubscribeFn\n * @return {?}\n */\n (unsubscribeFn) => unsubscribeFn()));\n });\n}\n/**\n * @param {?} renderer\n * @param {?} options\n * @return {?}\n */\nfunction listenToTriggersV2(renderer, options) {\n /** @type {?} */\n const parsedTriggers = parseTriggers(options.triggers);\n /** @type {?} */\n const target = options.target;\n // do nothing\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n // all listeners\n /* tslint:disable-next-line: no-any */\n /** @type {?} */\n const listeners = [];\n // lazy listeners registration\n /** @type {?} */\n const _registerHide = [];\n /** @type {?} */\n const registerHide = (/**\n * @return {?}\n */\n () => {\n // add hide listeners to unregister array\n _registerHide.forEach((/**\n * @param {?} fn\n * @return {?}\n */\n (fn) => listeners.push(fn())));\n // register hide events only once\n _registerHide.length = 0;\n });\n // register open\\close\\toggle listeners\n parsedTriggers.forEach((/**\n * @param {?} trigger\n * @return {?}\n */\n (trigger) => {\n /** @type {?} */\n const useToggle = trigger.open === trigger.close;\n /** @type {?} */\n const showFn = useToggle ? options.toggle : options.show;\n if (!useToggle) {\n _registerHide.push((/**\n * @return {?}\n */\n () => renderer.listen(target, trigger.close, options.hide)));\n }\n listeners.push(renderer.listen(target, trigger.open, (/**\n * @return {?}\n */\n () => showFn(registerHide))));\n }));\n return (/**\n * @return {?}\n */\n () => {\n listeners.forEach((/**\n * @param {?} unsubscribeFn\n * @return {?}\n */\n (unsubscribeFn) => unsubscribeFn()));\n });\n}\n/**\n * @param {?} renderer\n * @param {?} options\n * @return {?}\n */\nfunction registerOutsideClick(renderer, options) {\n if (!options.outsideClick) {\n return Function.prototype;\n }\n /* tslint:disable-next-line: no-any */\n return renderer.listen('document', 'click', (/**\n * @param {?} event\n * @return {?}\n */\n (event) => {\n if (options.target && options.target.contains(event.target)) {\n return undefined;\n }\n if (options.targets &&\n options.targets.some((/**\n * @param {?} target\n * @return {?}\n */\n target => target.contains(event.target)))) {\n return undefined;\n }\n options.hide();\n }));\n}\n/**\n * @param {?} renderer\n * @param {?} options\n * @return {?}\n */\nfunction registerEscClick(renderer, options) {\n if (!options.outsideEsc) {\n return Function.prototype;\n }\n return renderer.listen('document', 'keyup.esc', (/**\n * @param {?} event\n * @return {?}\n */\n (event) => {\n if (options.target && options.target.contains(event.target)) {\n return undefined;\n }\n if (options.targets &&\n options.targets.some((/**\n * @param {?} target\n * @return {?}\n */\n target => target.contains(event.target)))) {\n return undefined;\n }\n options.hide();\n }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. 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 * JS version of browser APIs. This library can only run in the browser.\n * @type {?}\n */\nconst win = (typeof window !== 'undefined' && window) || (/** @type {?} */ ({}));\n/** @type {?} */\nconst document$1 = win.document;\n/** @type {?} */\nconst location = win.location;\n/** @type {?} */\nconst gc = win.gc ? (/**\n * @return {?}\n */\n() => win.gc()) : (/**\n * @return {?}\n */\n() => null);\n/** @type {?} */\nconst performance = win.performance ? win.performance : null;\n/** @type {?} */\nconst Event = win.Event;\n/** @type {?} */\nconst MouseEvent = win.MouseEvent;\n/** @type {?} */\nconst KeyboardEvent = win.KeyboardEvent;\n/** @type {?} */\nconst EventTarget = win.EventTarget;\n/** @type {?} */\nconst History = win.History;\n/** @type {?} */\nconst Location = win.Location;\n/** @type {?} */\nconst EventListener = win.EventListener;\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet guessedVersion;\n/**\n * @return {?}\n */\nfunction _guessBsVersion() {\n if (typeof document === 'undefined') {\n return null;\n }\n /** @type {?} */\n const spanEl = document.createElement('span');\n spanEl.innerText = 'test bs version';\n document.body.appendChild(spanEl);\n spanEl.classList.add('d-none');\n /** @type {?} */\n const rect = spanEl.getBoundingClientRect();\n document.body.removeChild(spanEl);\n if (!rect) {\n return 'bs3';\n }\n return rect.top === 0 ? 'bs4' : 'bs3';\n}\n/**\n * @param {?} theme\n * @return {?}\n */\nfunction setTheme(theme) {\n guessedVersion = theme;\n}\n// todo: in ngx-bootstrap, bs4 will became a default one\n/**\n * @return {?}\n */\nfunction isBs3() {\n if (typeof win === 'undefined') {\n return true;\n }\n if (typeof win.__theme === 'undefined') {\n if (guessedVersion) {\n return guessedVersion === 'bs3';\n }\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs3';\n }\n return win.__theme !== 'bs4';\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template T\n */\nclass LinkedList {\n constructor() {\n this.length = 0;\n this.asArray = [];\n // Array methods overriding END\n }\n /**\n * @param {?} position\n * @return {?}\n */\n get(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n return void 0;\n }\n /** @type {?} */\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current.next;\n }\n return current.value;\n }\n /**\n * @param {?} value\n * @param {?=} position\n * @return {?}\n */\n add(value, position = this.length) {\n if (position < 0 || position > this.length) {\n throw new Error('Position is out of the list');\n }\n /* tslint:disable-next-line: no-any*/\n /** @type {?} */\n const node = {\n value,\n next: undefined,\n previous: undefined\n };\n if (this.length === 0) {\n this.head = node;\n this.tail = node;\n this.current = node;\n }\n else {\n if (position === 0) {\n // first node\n node.next = this.head;\n this.head.previous = node;\n this.head = node;\n }\n else if (position === this.length) {\n // last node\n this.tail.next = node;\n node.previous = this.tail;\n this.tail = node;\n }\n else {\n // node in middle\n /** @type {?} */\n const currentPreviousNode = this.getNode(position - 1);\n /** @type {?} */\n const currentNextNode = currentPreviousNode.next;\n currentPreviousNode.next = node;\n currentNextNode.previous = node;\n node.previous = currentPreviousNode;\n node.next = currentNextNode;\n }\n }\n this.length++;\n this.createInternalArrayRepresentation();\n }\n /**\n * @param {?=} position\n * @return {?}\n */\n remove(position = 0) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n if (position === 0) {\n // first node\n this.head = this.head.next;\n if (this.head) {\n // there is no second node\n this.head.previous = undefined;\n }\n else {\n // there is no second node\n this.tail = undefined;\n }\n }\n else if (position === this.length - 1) {\n // last node\n this.tail = this.tail.previous;\n this.tail.next = undefined;\n }\n else {\n // middle node\n /** @type {?} */\n const removedNode = this.getNode(position);\n removedNode.next.previous = removedNode.previous;\n removedNode.previous.next = removedNode.next;\n }\n this.length--;\n this.createInternalArrayRepresentation();\n }\n /**\n * @param {?} position\n * @param {?} value\n * @return {?}\n */\n set(position, value) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n /** @type {?} */\n const node = this.getNode(position);\n node.value = value;\n this.createInternalArrayRepresentation();\n }\n /**\n * @return {?}\n */\n toArray() {\n return this.asArray;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n findAll(fn) {\n /** @type {?} */\n let current = this.head;\n /* tslint:disable-next-line: no-any*/\n /** @type {?} */\n const result = [];\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result.push({ index, value: current.value });\n }\n current = current.next;\n }\n return result;\n }\n // Array methods overriding start\n /**\n * @param {...?} args\n * @return {?}\n */\n push(...args) {\n /* tslint:disable-next-line: no-any*/\n args.forEach((/**\n * @param {?} arg\n * @return {?}\n */\n (arg) => {\n this.add(arg);\n }));\n return this.length;\n }\n /**\n * @return {?}\n */\n pop() {\n if (this.length === 0) {\n return undefined;\n }\n /** @type {?} */\n const last = this.tail;\n this.remove(this.length - 1);\n return last.value;\n }\n /**\n * @param {...?} args\n * @return {?}\n */\n unshift(...args) {\n args.reverse();\n /* tslint:disable-next-line: no-any*/\n args.forEach((/**\n * @param {?} arg\n * @return {?}\n */\n (arg) => {\n this.add(arg, 0);\n }));\n return this.length;\n }\n /**\n * @return {?}\n */\n shift() {\n if (this.length === 0) {\n return undefined;\n }\n /** @type {?} */\n const lastItem = this.head.value;\n this.remove();\n return lastItem;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n forEach(fn) {\n /** @type {?} */\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n fn(current.value, index);\n current = current.next;\n }\n }\n /**\n * @param {?} value\n * @return {?}\n */\n indexOf(value) {\n /** @type {?} */\n let current = this.head;\n /** @type {?} */\n let position = 0;\n for (let index = 0; index < this.length; index++) {\n if (current.value === value) {\n position = index;\n break;\n }\n current = current.next;\n }\n return position;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n some(fn) {\n /** @type {?} */\n let current = this.head;\n /** @type {?} */\n let result = false;\n while (current && !result) {\n if (fn(current.value)) {\n result = true;\n break;\n }\n current = current.next;\n }\n return result;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n every(fn) {\n /** @type {?} */\n let current = this.head;\n /** @type {?} */\n let result = true;\n while (current && result) {\n if (!fn(current.value)) {\n result = false;\n }\n current = current.next;\n }\n return result;\n }\n /**\n * @return {?}\n */\n toString() {\n return '[Linked List]';\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n find(fn) {\n /** @type {?} */\n let current = this.head;\n /** @type {?} */\n let result;\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result = current.value;\n break;\n }\n current = current.next;\n }\n return result;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @param {?} fn\n * @return {?}\n */\n findIndex(fn) {\n /** @type {?} */\n let current = this.head;\n /** @type {?} */\n let result;\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result = index;\n break;\n }\n current = current.next;\n }\n return result;\n }\n /* tslint:disable-next-line: no-any*/\n /**\n * @protected\n * @param {?} position\n * @return {?}\n */\n getNode(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n /** @type {?} */\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current.next;\n }\n return current;\n }\n /**\n * @protected\n * @return {?}\n */\n createInternalArrayRepresentation() {\n /* tslint:disable-next-line: no-any*/\n /** @type {?} */\n const outArray = [];\n /** @type {?} */\n let current = this.head;\n while (current) {\n outArray.push(current.value);\n current = current.next;\n }\n this.asArray = outArray;\n }\n}\nif (false) {\n /** @type {?} */\n LinkedList.prototype.length;\n /**\n * @type {?}\n * @protected\n */\n LinkedList.prototype.head;\n /**\n * @type {?}\n * @protected\n */\n LinkedList.prototype.tail;\n /**\n * @type {?}\n * @protected\n */\n LinkedList.prototype.current;\n /**\n * @type {?}\n * @protected\n */\n LinkedList.prototype.asArray;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/*tslint:disable:no-invalid-this */\n/* tslint:disable-next-line: no-any */\n/**\n * @param {?=} defaultValue\n * @return {?}\n */\nfunction OnChange(defaultValue) {\n /** @type {?} */\n const sufix = 'Change';\n /* tslint:disable-next-line: no-any */\n return (/**\n * @param {?} target\n * @param {?} propertyKey\n * @return {?}\n */\n function OnChangeHandler(target, propertyKey) {\n /** @type {?} */\n const _key = ` __${propertyKey}Value`;\n Object.defineProperty(target, propertyKey, {\n /* tslint:disable-next-line: no-any */\n /**\n * @return {?}\n */\n get() {\n return this[_key];\n },\n /* tslint:disable-next-line: no-any */\n /**\n * @param {?} value\n * @return {?}\n */\n set(value) {\n /** @type {?} */\n const prevValue = this[_key];\n this[_key] = value;\n if (prevValue !== value && this[propertyKey + sufix]) {\n this[propertyKey + sufix].emit(value);\n }\n }\n });\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass Utils {\n /* tslint:disable-next-line: no-any */\n /**\n * @param {?} element\n * @return {?}\n */\n static reflow(element) {\n /* tslint:disable-next-line: no-any */\n ((/**\n * @param {?} bs\n * @return {?}\n */\n (bs) => bs))(element.offsetHeight);\n }\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\n /* tslint:disable-next-line: no-any */\n /**\n * @param {?} elem\n * @return {?}\n */\n static getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n /** @type {?} */\n let view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = win;\n }\n return view.getComputedStyle(elem);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst _messagesHash = {};\n/** @type {?} */\nconst _hideMsg = typeof console === 'undefined' || !('warn' in console);\n/**\n * @param {?} msg\n * @return {?}\n */\nfunction warnOnce(msg) {\n if (!isDevMode() || _hideMsg || msg in _messagesHash) {\n return;\n }\n _messagesHash[msg] = true;\n /*tslint:disable-next-line*/\n console.warn(msg);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { LinkedList, OnChange, Trigger, Utils, document$1 as document, isBs3, listenToTriggers, listenToTriggersV2, parseTriggers, registerEscClick, registerOutsideClick, setTheme, warnOnce, win as window };\n\n","import { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nexport class AsyncSubject extends Subject {\n constructor() {\n super(...arguments);\n this.value = null;\n this.hasNext = false;\n this.hasCompleted = false;\n }\n _subscribe(subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return super._subscribe(subscriber);\n }\n next(value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n }\n error(error) {\n if (!this.hasCompleted) {\n super.error(error);\n }\n }\n complete() {\n this.hasCompleted = true;\n if (this.hasNext) {\n super.next(this.value);\n }\n super.complete();\n }\n}\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n let subscription;\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n }\n catch (error) {\n innerSubscriber.error(error);\n }\n return subscription;\n}\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return (...args) => bindCallback(callbackFunc, scheduler)(...args).pipe(map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n }\n return function (...args) {\n const context = this;\n let subject;\n const params = {\n context,\n subject,\n callbackFunc,\n scheduler,\n };\n return new Observable(subscriber => {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n const handler = (...innerArgs) => {\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, [...args, handler]);\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n const state = {\n args, subscriber, params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n const self = this;\n const { args, subscriber, params } = state;\n const { callbackFunc, context, scheduler } = params;\n let { subject } = params;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n const handler = (...innerArgs) => {\n const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n this.add(scheduler.schedule(dispatchNext, 0, { value, subject }));\n };\n try {\n callbackFunc.apply(context, [...args, handler]);\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n const { value, subject } = state;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n const { err, subject } = state;\n subject.error(err);\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nconst NONE = {};\nexport function combineLatest(...observables) {\n let resultSelector = undefined;\n let scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nexport class CombineLatestOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class CombineLatestSubscriber extends OuterSubscriber {\n constructor(destination, resultSelector) {\n super(destination);\n this.resultSelector = resultSelector;\n this.active = 0;\n this.values = [];\n this.observables = [];\n }\n _next(observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n }\n notifyComplete(unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n }\n _tryResultSelector(values) {\n let result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat(...observables) {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(subscriber => {\n let input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin(...sources) {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime = 0, periodOrScheduler, scheduler) {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\nfunction dispatch(state) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nclass CatchOperator {\n constructor(selector) {\n this.selector = selector;\n }\n call(subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\nclass CatchSubscriber extends SimpleOuterSubscriber {\n constructor(destination, selector, caught) {\n super(destination);\n this.selector = selector;\n this.caught = caught;\n }\n error(err) {\n if (!this.isStopped) {\n let result;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler = async) {\n return (source) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\nclass DebounceTimeOperator {\n constructor(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\nclass DebounceTimeSubscriber extends Subscriber {\n constructor(destination, dueTime, scheduler) {\n super(destination);\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n this.debouncedSubscription = null;\n this.lastValue = null;\n this.hasValue = false;\n }\n _next(value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n debouncedNext() {\n this.clearDebounce();\n if (this.hasValue) {\n const { lastValue } = this;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n clearDebounce() {\n const debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return (source) => source.lift(new FinallyOperator(callback));\n}\nclass FinallyOperator {\n constructor(callback) {\n this.callback = callback;\n }\n call(subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\nclass FinallySubscriber extends Subscriber {\n constructor(destination, callback) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return (source) => source.lift(new MapToOperator(value));\n}\nclass MapToOperator {\n constructor(value) {\n this.value = value;\n }\n call(subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\nclass MapToSubscriber extends Subscriber {\n constructor(destination, value) {\n super(destination);\n this.value = value;\n }\n _next(x) {\n this.destination.next(this.value);\n }\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan((acc, value, index) => accumulator(acc, value, index + 1)), takeLast(1))(source);\n };\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n let hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nclass ScanOperator {\n constructor(accumulator, seed, hasSeed = false) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n call(subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\nclass ScanSubscriber extends Subscriber {\n constructor(destination, accumulator, _seed, hasSeed) {\n super(destination);\n this.accumulator = accumulator;\n this._seed = _seed;\n this.hasSeed = hasSeed;\n this.index = 0;\n }\n get seed() {\n return this._seed;\n }\n set seed(value) {\n this.hasSeed = true;\n this._seed = value;\n }\n _next(value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n }\n _tryNext(value) {\n const index = this.index++;\n let result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith(...array) {\n const scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return (source) => concat(array, source, scheduler);\n }\n else {\n return (source) => concat(array, source);\n }\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n }\n _innerSub(result) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = undefined;\n }\n notifyComplete() {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nclass TakeLastOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\nclass TakeLastSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.ring = new Array();\n this.count = 0;\n }\n _next(value) {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n const index = count % total;\n ring[index] = value;\n }\n }\n _complete() {\n const destination = this.destination;\n let count = this.count;\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n }\n}\n","import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return (source) => source.lift(new TakeUntilOperator(notifier));\n}\nclass TakeUntilOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\nclass TakeUntilSubscriber extends SimpleOuterSubscriber {\n constructor(destination) {\n super(destination);\n this.seenValue = false;\n }\n notifyNext() {\n this.seenValue = true;\n this.complete();\n }\n notifyComplete() {\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(() => scheduler.flush(null)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n let count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","export function identity(x) {\n return x;\n}\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport default {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n};\r\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\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 * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* AnimationMetadataType.Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* AnimationMetadataType.Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* AnimationMetadataType.Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* AnimationMetadataType.Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* AnimationMetadataType.Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* AnimationMetadataType.State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* AnimationMetadataType.Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* AnimationMetadataType.Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* AnimationMetadataType.Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimationMetadataType.AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimationMetadataType.AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* AnimationMetadataType.Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* AnimationMetadataType.Stagger */, timings, animation };\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 scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\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 * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\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 * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\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 ɵPRE_STYLE = '!';\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 * @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 * @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 * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/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 */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\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 * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\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 isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\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 * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\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 ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\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 camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\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 ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\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 SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\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 ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\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/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\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 DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\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 createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(normalizedProp, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\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 EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\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 */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\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 * @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 * @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 * @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 * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/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 */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\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 DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\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 class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\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 * @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 * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\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 * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref = href ?? this._platformLocation.getBaseHrefFromDOM() ??\n inject(DOCUMENT).location?.origin ?? '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\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 * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\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 * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const browserBaseHref = this._locationStrategy.getBaseHref();\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n this._locationStrategy.historyGo?.(relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\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 * @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/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\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 * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\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 ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\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 NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\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 * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\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 * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\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 parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\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 * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\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 * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (NG_DEV_MODE) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof 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 * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\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 SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\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 * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\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 * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\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 * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\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 collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\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 invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(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 */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\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 * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\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 * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, timezone ?? this.defaultTimezone ?? undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\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 _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\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 * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\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 * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\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 makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\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 * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }]; } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return 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 */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\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 * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\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// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\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 PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\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 * @publicApi\n */\nconst VERSION = new Version('14.3.0');\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 * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\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 wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\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// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? (new URL(url)).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\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 * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n */\nconst IMAGE_LOADER = new InjectionToken('ImageLoader', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, { ...config, src: normalizeSrc(config.src) });\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\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 * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\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 * Name and URL tester for Cloudinary.\n */\nconst cloudinaryLoaderInfo = {\n name: 'Cloudinary',\n testUrl: isCloudinaryUrl\n};\nconst CLOUDINARY_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.cloudinary\\.com\\/.+/;\n/**\n * Tests whether a URL is from Cloudinary CDN.\n */\nfunction isCloudinaryUrl(url) {\n return CLOUDINARY_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode ?\n [\n 'https://res.cloudinary.com/mysite', 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com'\n ] :\n undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\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 * Name and URL tester for ImageKit.\n */\nconst imageKitLoaderInfo = {\n name: 'ImageKit',\n testUrl: isImageKitUrl\n};\nconst IMAGE_KIT_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imagekit\\.io\\/.+/;\n/**\n * Tests whether a URL is from ImageKit CDN.\n */\nfunction isImageKitUrl(url) {\n return IMAGE_KIT_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n let params = `tr:q-auto`; // applies the \"auto quality\" transformation\n if (config.width) {\n params += `,w-${config.width}`;\n }\n return `${path}/${params}/${config.src}`;\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 * Name and URL tester for Imgix.\n */\nconst imgixLoaderInfo = {\n name: 'Imgix',\n testUrl: isImgixUrl\n};\nconst IMGIX_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imgix\\.net\\/.+/;\n/**\n * Tests whether a URL is from Imgix CDN.\n */\nfunction isImgixUrl(url) {\n return IMGIX_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n return url.href;\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// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\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 * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\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 * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = lcpElement.element?.src ?? '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\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// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken('PRECONNECT_CHECK_BLOCKLIST');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, origin => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n this.blocklist.add(extractHostname(origins));\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head for the\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n if (!this.preconnectLinks) {\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks = this.queryPreconnectLinks();\n }\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n this.preconnectLinks?.clear();\n this.alreadySeen.clear();\n }\n}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\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 * In SSR scenarios, a preload `` element is generated for priority images.\n * Having a large number of preload tags may negatively affect the performance,\n * so we warn developers (by throwing an error) if the number of preloaded images\n * is above a certain threshold. This const specifies this threshold.\n */\nconst DEFAULT_PRELOADED_IMAGES_LIMIT = 5;\n/**\n * Helps to keep track of priority images that already have a corresponding\n * preload tag (to avoid generating multiple preload tags with the same URL).\n *\n * This Set tracks the original src passed into the `ngSrc` input not the src after it has been\n * run through the specified `IMAGE_LOADER`.\n */\nconst PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', { providedIn: 'root', factory: () => new Set() });\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 * @description Contains the logic needed to track and add preload link tags to the `` tag. It\n * will also track what images have already had preload link tags added so as to not duplicate link\n * tags.\n *\n * In dev mode this service will validate that the number of preloaded images does not exceed the\n * configured default preloaded images limit: {@link DEFAULT_PRELOADED_IMAGES_LIMIT}.\n */\nclass PreloadLinkCreator {\n constructor() {\n this.preloadedImages = inject(PRELOADED_IMAGES);\n this.document = inject(DOCUMENT);\n }\n /**\n * @description Add a preload `` to the `` of the `index.html` that is served from the\n * server while using Angular Universal and SSR to kick off image loads for high priority images.\n *\n * The `sizes` (passed in from the user) and `srcset` (parsed and formatted from `ngSrcset`)\n * properties used to set the corresponding attributes, `imagesizes` and `imagesrcset`\n * respectively, on the preload `` tag so that the correctly sized image is preloaded from\n * the CDN.\n *\n * {@link https://web.dev/preload-responsive-images/#imagesrcset-and-imagesizes}\n *\n * @param renderer The `Renderer2` passed in from the directive\n * @param src The original src of the image that is set on the `ngSrc` input.\n * @param srcset The parsed and formatted srcset created from the `ngSrcset` input\n * @param sizes The value of the `sizes` attribute passed in to the `` tag\n */\n createPreloadLinkTag(renderer, src, srcset, sizes) {\n if (ngDevMode) {\n if (this.preloadedImages.size >= DEFAULT_PRELOADED_IMAGES_LIMIT) {\n throw new ɵRuntimeError(2961 /* RuntimeErrorCode.TOO_MANY_PRELOADED_IMAGES */, ngDevMode &&\n `The \\`NgOptimizedImage\\` directive has detected that more than ` +\n `${DEFAULT_PRELOADED_IMAGES_LIMIT} images were marked as priority. ` +\n `This might negatively affect an overall performance of the page. ` +\n `To fix this, remove the \"priority\" attribute from images with less priority.`);\n }\n }\n if (this.preloadedImages.has(src)) {\n return;\n }\n this.preloadedImages.add(src);\n const preload = renderer.createElement('link');\n renderer.setAttribute(preload, 'as', 'image');\n renderer.setAttribute(preload, 'href', src);\n renderer.setAttribute(preload, 'rel', 'preload');\n renderer.setAttribute(preload, 'fetchpriority', 'high');\n if (sizes) {\n renderer.setAttribute(preload, 'imageSizes', sizes);\n }\n if (srcset) {\n renderer.setAttribute(preload, 'imageSrcset', srcset);\n }\n renderer.appendChild(this.document.head, preload);\n }\n}\nPreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\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 * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used in generating automatic density-based srcsets\n */\nconst DENSITY_SRCSET_MULTIPLIERS = [1, 2];\n/**\n * Used to determine which breakpoints to use on full-width images\n */\nconst VIEWPORT_BREAKPOINT_CUTOFF = 640;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = .1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Used to limit automatic srcset generation of very large sources for\n * fixed-size images. In pixels.\n */\nconst FIXED_SRCSET_WIDTH_LIMIT = 1920;\nconst FIXED_SRCSET_HEIGHT_LIMIT = 1080;\n/** Info about built-in loaders we can test for. */\nconst BUILT_IN_LOADERS = [imgixLoaderInfo, imageKitLoaderInfo, cloudinaryLoaderInfo];\nconst defaultConfig = {\n breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n};\n/**\n * Injection token that configures the image optimized image functionality.\n *\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_CONFIG = new InjectionToken('ImageConfig', { providedIn: 'root', factory: () => defaultConfig });\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Asserting that there is a corresponding preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Automatically generates a srcset\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.config = processConfig(inject(IMAGE_CONFIG));\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n this.isServer = isPlatformServer(inject(PLATFORM_ID));\n this.preloadLinkChecker = inject(PreloadLinkCreator);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n this._priority = false;\n this._disableOptimizedSrcset = false;\n this._fill = false;\n }\n /**\n * For responsive images: the intrinsic width of the image in pixels.\n * For fixed size images: the desired rendered width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * For responsive images: the intrinsic height of the image in pixels.\n * For fixed size images: the desired rendered height of the image in pixels.* The intrinsic\n * height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n /**\n * Disables automatic srcset generation for this image.\n */\n set disableOptimizedSrcset(value) {\n this._disableOptimizedSrcset = inputToBoolean(value);\n }\n get disableOptimizedSrcset() {\n return this._disableOptimizedSrcset;\n }\n /**\n * Sets the image to \"fill mode\", which eliminates the height/width requirement and adds\n * styles such that the image fills its containing element.\n *\n * @developerPreview\n */\n set fill(value) {\n this._fill = inputToBoolean(value);\n }\n get fill() {\n return this._fill;\n }\n /** @nodoc */\n ngOnInit() {\n if (ngDevMode) {\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n if (this.ngSrcset) {\n assertNoConflictingSrcset(this);\n }\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n if (this.fill) {\n assertEmptyWidthAndHeight(this);\n assertNonZeroRenderedHeight(this, this.imgElement, this.renderer);\n }\n else {\n assertNonEmptyWidthAndHeight(this);\n // Only check for distorted images when not in fill mode, where\n // images may be intentionally stretched, cropped or letterboxed.\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n }\n assertValidLoadingInput(this);\n if (!this.ngSrcset) {\n assertNoComplexSizes(this);\n }\n assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);\n assertNoNgSrcsetWithoutLoader(this, this.imageLoader);\n assertNoLoaderParamsWithoutLoader(this, this.imageLoader);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n if (this.fill) {\n if (!this.sizes) {\n this.sizes = '100vw';\n }\n }\n else {\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n }\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `data-ng-img` attribute flags an image as using the directive, to allow\n // for analysis of the directive's performance.\n this.setHostAttribute('ng-img', 'true');\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n const rewrittenSrc = this.getRewrittenSrc();\n this.setHostAttribute('src', rewrittenSrc);\n let rewrittenSrcset = undefined;\n if (this.sizes) {\n this.setHostAttribute('sizes', this.sizes);\n }\n if (this.ngSrcset) {\n rewrittenSrcset = this.getRewrittenSrcset();\n }\n else if (this.shouldGenerateAutomaticSrcset()) {\n rewrittenSrcset = this.getAutomaticSrcset();\n }\n if (rewrittenSrcset) {\n this.setHostAttribute('srcset', rewrittenSrcset);\n }\n if (this.isServer && this.priority) {\n this.preloadLinkChecker.createPreloadLinkTag(this.renderer, rewrittenSrc, rewrittenSrcset, this.sizes);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, [\n 'ngSrc',\n 'ngSrcset',\n 'width',\n 'height',\n 'priority',\n 'fill',\n 'loading',\n 'sizes',\n 'loaderParams',\n 'disableOptimizedSrcset',\n ]);\n }\n }\n callImageLoader(configWithoutCustomParams) {\n let augmentedConfig = configWithoutCustomParams;\n if (this.loaderParams) {\n augmentedConfig.loaderParams = this.loaderParams;\n }\n return this.imageLoader(augmentedConfig);\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.callImageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset.split(',').filter(src => src !== '').map(srcStr => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.callImageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n getAutomaticSrcset() {\n if (this.sizes) {\n return this.getResponsiveSrcset();\n }\n else {\n return this.getFixedSrcset();\n }\n }\n getResponsiveSrcset() {\n const { breakpoints } = this.config;\n let filteredBreakpoints = breakpoints;\n if (this.sizes?.trim() === '100vw') {\n // Since this is a full-screen-width image, our srcset only needs to include\n // breakpoints with full viewport widths.\n filteredBreakpoints = breakpoints.filter(bp => bp >= VIEWPORT_BREAKPOINT_CUTOFF);\n }\n const finalSrcs = filteredBreakpoints.map(bp => `${this.callImageLoader({ src: this.ngSrc, width: bp })} ${bp}w`);\n return finalSrcs.join(', ');\n }\n getFixedSrcset() {\n const finalSrcs = DENSITY_SRCSET_MULTIPLIERS.map(multiplier => {\n const imgUrl = this.callImageLoader({ src: this.ngSrc, width: this.width * multiplier });\n return `${imgUrl} ${multiplier}x`;\n });\n return finalSrcs.join(', ');\n }\n shouldGenerateAutomaticSrcset() {\n return !this._disableOptimizedSrcset && !this.srcset && this.imageLoader !== noopImageLoader &&\n !(this.width > FIXED_SRCSET_WIDTH_LIMIT || this.height > FIXED_SRCSET_HEIGHT_LIMIT);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc]\", inputs: { ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", sizes: \"sizes\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", loaderParams: \"loaderParams\", disableOptimizedSrcset: \"disableOptimizedSrcset\", fill: \"fill\", src: \"src\", srcset: \"srcset\" }, host: { properties: { \"style.position\": \"fill ? \\\"absolute\\\" : null\", \"style.width\": \"fill ? \\\"100%\\\" : null\", \"style.height\": \"fill ? \\\"100%\\\" : null\", \"style.inset\": \"fill ? \\\"0px\\\" : null\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc]',\n host: {\n '[style.position]': 'fill ? \"absolute\" : null',\n '[style.width]': 'fill ? \"100%\" : null',\n '[style.height]': 'fill ? \"100%\" : null',\n '[style.inset]': 'fill ? \"0px\" : null'\n }\n }]\n }], propDecorators: { ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], sizes: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], loaderParams: [{\n type: Input\n }], disableOptimizedSrcset: [{\n type: Input\n }], fill: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\n/**\n * Sorts provided config breakpoints and uses defaults.\n */\nfunction processConfig(config) {\n let sortedBreakpoints = {};\n if (config.breakpoints) {\n sortedBreakpoints.breakpoints = config.breakpoints.sort((a, b) => a - b);\n }\n return Object.assign({}, defaultConfig, config, sortedBreakpoints);\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the 'sizes' only includes responsive values.\n */\nfunction assertNoComplexSizes(dir) {\n let sizes = dir.sizes;\n if (sizes?.match(/((\\)|,)\\s|^)\\d+px/)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`sizes\\` was set to a string including ` +\n `pixel values. For automatic \\`srcset\\` generation, \\`sizes\\` must only include responsive ` +\n `values, such as \\`sizes=\"50vw\"\\` or \\`sizes=\"(min-width: 768px) 50vw, 100vw\"\\`. ` +\n `To fix this, modify the \\`sizes\\` attribute, or provide your own \\`ngSrcset\\` value directly.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value.split(',').every(num => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n let reason;\n if (inputName === 'width' || inputName === 'height') {\n reason = `Changing \\`${inputName}\\` may result in different attribute value ` +\n `applied to the underlying image element and cause layout shifts on a page.`;\n }\n else {\n reason = `Changing the \\`${inputName}\\` would have no effect on the underlying ` +\n `image element, because the resource loading has already occurred.`;\n }\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ${reason} ` +\n `To fix this, either switch \\`${inputName}\\` to a static value ` +\n `or wrap the image element in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach(input => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value ` +\n `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedWidth = img.clientWidth;\n const renderedHeight = img.clientHeight;\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = img.naturalWidth;\n const intrinsicHeight = img.naturalHeight;\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${suppliedAspectRatio}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${renderedAspectRatio}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = (intrinsicWidth - recommendedWidth) >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = (intrinsicHeight - recommendedHeight) >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map(attr => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag or turn on ` +\n `\"fill\" mode with the \\`fill\\` attribute.`);\n }\n}\n/**\n * Verifies that width and height are not set. Used in fill mode, where those attributes don't make\n * sense.\n */\nfunction assertEmptyWidthAndHeight(dir) {\n if (dir.width || dir.height) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the attributes \\`height\\` and/or \\`width\\` are present ` +\n `along with the \\`fill\\` attribute. Because \\`fill\\` mode causes an image to fill its containing ` +\n `element, the size attributes have no effect and should be removed.`);\n }\n}\n/**\n * Verifies that the rendered image has a nonzero height. If the image is in fill mode, provides\n * guidance that this can be caused by the containing element's CSS position property.\n */\nfunction assertNonZeroRenderedHeight(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedHeight = img.clientHeight;\n if (dir.fill && renderedHeight === 0) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. ` +\n `This is likely because the containing element does not have the CSS 'position' ` +\n `property set to one of the following: \"relative\", \"fixed\", or \"absolute\". ` +\n `To fix this problem, make sure the container element has the CSS 'position' ` +\n `property defined and the height of the element is not zero.`));\n }\n });\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n/**\n * Warns if NOT using a loader (falling back to the generic loader) and\n * the image appears to be hosted on one of the image CDNs for which\n * we do have a built-in image loader. Suggests switching to the\n * built-in loader.\n *\n * @param ngSrc Value of the ngSrc attribute\n * @param imageLoader ImageLoader provided\n */\nfunction assertNotMissingBuiltInLoader(ngSrc, imageLoader) {\n if (imageLoader === noopImageLoader) {\n let builtInLoaderName = '';\n for (const loader of BUILT_IN_LOADERS) {\n if (loader.testUrl(ngSrc)) {\n builtInLoaderName = loader.name;\n break;\n }\n }\n if (builtInLoaderName) {\n console.warn(ɵformatRuntimeError(2962 /* RuntimeErrorCode.MISSING_BUILTIN_LOADER */, `NgOptimizedImage: It looks like your images may be hosted on the ` +\n `${builtInLoaderName} CDN, but your app is not using Angular's ` +\n `built-in loader for that CDN. We recommend switching to use ` +\n `the built-in by calling \\`provide${builtInLoaderName}Loader()\\` ` +\n `in your \\`providers\\` and passing it your instance's base URL. ` +\n `If you don't want to use the built-in loader, define a custom ` +\n `loader function using IMAGE_LOADER to silence this warning.`));\n }\n }\n}\n/**\n * Warns if ngSrcset is present and no loader is configured (i.e. the default one is being used).\n */\nfunction assertNoNgSrcsetWithoutLoader(dir, imageLoader) {\n if (dir.ngSrcset && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which would result in the same image being used for all configured sizes. ` +\n `To fix this, provide a loader or remove the \\`ngSrcset\\` attribute from the image.`));\n }\n}\n/**\n * Warns if loaderParams is present and no loader is configured (i.e. the default one is being\n * used).\n */\nfunction assertNoLoaderParamsWithoutLoader(dir, imageLoader) {\n if (dir.loaderParams && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loaderParams\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which means that the loaderParams data will not be consumed and will not affect the URL. ` +\n `To fix this, provide a custom loader or remove the \\`loaderParams\\` attribute from the image.`));\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 * @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 * @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// This file only reexports content of the `src` folder. Keep it that way.\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 * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\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 * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\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 the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (typeof value !== 'string' && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string or an array, but got: \\`${value}\\`.`);\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 */\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => STANDARD_ENCODING_REPLACEMENTS[t] ?? s);\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\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 */\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\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 * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = update.context ?? this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\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 */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* HttpStatusCode.Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\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 * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\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 * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\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// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending